Flume實戰監聽文件夾內文件變化


Flume官網有多種場景的source,sink,channel的配置







1、flume安裝目錄下新建文件夾 example?

2、在example下新建文件?

spooldir-logger.conf

內容如下:

a1.sources = r1
a1.sinks = k1
a1.channels = c1# Describe/configure the source
a1.sources.r1.type = spooldir
a1.sources.r1.spoolDir = /home/hadoop/flume_test
a1.sources.r1.fileHeader = true# Describe the sink
a1.sinks.k1.type = logger# Use a channel which buffers events in memory
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1


3、創建文件夾??/home/hadoop/flume_test


4、啟動,

命令:flume-ng agent -c ../conf -f spooldir-logger.conf -n a1 -Dflume.root.logger=INFO,console


5、在flume_test文件夾下新建文件

echo "11111" ?>> ?hello.txt

flume_test文件夾下多了個文件:hello.txt.COMPLETED


但flume報錯了。

2017-03-22 21:55:50,005 (pool-3-thread-1) [ERROR - org.apache.flume.source.SpoolDirectorySource$SpoolDirectoryRunnable.run(SpoolDirectorySource.java:280)] FATAL: Spool Directory source r1: { spoolDir: /home/hadoop/flume_test }: Uncaught exception in SpoolDirectorySource thread. Restart or reconfigure Flume to continue processing.
java.lang.IllegalStateException:File name has been re-used with different files. Spooling assumptions violated for /home/hadoop/flume_test/hello.txt.COMPLETED

跟蹤拋出異常的源碼,SpoolDirectorySource會啟動一個線程輪詢監控目錄下的目標文件,當讀取完該文件(readEvents)之后會對該文件進行重名(rollCurrentFile),當重命名失敗時會拋出IllegalStateException,被SpoolDirectoryRunnable catch重新拋出RuntimeException,導致當前線程退出,從源碼看SpoolDirectoryRunnable是單線程執行的,因此線程結束后,監控目錄下其他文件不再被處理。所以,再新建個 word.txt 文件,flume沒有監聽動作了。如下圖,word.txt沒有被重命名 word.txt.COMPLETED



正確的做法:


不要在flume_test文件夾下直接新建文件,寫內容。在其他文件下新建,寫好內容,mv 到flume_test文件夾下。

[hadoop@nbdo3 ~]$ cd testdata/
[hadoop@nbdo3 testdata]$ ll
total 4
-rw-rw-r--. 1 hadoop hadoop 71 Mar 10 20:19 hello.txt
[hadoop@nbdo3 testdata]$ cp hello.txt ../flume_test/
[hadoop@nbdo3 testdata]$ echo "123456778" >> world.txt
[hadoop@nbdo3 testdata]$ cp world.txt ../flume_test/
[hadoop@nbdo3 testdata]$




-------------

更多的Java,Angular,Android,大數據,J2EE,Python,數據庫,Linux,Java架構師,:

http://www.cnblogs.com/zengmiaogen/p/7083694.html



本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/538673.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/538673.shtml
英文地址,請注明出處:http://en.pswp.cn/news/538673.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python如何獲取輸入_python如何從鍵盤獲取輸入實例

python中使用input()函數來獲取用戶輸入 函數 input() 讓程序暫停運行,等待用戶輸入一些文本,獲取用戶的輸入后,Python將其存儲到一個變量中,以方便后期使用。 name input("Tell me your name,and I will repeat it back to…

cad打印本計算機未配置,CAD打印的基本設置詳細教程

CAD打印的基本設置詳細教程開始畫圖之前我們就考慮到打印的需要,要用多大紙張,打印比例應該設置成多少,打印后的字高、線寬、顏色應該設置成多少,在繪制圖形的時候,這些為打印而做的準備工作必須做好。要想正確地打印圖…

原 BinaryWriter和BinaryReader(二進制文件的讀寫)

原文 BinaryWriter和BinaryReader(二進制文件的讀寫) C#的FileStream類提供了最原始的字節級上的文件讀寫功能,但我們習慣于對字符串操作,于是StreamWriter和 StreamReader類增強了FileStream,它讓我們在字符串級別上操…

python redis 消息隊列_Python的Flask框架應用調用Redis隊列數據的方法

任務異步化打開瀏覽器,輸入地址,按下回車,打開了頁面。于是一個HTTP請求(request)就由客戶端發送到服務器,服務器處理請求,返回響應(response)內容。 我們每天都在瀏覽網…

go ip過濾_用Go實現自己的爬蟲

作者:Masamune在日常生活中,我們時常會遇到一些采集數據相關的需求,比如獲取一些官方數據整理到excel表中進行統計,聚合一些網頁新聞提高自己的閱讀效率等等。雖然許多爬蟲教程都是用python寫的,但是我認為Go語言是比p…

Flume實戰采集文件內容存入HDFS

1、flume安裝目錄下新建文件夾 example 2、在example下新建文件 log-hdfs.conf 內容如下: # Name the components on this agent a1.sources r1 a1.sinks k1 a1.channels c1#exec 指的是命令 # Describe/configure the source a1.sources.r1.type exec #F…

總結計算機語言的基本元素,認識程序設計中基本元素教案.doc

曲靖師院計算機科學與工程學院學生試講教案表課題:認識程序中的基本元素 年級:高一 課時:1課時授課時間:20分鐘 講授者:秦巧林 指導教師:崔麗梅教學目標知識與技能1. 掌握計算機程序中常用的常量、變量、函…

python海龜繪圖圓形_python之海龜繪圖

1. 基本功能介紹 在海龜作圖中,我們可以編寫指令讓一個虛擬的(想象中的)海龜在屏幕上來回移動。這個海龜帶著一只鋼筆,我們可以讓海龜無論移動到哪都使用這只鋼筆來繪制線條。通過編寫代碼,以各種很酷的模式移動海龜&a…

PLSQL Developer導入csv文件到oracle

csv文件內容: 要導入的表結構 create table RPT_MONILUCE_2_P01 ( imsi NUMBER, road_line NUMBER, ci NUMBER, diff NUMBER, rn NUMBER, sdate DATE, report_id NUMBER(20) ) 步驟: 1、在csv第一行上增加…

erwin 不能輸入中文_國產開源建模軟件PDMan與國外商業建模軟件ERwin的主要功能比較...

在數據庫建模的過程中,我們經常會使用到ERwin或者Power Designer之類的建模軟件,來構建我們的邏輯模型和物理模型。但是這類軟件都屬于商業軟件,需要企業購買相應的許可證授權。有些時候,我們會在沒有購買這類商業建模軟件的環境下…

Confluence 6 workbox 通知包含了什么

當一個用戶在 Confluence 中進行下面的操作的時候,workbox 將會顯示為通知: 分享(Shares) 你的頁面或者博客頁面。 提及(Mentions) 你的頁面,博客頁面,回復或者任務。你 關注&#x…

已知一點經緯度,方位角,距離,求另一點經緯度

參考了博文:http://blog.csdn.net/pyx6119822/article/details/52298037 ------------------------------------------------ package hellotest;public class LonLatTest3 {/** 大地坐標系資料WGS-84 長半徑a6378137 短半徑b6356752.3142 扁率f1/298.2572236*//**…

計算機一級excel如何選擇2個,2017年計算機一級excel操作題(2)

(3)建立和編輯圖表選擇工作簿中需要編輯的表單,為其添加圖表,其具體操作如下:步驟1選取“電腦城日出貨統計表”的“配件”和“所占比例”兩列,選擇【插入一圖表】命令,在彈出的“圖表向導”對話框“標準類型”的“圖表…

python的基本語術_一起學python-徹底掌握專業術語“變量”的概念

昨天分享了笨方法學習編程,今天就讓我們通過實戰來接觸python,掌握專業術語“變量”的概念吧 python 中的變量的基本概念和初中代數的方程式X的概念是一樣的,只是在計算機程序當中這個X不僅僅可以代表一個數字,還可以代表一段文字…

lamp自動部署工具_Linux一鍵配置工具ezhttp介紹

簡介: ezhttp是一個Linux一鍵配置工具,采用bash腳本語言編寫。支持自動配置LAMP,LNMP,LNAMP環境,以前提供各種其它的配置工具,如自動配置swap,配置iptables等。項目托管在github,地址為https://github.com/centos-bz/e…

Maven錯誤

1、軟件包javax.servlet不存在 解決辦法: 從tomcat lib目錄下拷貝一個servlet-api.jar的包到“JDK\jre\lib\ext”目錄下 凡是出現找不到包的情況,都可以將找到的包放到JDK\jre\lib\ext下,然后再編譯就能夠通過。 有方法是在pom.xml中引用s…

我對計算機感興趣作文300字,我想對電腦游戲說作文300字

電腦游戲呀!電腦游戲呀!我知道你被人們創造出來,是想給人們帶來快樂,可你也給人們帶來了不少煩惱呀!你可知道,自從爸爸迷上了你,就像是變了一個人似的……每天清晨,天還蒙蒙亮&#…

git設置全局賬號密碼_jenkins2.222使用之二、總體設置

構建前提:由于構建的時候是基于maven、git(碼云)以及jdk1.8來的,所以這些都需要和jenkins安裝在同一臺服務器上面。全局工具配置:1、配置jdk系統管理-全局工具配置-jdk,配置如下:jdk版本可以配置多個,構建的時候&#…

Mybatis源碼之(TypeAliasRegistry)TypeAlias別名實現機制

原文鏈接:http://blog.csdn.net/qq924862077/article/details/52612589 ---------------------------------- 在Mybatis編程中我們經常會用到將某個bean作為參數類型parameterType或者結果返回值類型ResultType,所以很多時候我們需要把完成的Bean的包名…

Java中Synchronized的用法

2019獨角獸企業重金招聘Python工程師標準>>> 《編程思想之多線程與多進程(1)——以操作系統的角度述說線程與進程》一文詳細講述了線程、進程的關系及在操作系統中的表現,這是多線程學習必須了解的基礎。本文將接著講一下Java線程同步中的一個重要的概念…