±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚ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°²×°¼òµ¥£¬¶¯Ì¬ÅäÖø´ÔÓ
ÏÂÃæ¶µÄ²©¿ÍÖеÄÒ»¸±¶Ô±Èͼ£º

|