Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
FlumeÈÕÖ¾ÊÕ¼¯
 
  2830  次浏览      27
 2018-1-24  
 
±à¼­ÍƼö:

±¾ÎÄÀ´×ÔÓÚcnblogs ,ÎÄÕÂÖ÷Òª½²½âÁËFluemµÄһЩ¼òµ¥½éÉÜ£¬¼Ü¹¹·Ö²¼Ê½»·¾³²¿Ê𣬸߼¶¶¯Ì¬ÅäÖõȡ£

Ò»¡¢Flume½éÉÜ

FlumeÊÇÒ»¸ö·Ö²¼Ê½¡¢¿É¿¿¡¢ºÍ¸ß¿ÉÓõĺ£Á¿ÈÕÖ¾¾ÛºÏµÄϵͳ£¬Ö§³ÖÔÚϵͳÖж¨ÖƸ÷ÀàÊý¾Ý·¢ËÍ·½£¬ÓÃÓÚÊÕ¼¯Êý¾Ý£»Í¬Ê±£¬FlumeÌṩ¶ÔÊý¾Ý½øÐмòµ¥´¦Àí£¬²¢Ð´µ½¸÷ÖÖÊý¾Ý½ÓÊÜ·½£¨¿É¶¨ÖÆ£©µÄÄÜÁ¦¡£

Éè¼ÆÄ¿±ê£º

(1) ¿É¿¿ÐÔ

µ±½Úµã³öÏÖ¹ÊÕÏʱ£¬ÈÕÖ¾Äܹ»±»´«Ë͵½ÆäËû½ÚµãÉ϶ø²»»á¶ªÊ§¡£FlumeÌṩÁËÈýÖÖ¼¶±ðµÄ¿É¿¿ÐÔ±£ÕÏ£¬´ÓÇ¿µ½ÈõÒÀ´Î·Ö±ðΪ£ºend-to-end£¨ÊÕµ½Êý¾ÝagentÊ×ÏȽ«eventдµ½´ÅÅÌÉÏ£¬µ±Êý¾Ý´«Ëͳɹ¦ºó£¬ÔÙɾ³ý£»Èç¹ûÊý¾Ý·¢ËÍʧ°Ü£¬¿ÉÒÔÖØÐ·¢ËÍ¡££©£¬Store on failure£¨ÕâÒ²ÊÇscribe²ÉÓõIJßÂÔ£¬µ±Êý¾Ý½ÓÊÕ·½crashʱ£¬½«Êý¾Ýдµ½±¾µØ£¬´ý»Ö¸´ºó£¬¼ÌÐø·¢ËÍ£©£¬Best effort£¨Êý¾Ý·¢Ë͵½½ÓÊÕ·½ºó£¬²»»á½øÐÐÈ·ÈÏ£©¡£

(2) ¿ÉÀ©Õ¹ÐÔ

Flume²ÉÓÃÁËÈý²ã¼Ü¹¹£¬·Ö±ðΪagent£¬collectorºÍstorage£¬Ã¿Ò»²ã¾ù¿ÉÒÔˮƽÀ©Õ¹¡£ÆäÖУ¬ËùÓÐagentºÍcollectorÓÉmasterͳһ¹ÜÀí£¬ÕâʹµÃϵͳÈÝÒ×¼à¿ØºÍά»¤£¬ÇÒmasterÔÊÐíÓжà¸ö£¨Ê¹ÓÃZooKeeper½øÐйÜÀíºÍ¸ºÔؾùºâ£©£¬Õâ¾Í±ÜÃâÁ˵¥µã¹ÊÕÏÎÊÌâ¡£

(3) ¿É¹ÜÀíÐÔ

ËùÓÐagentºÍcolletorÓÉmasterͳһ¹ÜÀí£¬ÕâʹµÃϵͳ±ãÓÚά»¤¡£¶àmasterÇé¿ö£¬FlumeÀûÓÃZooKeeperºÍgossip£¬±£Ö¤¶¯Ì¬ÅäÖÃÊý¾ÝµÄÒ»ÖÂÐÔ¡£Óû§¿ÉÒÔÔÚmasterÉϲ鿴¸÷¸öÊý¾ÝÔ´»òÕßÊý¾ÝÁ÷Ö´ÐÐÇé¿ö£¬ÇÒ¿ÉÒÔ¶Ô¸÷¸öÊý¾ÝÔ´ÅäÖúͶ¯Ì¬¼ÓÔØ¡£FlumeÌṩÁËweb ºÍshell script commandÁ½ÖÖÐÎʽ¶ÔÊý¾ÝÁ÷½øÐйÜÀí¡£

(4) ¹¦ÄÜ¿ÉÀ©Õ¹ÐÔ

Óû§¿ÉÒÔ¸ù¾ÝÐèÒªÌí¼Ó×Ô¼ºµÄagent£¬collector»òÕßstorage¡£´ËÍ⣬Flume×Ô´øÁ˺ܶà×é¼þ£¬°üÀ¨¸÷ÖÖagent£¨file£¬ syslogµÈ£©£¬collectorºÍstorage£¨file£¬HDFSµÈ£©¡£

¶þ¡¢Flume¼Ü¹¹

flumeµÄÂß¼­¼Ü¹¹£º

ÕýÈçÇ°ÃæÌáµ½µÄ£¬Flume²ÉÓÃÁË·Ö²ã¼Ü¹¹£º·Ö±ðΪagent£¬collectorºÍstorage¡£ÆäÖУ¬agentºÍcollector¾ùÓÉÁ½²¿·Ö×é³É£ºsourceºÍsink£¬sourceÊÇÊý¾ÝÀ´Ô´£¬sinkÊÇÊý¾ÝÈ¥Ïò¡£

FlumeʹÓÃÁ½¸ö×é¼þ£ºMasterºÍNode£¬Node¸ù¾ÝÔÚMaster shell»òwebÖж¯Ì¬ÅäÖ㬾ö¶¨ÆäÊÇ×÷ΪAgent»¹ÊÇCollector¡£

(1) agent

agentµÄ×÷ÓÃÊǽ«Êý¾ÝÔ´µÄÊý¾Ý·¢Ë͸øcollector¡£

Flume×Ô´øÁ˺ܶàÖ±½Ó¿ÉÓõÄÊý¾ÝÔ´£¨source£©£¬È磺

text(¡°filename¡±)£º½«Îļþfilename×÷ΪÊý¾ÝÔ´£¬°´Ðз¢ËÍ

tail(¡°filename¡±)£ºÌ½²âfilenameвúÉúµÄÊý¾Ý£¬°´Ðз¢ËͳöÈ¥

fsyslogTcp(5140)£º¼àÌýTCPµÄ5140¶Ë¿Ú£¬²¢ÇÒ½ÓÊÕµ½µÄÊý¾Ý·¢ËͳöÈ¥

tailDir("dirname"[, fileregex=".*"[, startFromEnd=false[, recurseDepth=0]]])£º¼àÌýĿ¼ÖеÄÎļþĩβ£¬Ê¹ÓÃÕýÔòȥѡ¶¨ÐèÒª¼àÌýµÄÎļþ£¨²»°üº¬Ä¿Â¼£©£¬recurseDepthΪµÝ¹é¼àÌýÆäÏÂ×ÓĿ¼µÄÉî¶È

¸ü¶à¿É²Î¼ûÕâλÅóÓѵÄÕûÀí£ºhttp://www.cnblogs.com/zhangmiao-chp/archive/2011/05/18/2050465.html

ͬʱÌṩÁ˺ܶàsink£¬È磺

console[("format")] £ºÖ±½Ó½«½«Êý¾ÝÏÔʾÔÚconsolrÉÏ

text(¡°txtfile¡±)£º½«Êý¾Ýдµ½ÎļþtxtfileÖÐ

dfs(¡°dfsfile¡±)£º½«Êý¾Ýдµ½HDFSÉϵÄdfsfileÎļþÖÐ

syslogTcp(¡°host¡±,port)£º½«Êý¾Ýͨ¹ýTCP´«µÝ¸øhost½Úµã

agentSink[("machine"[,port])]£ºµÈ¼ÛÓÚagentE2ESink£¬Èç¹ûÊ¡ÂÔ£¬machine²ÎÊý£¬Ä¬ÈÏʹÓÃflume.collector.event.hostÓëflume.collector.event.port×÷ΪĬÈÏcollecotr

agentDFOSink[("machine" [,port])]£º±¾µØÈȱ¸agent£¬agent·¢ÏÖcollector½Úµã¹ÊÕϺ󣬲»¶Ï¼ì²écollectorµÄ´æ»î״̬ÒÔ±ãÖØÐ·¢ËÍevent£¬Ôڴ˼ä²úÉúµÄÊý¾Ý½«»º´æµ½±¾µØ´ÅÅÌÖÐ

agentBESink[("machine"[,port])]£º²»¸ºÔðµÄagent£¬Èç¹ûcollector¹ÊÕÏ£¬½«²»×öÈκδ¦Àí£¬Ëü·¢Ë͵ÄÊý¾ÝÒ²½«±»Ö±½Ó¶ªÆú

agentE2EChain£ºÖ¸¶¨¶à¸öcollectorÌá¸ß¿ÉÓÃÐÔ¡£ µ±ÏòÖ÷collector·¢ËÍeventʧЧºó£¬×ªÏòµÚ¶þ¸öcollector·¢ËÍ£¬µ±ËùÓеÄcollectorʧ°Üºó£¬Ëü»á·Ç³£Ö´×ŵÄÔÙÀ´Ò»±é

¸ü¶à¿É²Î¼ûÕâλÅóÓѵÄÕûÀí£ºhttp://www.cnblogs.com/zhangmiao-chp/archive/2011/05/18/2050472.html

(2) collector

collectorµÄ×÷ÓÃÊǽ«¶à¸öagentµÄÊý¾Ý»ã×ܺ󣬼ÓÔØµ½storageÖС£

ËüµÄsourceºÍsinkÓëagentÀàËÆ¡£

Êý¾ÝÔ´£¨source£©£¬È磺

collectorSource[(port)]£ºCollector source£¬¼àÌý¶Ë¿Ú»ã¾ÛÊý¾Ý

autoCollectorSource£ºÍ¨¹ýmasterЭµ÷ÎïÀí½Úµã×Ô¶¯»ã¾ÛÊý¾Ý

logicalSource£ºÂß¼­source£¬ÓÉmaster·ÖÅä¶Ë¿Ú²¢¼àÌýrpcSink

sink£¬È磺

collectorSink( "fsdir","fsfileprefix",rollmillis)£ºcollectorSink£¬Êý¾Ýͨ¹ýcollector»ã¾ÛÖ®ºó·¢Ë͵½hdfs, fsdir ÊÇhdfsĿ¼£¬fsfileprefixΪÎļþǰ׺Âë

customdfs("hdfspath"[, "format"])£º×Ô¶¨Òå¸ñʽdfs

(3) storage

storageÊǴ洢ϵͳ£¬¿ÉÒÔÊÇÒ»¸öÆÕͨfile£¬Ò²¿ÉÒÔÊÇHDFS£¬HIVE£¬HBase£¬·Ö²¼Ê½´æ´¢µÈ¡£

(4) Master

MasterÊǹÜÀíЭµ÷agentºÍcollectorµÄÅäÖõÈÐÅÏ¢£¬ÊÇflume¼¯ÈºµÄ¿ØÖÆÆ÷¡£

ÔÚFlumeÖУ¬×îÖØÒªµÄ³éÏóÊÇdata flow£¨Êý¾ÝÁ÷£©£¬data flowÃèÊöÁËÊý¾Ý´Ó²úÉú£¬´«Êä¡¢´¦Àí²¢×îÖÕдÈëÄ¿±êµÄÒ»Ìõ·¾¶¡£

¶ÔÓÚagentÊý¾ÝÁ÷ÅäÖþÍÊÇ´ÓÄĵõ½Êý¾Ý£¬°ÑÊý¾Ý·¢Ë͵½Äĸöcollector¡£

¶ÔÓÚcollectorÊǽÓÊÕagent·¢¹ýÀ´µÄÊý¾Ý£¬°ÑÊý¾Ý·¢Ë͵½Ö¸¶¨µÄÄ¿±ê»úÆ÷ÉÏ¡£

×¢£ºFlume¿ò¼Ü¶ÔhadoopºÍzookeeperµÄÒÀÀµÖ»ÊÇÔÚjar°üÉÏ£¬²¢²»ÒªÇóflumeÆô¶¯Ê±±ØÐ뽫hadoopºÍzookeeper·þÎñÒ²Æô¶¯¡£

Èý¡¢Flume·Ö²¼Ê½»·¾³²¿Êð

 

1.ʵÑ鳡¾°

²Ù×÷ϵͳ°æ±¾£ºRedHat 5.6

Hadoop°æ±¾£º0.20.2

Jdk°æ±¾£ºjdk1.6.0_26

°²×°flume°æ±¾£ºflume-distribution-0.9.4-bin

²¿ÊðflumeÔÚ¼¯ÈºÉÏ£¬°´ÕÕÈçϲ½Ö裺

ÔÚ¼¯ÈºÉϵÄÿ̨»úÆ÷Éϰ²×°flume

Ñ¡ÔñÒ»¸ö»ò¶à¸ö½Úµãµ±×ömaster

Ð޸ľ²Ì¬ÅäÖÃÎļþ

ÔÚÖÁÉÙһ̨»úÆ÷ÉÏÆô¶¯Ò»¸ömaster £¬ËùÓнڵãÆô¶¯flume node

¶¯Ì¬ÅäÖÃ

ÐèÒªÔÚ¼¯ÈºµÄÿ̨»úÆ÷Éϲ¿ÊðFlume¡£

×¢Ò⣺flume¼¯ÈºÕû¸ö¼¯ÈºµÄÍøÂç»·¾³Òª±£Ö¤Îȶ¨£¬¿É¿¿£¬·ñÔò»á³öÏÖһЩĪÃû´íÎ󣨱ÈÈ磺agent¶Ë·¢ËͲ»ÁËÊý¾Ýµ½collector£©¡£

1.Flume»·¾³°²×°

$wget http://cloud.github.com/downloads/cloudera/flume/flume-distribution-0.9.4-bin.tar.gz
$tar -xzvf flume-distribution-0.9.4-bin.tar.gz
$cp -rf flume-distribution-0.9.4-bin /usr/local/flume
$vi /etc/profile #Ìí¼Ó»·¾³ÅäÖÃ
export FLUME_HOME=/usr/local/flume
export PATH=.:$PATH::$FLUME_HOME/bin
$source /etc/profile

$flume #ÑéÖ¤°²×°

2.Ñ¡ÔñÒ»¸ö»ò¶à¸ö½Úµãµ±×ömaster

¶ÔÓÚmasterµÄÑ¡ÔñÇé¿ö£¬¿ÉÒÔÔÚ¼¯ÈºÉ϶¨ÒåÒ»¸ömaster£¬Ò²¿ÉÒÔΪÁËÌá¸ß¿ÉÓÃÐÔÑ¡Ôñ¶à¸ö½Úµã×öΪmaster¡£

µ¥µãmasterģʽ£ºÈÝÒ×¹ÜÀí£¬µ«ÔÚϵͳµÄÈÝ´íºÍÀ©Õ¹ÐÔÓÐȱÏÝ

¶àµãmasterģʽ£ºÍ¨³£ÊÇÔËÐÐ3/5¸ömaster£¬ÄܺܺõÄÈÝ´í

Flume masterÊýÁ¿µÄÑ¡ÔñÔ­Ôò£º

·Ö²¼Ê½µÄmasterÄܹ»¼ÌÐøÕý³£¹¤×÷²»»á±ÀÀ£µÄǰÌáÊÇÕý³£¹¤×÷µÄmasterÊýÁ¿³¬¹ý×ÜmasterÊýÁ¿µÄÒ»°ë¡£

Flume master µÄ×÷ÓÃÖ÷ÒªÓÐÁ½¸ö£º

¸ú×Ù¸÷½ÚµãµÄÅäÖÃÇé¿ö£¬Í¨Öª½ÚµãÅäÖõĸı䣻

¸ú×ÙÀ´×ÔflowµÄ½áβ²Ù¿ØÔÚ¿É¿¿Ä£Ê½Ï£¨E2E£©µÄÐÅÏ¢£¬ÒÔÖÁÓÚÈÃflowµÄÔ´Í·ÖªµÀʲôʱºòÍ£Ö¹´«Êäevent¡£

3.Ð޸ľ²Ì¬ÅäÖÃÎļþ

site-specificÉèÖöÔÓÚflume½ÚµãºÍmasterͨ¹ýÔÚÿһ¸ö¼¯Èº½ÚµãµÄconf/flume-site.xmlÊÇ¿ÉÅäÖõģ¬Èç¹ûÕâ¸öÎļþ²»´æÔÚ£¬ÉèÖõÄÊôÐÔĬÈϵÄÔÚconf/flume--conf.xmlÖУ¬ÔÚ½ÓÏÂÀ´µÄÀý×ÓÖУ¬ÔÚflumeµÄ½ÚµãÉÏÉèÖÃmasterÃû£¬Èýڵã×Ô¼ºÈ¥Ñ°ÕҽС°master¡±µÄflume Master¡£

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>flume.master.servers</name>
<value>master</value>
</property>
</configuration>

ÔÚ¶àmasterµÄÇé¿öÏÂÐèÒªÈçÏÂÅäÖãº

<property>
<name>flume.master.servers</name>
<value>hadoopmaster.com, hadoopedge.com,datanode4.com</value>
<description>A comma-separated list of hostnames, one for each machine in the Flume Master.</description>
</property>
<property>
<name>flume.master.store</name>
<value>zookeeper</value>
<description>How the Flume Master stores node configurations. Must be either 'zookeeper' or 'memory'.</description>
</property>
<property>
<name>flume.master.serverid</name>
<value>2</value>
<description>The unique identifier for a machine in a Flume Master ensemble. Must be different on every master instance.</description>
</property>

×¢Ò⣺flume.master.serverid ÊôÐÔµÄÅäÖÃÖ÷ÒªÊÇÕë¶Ômaster£¬¼¯ÈºÉÏMaster½ÚµãµÄflume.master.serverid ±ØÐëÊDz»ÄÜÏàͬµÄ£¬¸ÃÊôÐÔµÄÖµÒÔ0¿ªÊ¼¡£

µ±Ê¹ÓÃagent½Çɫʱ£¬Äã¿ÉÒÔͨ¹ýÌí¼ÓÏÂÃæµÄÅäÖÃÎļþÔÚflume-conf.xmlÖУ¬À´ÉèÖÃĬÈϵÄcollectorÖ÷»ú£º

<property>
<name>flume.collector.event.host</name>
<value>collector</value>
<description>This is the host name of the default "remote" collector.</description>
</property>
<property>
<name>flume.collector.port</name>
<value>35853</value>
<description>This default tcp port that the collector listens to in order to receive events it is collecting.</description>
</property>

¹ØÓÚÅäÖÿɲμû£ºhttp://www.cnblogs.com/zhangmiao-chp/archive/2011/05/18/2050443.html¡£

4.Æô¶¯¼¯Èº

¼¯ÈºÉϽڵãÆô¶¯£º

ÔÚÃüÁîÐÐÊäÈ룺flume master Æô¶¯master½Úµã

ÔÚÃüÁîÐÐÊäÈ룺flume node ¨Cn nodeName Æô¶¯ÆäËû½Úµã£¬nodeName×îºÃ¸ù¾Ý¼¯ÈºÂß¼­µÄ»®·ÖÀ´È¡Ãû×Ó£¬ÕâÑùÔÚ master½øÐÐÅäÖõÄʱºò±È½ÏÇåÎú¡£

Ãû×Ö¹æÔò×Ô¼º¶¨Ò壬·½±ã¼ÇÒäºÍ¶¯Ì¬ÅäÖü´¿É£¨ºóÐø»áÓнéÉܶ¯Ì¬ÅäÖã©

5.»ùÓÚflume shellµÄ¶¯Ì¬ÅäÖÃ

¹ØÓÚflume shell ÖеÄcommand²Î¼û£ºhttp://www.cnblogs.com/zhangmiao-chp/archive/2011/05/18/2050461.html

¼ÙÉèÎÒÃÇĿǰ²¿ÊðµÄFlume¼¯Èº½á¹¹ÈçÏ£º

ÎÒÃÇÏ뽫A-FËùÔڵĻúÆ÷µÄϵͳÈÕÖ¾ÊÕ¼¯µ½HDFSÖУ¬ÔõôÑùÔÚflume shellÖÐÅäÖôﵽÎÒÃǵÄÄ¿µÄÄØ£¿

1. ÉèÖÃÂß¼­½Úµã£¨logical node£©

$flume shell
>connect localhost
>help
>exec map 192.168.0.1 agentA
>exec map 192.168.0.2 agentB
>exec map 192.168.0.3 agentC
>exec map 192.168.0.4 agentD
>exec map 192.168.0.5 agentE
>exec map 192.168.0.6 agentF
>getnodestatus
192.168.0.1 --> IDLE
192.168.0.2 --> IDLE
192.168.0.3 --> IDLE
192.168.0.4 --> IDLE
192.168.0.5 --> IDLE
192.168.0.6 --> IDLE
agentA --> IDLE
agentB --> IDLE
agentC --> IDLE
agentD --> IDLE
agentE --> IDLE
agentF --> IDLE
>exec map 192.168.0.11 collector

ÕâÀïÄãÒ²¿ÉÒÔ´ò¿ªweb master½çÃæ²é¿´¡£

2.Æô¶¯CollectorµÄ¼àÌý¶Ë¿Ú

>exec config collector 'collectorSource(35853)' 'collectorSink("","")'#collector½Úµã¼àÌý35853¶Ë¿Ú¹ýÀ´µÄÊý¾Ý£¬ÕâÒ»²¿·Ç³£ÖØÒª

µÇ½µ½collector·þÎñÆ÷½øÐж˿ڼì²â

$netstat -nalp|grep 35853

Èç¹ûÔÚmasterÖÐδ½øÐÐÉÏÊöÅäÖã¬ÔÚcollectorÉϼì²â²»µ½´Ë´ò¿ª¶Ë¿Ú

3.ÉèÖø÷½ÚµãµÄsourceºÍsink

>exec config collector 'collectorSource(35853)' 'collectorSink("hdfs://namenode/flume/","syslog")'
>exec config agentA 'tail("/tmp/log/message")' 'agentBESink("192.168.0.11")' #¾­¹ýʵÑ飬ºÃÏñÒ»¸öÂß¼­½Úµã£¬×î¶àÖ»ÄÜÓÐÒ»¸ösourceºÍsink.
>...
>exec config agentF 'tail("/tmp/log/message")' 'agentBESink("192.168.0.11")'

ÕâʱµÄÅäÖÃÇé¿ö¿É´Ómaster webÖÐһĿÁËÈ»£¬´ËʱÒѾ­¿ÉÒÔ´ïµ½ÎÒÃÇ×î³õµÄÄ¿µÄÁË¡£

ÒÔÉÏͨ¹ýflume shell½øÐеĶ¯Ì¬ÅäÖã¬ÔÚflume master webÖж¼¿ÉÒÔ½øÐУ¬Ôڴ˲»×ö½øÒ»²½ËµÃ÷¡£

ËÄ¡¢¸ß¼¶¶¯Ì¬ÅäÖÃ

¸ß¼¶ÅäÖÃÆäʵ¾ÍÊÇÔÚÉÏÊö¼òµ¥ÅäÖÃÖÐÔö¼ÓÁËÒÔϼ¸¸öÌØÐÔÀ´±£Ö¤ÏµÍ³¸üºÃµÄÔËÐУº

¶àMaster(Master½ÚµãµÄ¸ß¿ÉÓÃ)

Collector Chain£¨CollectorµÄ¸ß¿ÉÓã©

¶àMasterµÄÇé¿öÔÚÉÏÃæÒѾ­Óйý½éÉÜ£¬°üÀ¨ÓÃ;ºÍmaster¸öÊýµÈ¡£ÏÂÃæÀ´¼òµ¥¿´Ò»ÏÂCollector Chain£¬ÆäʵҲºÜ¼òµ¥£¬¾ÍÊÇÔÚ¶¯Ì¬ÅäÖÃʱ£¬Ê¹ÓÃagent*ChainÀ´Ö¸¶¨¶à¸öCollectorÀ´±£Ö¤ÆäÈÕÖ¾´«ÊäµÄ¿ÉÓÃÐÔ¡£¿´Ò»ÏÂÒ»°ãÕýʽ»·¾³ÖÐflumeµÄÂß¼­Í¼£º

ÕâÀïagentAºÍagentBÖ¸ÏòcollectorA£¬Èç¹ûCollectorA crachÁË£¬¸ù¾ÝÅäÖõĿɿ¿ÐÔ¼¶±ðagent»áÓÐÏàÓ¦µÄ¶¯×÷£¬ÎÒÃǺܿÉÄÜΪÁ˱£ÕϸßЧ´«Êä¶øÃ»ÓÐÑ¡ÔñE2E£¨¼´Ê¹ÊÇÕâÖÖ·½Ê½£¬Agent±¾µØÈÕÖ¾ÀÛ»ý¹ý¶àÒÀÈ»ÊÇÒ»¸öÎÊÌ⣩£¬Ò»°ã»áÅäÖöà¸öCollector£¬ÐγÉcollector chain¡£

>exec config agentC 'tail("/tmp/log/message")' 'agentE2EChain("collectorB:35853","collectorA:35853")'
>exec config agentD 'tail("/tmp/log/message")' 'agentE2EChain("collectorB:35853","collectorC:35853")'

ÕâÑùcollectorBÔÚ³öÎÊÌâʱ£º

Îå¡¢ÎÊÌâºÍ×ܽá

ÉÏÊö½ÚµãÓÐÈçϼ¸Àࣺmaster¡¢agent¡¢collector¡¢storage£¬Õë¶ÔÿÀà½ÚµãÎÒÃÇ¿´Ò»Ï¸߿ÉÓúÍÓÐûÓпÉÄÜÒýÆðÐÔÄÜÆ¿¾±ÎÊÌâ¡£

Ê×ÏÈ£¬storage²ãµÄʧ°ÜºÍcollector²ãµÄʧ°ÜÊÇÒ»ÑùµÄ£¬Ö»ÒªÊý¾Ý·Å²»µ½×îÖÕµÄλÖ㬾ÍÈÏΪ½ÚµãÊÇʧ°ÜµÄ¡£ÎÒÃÇÒ»¶¨»á¸ù¾ÝÊÕ¼¯Êý¾ÝµÄ¿É¿¿ÐÔÉ趨ºÏÊʵĴ«Êäģʽ£¬¶øÇÒ»á¸ù¾ÝÎÒÃǵÄÅäÖã¬×Ô¼º¿ØÖÆcollector½ÓÊÕÊý¾ÝµÄÇé¿ö£¬collectorµÄÐÔÄÜÓ°ÏìµÄÊÇÕû¸öflume¼¯ÈºµÄÊý¾ÝÍÌÍÂÁ¿£¬ËùÒÔcollector×îºÃµ¥¶À²¿Êð£¬ËùÒÔÒ»°ã²»Óÿ¼ÂǸ߿ÉÓÃÎÊÌâ¡£

È»ºó£¬agent²ãµÄʧ°Ü£¬FlumeÊý¾Ý°²È«¼¶±ðµÄÅäÖÃÖ÷ÒªAgentµÄÅäÖÃÉÏ£¬AgentÌṩÈýÖÖ¼¶±ð·¢ËÍÊý¾Ýµ½collector£ºE2E¡¢DFO¡¢BF£¬ÔÚЩ²»×¸Êö¡£¿´Ò»ÏÂһλ´óÅ£µÄ×ܽ᣺

agent½Úµã¼à¿ØÈÕÖ¾Îļþ¼ÐϵÄËùÓÐÎļþ£¬Ã¿Ò»¸öagent×î¶à¼àÌý1024¸öÎļþ£¬Ã¿Ò»¸öÎļþÔÚagentµÄ¶¼»áÓÐÒ»¸öÀàËÆÓαêµÄ¶«Î÷£¬¼Ç¼¼àÌýÎļþ¶ÁÈ¡µÄλÖã¬ÕâÑùÿ´ÎÎļþÓÐеļǼ²úÉú£¬ÄÇôÓαê¾Í»á¶ÁÈ¡ÔöÁ¿¼Ç¼£¬¸ù¾ÝagentÅäÖ÷¢Ë͵½collectorµÄ°²È«²ã¼¶ÊôÐÔÓÐE2E,DFO¡£
Èç¹ûÊÇE2EµÄÇé¿öÄÇôagent½Úµã»áÊ×ÏȰÑÎļþдÈëµ½agent½ÚµãµÄÎļþ¼ÐÏ£¬È»ºó·¢Ë͸øcollector£¬Èç¹û×îÖÕÊý¾Ý×îÖճɹ¦´æ´¢µ½storage²ã£¬ÄÇôagentɾ³ý֮ǰдÈëµÄÎļþ£¬Èç¹ûûÓÐÊÕµ½³É¹¦µÄÐÅÏ¢£¬ÄÇô¾Í±£ÁôÐÅÏ¢¡£
Èç¹ûagent½Úµã³öÏÖÎÊÌ⣬ÄÇôÏ൱ÓÚËùÓеļǼÐÅÏ¢¶¼ÏûʧÁË£¬Èç¹ûÖ±½ÓÖØÐÂÆô¶¯£¬agent»áÈÏΪÈÕÖ¾Îļþ¼ÐϵÄËùÓÐÎļþ¶¼ÊÇûÓмàÌý¹ýµÄ£¬Ã»ÓÐÎļþ¼Ç¼µÄ±êʾ£¬ËùÒÔ»áÖØÐ¶ÁÈ¡Îļþ£¬ÕâÑù£¬ÈÕÖ¾¾Í»áÓÐÖØ¸´£¬¾ßÌå»Ö¸´°ì·¨ÈçÏÂ
½«agent½ÚµãÉϼàÌýµÄÈÕÖ¾Îļþ¼ÐÏÂÒѾ­·¢Ë͵ÄÈÕÖ¾ÎļþÒÆ³ö£¬´¦ÀíÍ꣬¹ÊÕÏÖØÐÂÆô¶¯agent¼´¿É¡£
×¢£ºÔÚagent½Úµãʧ°ÜµÄÇé¿öÏ£¬°´ÕÕʧ°ÜµÄʱ¼äµã£¬½«Ê±¼äµã֮ǰµÄÊý¾ÝÎļþÒÆ³ö£¬½«flume.agent.logdirÅäÖõÄÎļþ¼ÐÇå¿Õ£¬ÖØÐÂÆô¶¯agent¡£

×îºó£¬masterʧ°Ü£¬masterå´»ú£¬Õû¸ö¼¯Èº½«²»Äܹ¤×÷£¬ÔÚÖØÐÂÆô¶¯¼¯Èº£¬½«agent¼àÌýµÄÈÕÖ¾Îļþ¼ÐϵÄËùÓÐÎļþÒÆ³ö£¬È»ºóÖØÐÂÆô¶¯master¼´¿É¡£ÔÚ¶àmaster½ÚµãÇé¿öÏ£¬Ö»Òª¼¯ÈºÉÏÕý³£¹¤×÷µÄmaster´óÓÚ×ÜmasterÊýÁ¿µÄÒ»°ë£¬¼¯Èº¾ÍÄÜÕý³£¹¤×÷£¬ÄÇôֻҪ»Ö¸´ÆäÖÐå´»úµÄmaster¼´¿É¡£

ÎÊÌâ×ܽ᣺

1.FlumeÔÚagent¶Ë²É¼¯Êý¾ÝµÄʱºòĬÈÏ»áÔÚ/tmp/flume-{user}ÏÂÉú³ÉÁÙʱµÄĿ¼ÓÃÓÚ´æ·Åagent×Ô¼º½ØÈ¡µÄÈÕÖ¾Îļþ£¬Èç¹ûÎļþ¹ý´óµ¼Ö´ÅÅÌдÂúÄÇôagent¶Ë»á±¨³ö

Error closing logicalNode a2-18 sink: No space left on device£¬ËùÒÔÔÚÅäÖÃagent¶ËµÄʱºòÐèҪעÒâ

<property>

<name>flume.agent.logdir</name>

<value>/data/tmp/flume-${user.name}/agent</value>

</property>

ÊôÐÔ£¬Ö»Òª±£Ö¤flumeÔÚ7*24СʱÔËÐйý³Ìagent¶Ë²»»áʹ¸Ã·¾¶flume.agent.logdir´ÅÅÌдÂú¼´¿É¡£

2. FlumeÔÚÆô¶¯Ê±ºò»áȥѰÕÒhadoop-core-*.jarµÄÎļþ£¬ÐèÒªÐ޸ıê×¼°æµÄhadoopºËÐÄjar°üµÄÃû×Ö ½«hadoop-*-core.jar¸Ä³Éhadoop-core-*.jar¡£

3.Flume¼¯ÈºÖеÄflume±ØÐë°æ±¾Ò»Ö¡£·ñÔò»á³öÏÖĪÃûÆäÃîµÄ´íÎó¡£

4.Flume¼¯ÈºÊÕ¼¯µÄÈÕÖ¾·¢Ë͵½hdfsÉϽ¨Á¢Îļþ¼ÐµÄʱ¼äÒÀ¾ÝÊǸù¾ÝeventµÄʱ¼ä£¬ÔÚÔ´´úÂëÉÏÊÇClock.unixTime()£¬ËùÒÔÈç¹ûÏëÒª¸ù¾ÝÈÕÖ¾Éú³ÉµÄʱ¼äÀ´Éú³ÉÎļþµÄ»°£¬ÐèÒª¶Ô

com.cloudera.flume.core.EventImpl ÀàµÄ¹¹Ô캯Êý

public EventImpl(byte[] s, long timestamp, Priority pri, long nanoTime,

String host, Map<String, byte[]> fields)ÖØÐÂд£¬½âÎöÊý×ésµÄÄÚÈÝÈ¡³öʱ¼ä£¬¸³¸øtimestamp¡£

×¢Ò⣺flumeµÄ¿ò¼Ü»á¹¹ÔìsÄÚÈÝÊǿյÄÊý×飬ÓÃÀ´·¢ËÍÀàËÆ¼òµ¥ÑéÖ¤µÄevent£¬ËùÒÔÐèҪעÒâsÄÚÈÝΪ¿ÕµÄʱºòtimestampµÄÎÊÌâ¡£

5.Èç¹ûcollectorºÍagent²»ÔÚÒ»¸öÍø¶ÎµÄ»°»á·¢ÉúÉÁ¶ÏµÄÏÖÏó£¬ÕâÑùµÄ»°£¬¾Í»áÔì³Éagent¶Ë²»ÄÜ´«ËÍÊý¾Ý¸öcollectorËùÒÔ£¬ÔÚ²¿ÊðagentºÍcollector×îºÃÔÚÒ»¸öÍø¶Î¡£

6.Èç¹ûÔÚÆô¶¯masterʱ³öÏÖ£º¡°ÊÔ×ÅÆô¶¯hostname£¬µ«ÊÇhostname²»ÔÚmasterÁбíÀïµÄ´íÎó¡°£¬ÕâÊÇÐèÒª¼ì²éÊÇ·ñÖ÷»úµØÖ·ºÍhostnameÅäÖõÄÕýÈ·Óë·ñ¡£

7.ÔÚÔ´¶Ë£¬ÓÐÒ»¸ö±È½Ï´óµÄȱÏÝ£¬ÔÚtailÀàµÄsource£¬²»Ö§³Ö£¬¶ÏµãÐø´«¹¦ÄÜ¡£ÒòÎªÖØÆônodeºóûÓмǼÉÏ´ÎÎļþ¶Áµ½µÄλÖ㬴ӶøÃ»°ì·¨ÖªµÀ£¬Ï´ÎÔÙ¶Áʱ£¬´ÓʲôµØ·½¿ªÊ¼¶Á¡£

ÌØ±ðÊÇÔÚÈÕÖ¾ÎļþÒ»Ö±ÔÚÔö¼ÓµÄʱºò¡£flumeµÄsource node¹ÒÁË¡£µÈflumeµÄsourceÔٴοªÆôµÄÕâ¶Îʱ¼äÄÚ£¬Ôö¼ÓµÄÈÕÖ¾ÄÚÈÝ£¬¾Íû°ì·¨±»source¶ÁÈ¡µ½ÁË¡£

²»¹ýflumeÓÐÒ»¸öexecStreamµÄÀ©Õ¹£¬¿ÉÒÔ×Ô¼ºÐ´Ò»¸ö¼à¿ØÈÕÖ¾Ôö¼ÓÇé¿ö£¬°ÑÔö¼ÓµÄÈÕÖ¾£¬Í¨¹ý×Ô¼ºÐ´µÄ¹¤¾ß°ÑÔö¼ÓµÄÄÚÈÝ£¬´«Ë͸øflumeµÄnode¡£ÔÙ´«Ë͸øsinkµÄnode¡£

ÒÔǰÎÄÕÂÖнéÉܹýScribe·½°¸£¬¸øÎÒµÄ×îÖ±¹Û¸ÐÊܾÍÊÇ£º

scribe°²×°¸´ÔÓ£¬ÅäÖüòµ¥

flume°²×°¼òµ¥£¬¶¯Ì¬ÅäÖø´ÔÓ

ÏÂÃæ¶­µÄ²©¿ÍÖеÄÒ»¸±¶Ô±Èͼ£º

   
2830 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

»ùÓÚEAµÄÊý¾Ý¿â½¨Ä£
Êý¾ÝÁ÷½¨Ä££¨EAÖ¸ÄÏ£©
¡°Êý¾Ýºþ¡±£º¸ÅÄî¡¢ÌØÕ÷¡¢¼Ü¹¹Óë°¸Àý
ÔÚÏßÉ̳ÇÊý¾Ý¿âϵͳÉè¼Æ ˼·+Ч¹û
 
Ïà¹ØÎĵµ

GreenplumÊý¾Ý¿â»ù´¡Åàѵ
MySQL5.1ÐÔÄÜÓÅ»¯·½°¸
ijµçÉÌÊý¾ÝÖÐ̨¼Ü¹¹Êµ¼ù
MySQL¸ßÀ©Õ¹¼Ü¹¹Éè¼Æ
Ïà¹Ø¿Î³Ì

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ