日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Flume使用JindoSDK寫入OSS-HDFS服務

Apache Flume是一個分布式、可靠和高可用的系統,用于從大量不同的數據源有效地收集、聚合和移動大量日志數據,進行集中式的數據存儲。Flume通過調用flush()保證事務性寫入,并通過JindoSDK寫入OSS-HDFS服務,確保flush后的數據立刻可見,保證數據不丟失。

前提條件

操作步驟

  1. 連接ECS實例。具體操作,請參見連接ECS實例

  2. 配置JindoSDK。

    1. 下載最新版本的Jindo SDK JAR包。下載地址,請參見GitHub

    2. 可選:如果您的環境中未包含KerberosSASL相關依賴,則需要在部署JindoSDK的所有節點安裝以下依賴。

      • UbuntuDebian

        sudo apt-get install libkrb5-dev krb5-admin-server krb5-kdc krb5-user libsasl2-dev libsasl2-modules libsasl2-modules-gssapi-mit
      • Red Hat Enterprise LinuxCentOS

        sudo yum install krb5-server krb5-workstation cyrus-sasl-devel cyrus-sasl-gssapi cyrus-sasl-plain
      • macOS

        brew install krb5
    3. 解壓下載的安裝包。

      以下以解壓jindosdk-x.x.x-linux.tar.gz為例,如使用其他版本的JindoSDK,請替換為對應的JAR包名稱。

      tar -zxvf jindosdk-x.x.x-linux.tar.gz -C/usr/lib
    4. 配置JINDOSDK_HOME

      export JINDOSDK_HOME=/usr/lib/jindosdk-x.x.x-linux
      export PATH=$JINDOSDK_HOME/bin:$PATH
    5. 配置HADOOP_CLASSPATH

      export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:${FLUME_HOME}/lib/*
      重要

      請將安裝目錄和環境變量部署到每個節點Flume根目錄下的lib文件夾。

    6. 配置FLUME_CLASSPATH

      cp ${FLUME_HOME}/conf/flume-env.sh.template ${FLUME_HOME}/conf/flume-env.sh
      echo "FLUME_CLASSPATH=/usr/lib/jindosdk-x.x.x-linux/lib/*" >>  ${FLUME_HOME}/conf/flume-env.sh
  3. 配置Sink。

    配置Sink示例如下:

    # 配置OSS Sink。your_bucket填寫為已開啟OSS-HDFS服務的Bucket。
    xxx.sinks.oss_sink.hdfs.path = oss://${your_bucket}/flume_dir/%Y-%m-%d/%H
    
    # 寫入Flume事務中最大的event數量。推薦每次Flush的量在32 MB以上,避免Flush過小影響整體性能以及產生大量的staging文件。
    # batchSize單位為event數量(即日志行數),設置時需要先評估event平均大小(例如200 Byte),假設每次Flush的大小預期為32 MB,則batchSize約為160000(32 MB / 200 Byte)。
    xxx.sinks.oss_sink.hdfs.batchSize = 100000
    
    ...
    # 用于HDFS文件按照時間分區,時間戳向下取整。默認值為true。
    xxx.sinks.oss_sink.hdfs.round = true
    # 當xxx.sinks.oss_sink.hdfs.round設置為true時,配合xxx.sinks.oss_sink.hdfs.roundUnit時間單位一起使用。例如,xxx.sinks.oss_sink.hdfs.roundUnit值為minute,該值設置為60,則表示60分鐘之內的數據寫到一個文件中,相當于每60分鐘生成一個文件。
    xxx.sinks.oss_sink.hdfs.roundValue = 15
    # 按時間分區使用的時間單位。默認值為minute,可選值為second、minutehour。
    xxx.sinks.oss_sink.hdfs.roundUnit = minute
    # FlumeHDFS文件夾下創建新文件的固定前綴。
    xxx.sinks.oss_sink.hdfs.filePrefix = your_topic
    # 當前文件寫入達到該大小后觸發滾動創建新文件,單位為字節。0表示不根據文件大小來分割文件。
    xxx.sinks.oss_sink.rollSize = 3600
    # 每個Sink實例操作HDFS IO時開啟的線程數(例如open、write等)。
    xxx.sinks.oss_sink.threadsPoolSize = 30
    ...

    關于配置Sink涉及的各參數含義,請參見Apache Flume

常見問題

報錯“org.apache.flume.conf.ConfigurationException: Component has no type. Cannot configure.user_sink”

Hadoopcore-site.xml配置文件中添加以下配置解決該問題。

配置JindoOSS實現類。
fs.AbstractFileSystem.oss.impl com.aliyun.jindodata.oss.OSS 
fs.oss.impl com.aliyun.jindodata.oss.OssFileSystem
配置AccessKey及Endpoint。
fs.oss.credentials.provider com.aliyun.jindodata.auth.SimpleAliyunCredentialsProvider 
fs.oss.accessKeyId LTAI******** 
fs.oss.accessKeySecret KZo1********
fs.oss.endpoint {regionId}.oss-dls.aliyuncs.com