flume上傳檔案到hdfs上
在第一篇文章中我們是將log4j的日誌輸出到了agent的日誌檔案當中。配置檔案如下:
- tier1.sources=source1
- tier1.channels=channel1
- tier1.sinks=sink1
- tier1.sources.source1.type=avro
- tier1.sources.source1.bind=0.0.0.0
- tier1.sources.source1.port=44444
- tier1.sources.source1.channels=channel1
- tier1.channels.channel1.type=memory
- tier1.channels.channel1.capacity=10000
- tier1.channels.channel1.transactionCapacity=1000
- tier1.channels.channel1.keep-alive=30
- tier1.sinks.sink1.type=logger
- tier1.sinks.sink1.channel=channel1
本次我們把log4j的日誌直接採集輸出到hdfs中去。需要修改flume.conf中sink的配置:
- tier1.sources=source1
- tier1.channels=channel1
- tier1.sinks=sink1
- tier1.sources.source1.type=avro
- tier1.sources.source1.bind=0.0.0.0
- tier1.sources.source1.port=44444
- tier1.sources.source1.channels=channel1
- tier1.channels.channel1.type=memory
- tier1.channels.channel1.capacity=10000
- tier1.channels.channel1.transactionCapacity=1000
- tier1.channels.channel1.keep-alive=30
- tier1.sinks.sink1.type=hdfs
- tier1.sinks.sink1.channel=channel1
- tier1.sinks.sink1.hdfs.path=hdfs://master68:8020/flume/events
- tier1.sinks.sink1.hdfs.fileType=DataStream
- tier1.sinks.sink1.hdfs.writeFormat=Text
- tier1.sinks.sink1.hdfs.rollInterval=0
- tier1.sinks.sink1.hdfs.rollSize=10240
- tier1.sinks.sink1.hdfs.rollCount=0
- tier1.sinks.sink1.hdfs.idleTimeout=60
下面幾個roll開頭的引數都是用來控制滾動日誌輸出的,官方文件上的說明也很詳細,我這裡配置的只按檔案大小來滾動rollSize=10240,也就是10K滾動生成一個新的檔案用來接收新的EVENTS。實際中這個Size應該更大一些,我覺得設定成HDFS的blocksize大小應該挺合適的。
idleTimeout設定為60秒(預設值為0),這裡面的原理是這樣的,flume裡面每生成一個接收檔案時的命名規則如:FlumeData.1406251462179.tmp,.tmp表示這個檔案正在被使用來接收EVENTS,當滿10K之後,這個檔案會被rename成FlumeData.1406251462179,把.tmp字尾去掉,但是如果你停止了應用程式後,FlumeData.1406251462179.tmp還沒滿10K,按照預設的idleTimeout設定,不會將它rename,也就是.tmp字尾一直在,造成了這個檔案一直在使用當中的一個假象,這是有問題的,我們設定idleTimeout=60,即60秒後這個檔案還沒有被寫入資料,就會關閉它然後rename它去掉.tmp,以後新進來的events,會新開一個.tmp檔案來接收。
我們再執行第一篇文章中的那個示例應用程式,然後去path指定的目錄下面就能看到log4j輸出的日誌資訊了。
補充注意點(針對cm安裝的flume):
首先在hdfs上建立/flume目錄:hadoop fs -mkdir /flume給該目錄授權給flume使用者和組:hadoop fs -chown -R flume:flume /flume
注意給目錄授權很重要,不然會報錯。
相關推薦
將本地文字檔案上傳到HDFS上,然後匯入hive/impala對應表中
1.本地文字檔案上傳前的準備 將文字儲存為"uft-8"格式,並用"|"進行欄位間的分割(個人習慣,可以選用其它符號,但要避免和程式語言產生衝突,Hive預設的欄位分隔符為ascii碼的控制符\001)。 2.將文字檔案通過Xshell上傳到HDFS上 (1)首先要新建(A
上傳到HDFS上的文件遇到亂碼問題
utf-8 正常 bsp 問題 發現 works lin 選項 顯示亂碼 1.通過eclipse中的hdfs插件上傳文件,上傳成功,但是查看是亂碼。 查閱文件本身的編碼方式,發現是utf-8,同時文件在項目目錄下,顯示正常,因為我把它的編碼格式也設成了utf-8。 2.通過
java圖片上傳-檔案/圖片上傳到七牛
java圖片上傳-檔案(圖片)上傳到七牛 一、在配置檔案中引入依賴(注:七牛開發者url:https://developer.qiniu.com/kodo) <-- 引入依賴 --> <dependency> <
美化上傳檔案框(上傳圖片框)
//initfunction initFile(fo){var divFile = document.createElement("div");divFile.className="file"; fo.parentNode.insertBefore(divFile,fo);divFile.appendChil
vue-resource+iview上傳檔案取消上傳
vue-resource+iview上傳檔案取消上傳 子元件: <template> <div class="upload-area-div"> <Upload :type="upType" class="upload-area"
java 單個上傳檔案, 批量上傳檔案,單個下載,批量打成zip壓縮包下載檔案(如果不能接受httpsevletrequest請求的檔案可以使用MultipartFile[] files)
package net.wkang.intelligent_audit.hospitalization.utils; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; impor
retrofit2 上傳進度回撥與 Interceptor衝突引起上傳檔案資料上傳兩次
原因:在開發過程中,遇到過上傳檔案資料上傳兩次的問題,發現是在OkHttp里加入了預設的HttpLoggingInterceptor引起的。在下面程式碼呼叫了wirteTo方法,導致會再次執行UploadFileRequestBody.writeto方法重複寫入資料。/*
h5特性formdata帶引數上傳檔案,上傳到node端
html: <input type="file" id="addpic" multiple="multiple"/> <button id="uploadpic" style="
fastDFS中使用php上傳檔案 -- http上傳與下載圖片
CleverCode研究完fastDFS後,嘗試著使用php上傳檔案到fastdfs。 1 fastDFS安裝 fastdfs分散式架構配置參考:http://blog.csdn.net/clevercode/article/details/52267080。 fa
CKEditor+CKFinder for java (上傳檔案、上傳視訊、新增行距編輯等等)
CKEditor 、CKFinder 相互融合要注意的細節的確很多,因為功能的強大和介面的優勢,花費一些時間整合還是有意義的。 下載外掛: CKEditor : http://ckeditor.com/
Flume之監聽目錄變化並上傳檔案到HDFS中
vim /usr/local/flume/conf/exex-hdfs.conf a1.sources = r1 a1.sinks = k1 a1.channels = c1 # Describe/configure the sour
flume上傳檔案到hdfs上
在第一篇文章中我們是將log4j的日誌輸出到了agent的日誌檔案當中。配置檔案如下: tier1.sources=source1 tier1.channels=channel1 tier1.sinks=sink1 tier1.sources.source1.ty
多個Flume合併一個channel上傳檔案到Hdfs
需要交流請進群-- 494831900 --我和群中朋友會及時回答 需要交流請進群-- 494831900 在tohdfs.conf 中配置如下 ----------------------------------------------------------------
Spark/HDFS上傳檔案錯誤:Permission denied
問題描述 今天用spark將RDD結果輸出到HDFS時,因為CDH叢集重新配置的原因,許可權沒有設定好。導致寫檔案出bug。 錯誤情況 org.apache.hadoop.security.AccessControlException: Permission denied: use
HDFS上傳檔案與Spark執行
根據並行度與檔案大小設定Block大小,上傳指令碼: hadoop dfs -D dfs.block.size=42724400 -D io.bytes.per.checksum=100 / -D dfs.namenode.fs-limits.min-block-size=324000 -pu
HDFS上傳檔案
1.client端向namenode請求上傳檔案,檢視檔案是否存在,是否有許可權往hdfs寫入 2.如果檔案不存在,許可權OK就根據副本數N(例如2個),根據網路拓撲選擇N個離client端最近的datanode返回client。 (把檔案切塊,一個一個block塊的請求namenode,返回最優的d
hadoop錯誤解決辦法:-------HDFS上傳檔案儲存錯誤或速度很慢
出現症狀: 2018-11-22 11:28:12,711 WARN hdfs.DataStreamer: Abandoning BP-2142139802-10.20.2.1-1536240602405:blk_1073765062_24289 2018-11-22 11:28:12,71
HDFS上傳檔案的命令使用
開啟Hadoop,sbin/start-all.sh 上傳檔案:bin/hadoop fs -put /home/xleer/1.txt /user/hadoop/input1/ 檢視HDFS中的檔案: bin/hadoop fs -ls /user/hadoop/in
【問題解決】利用Eclipse,在hadoop上傳檔案到hdfs沒有內容
本文適用於一些在網上找了半天答案都沒解決問題的人群,因為我也是在按網上說道弄了一天,最後才解決的。如果你是剛遇到問題,還沒有深入,建議你檢視這篇文章 http://f.dataguru.cn/hadoop-208802-1-1.html 將問題一步一步排除後仍沒有解決的話,可以試試我
在spring boot下如何通過rest 介面 來上傳檔案 和下載檔案 到 hadoop hdfs
本文將用程式碼來演示在spring boot裡面,用hadoop client,通過restful API來上傳檔案 和下載檔案 到 hadoop hdfs。 裡面有一些程式碼依賴坑,注意繞行。 前提: 如果你的程式碼在windows上執行,去連線linux上的hado