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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓƵ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
¸ß¿ÉÓÃHadoopƽ̨£­Flume NGʵսͼ½âƪ
 
  3102  次浏览      27
 2018-1-31  
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚ²©¿Í,²©Ö÷¶ÔÓÚFlume NGʵս×ܽἰͼ½â£¬°üÀ¨Flume NG¼òÊö¡¢µ¥µãFlume NG´î½¨¡¢ÔËÐС¢¸ß¿ÉÓÃFlume NG´î½¨¡¢Failover²âÊÔ¡¢½ØͼԤÀÀµÈµÈ¡£

1.¸ÅÊö

½ñÌì²¹³äһƪ¹ØÓÚFlumeµÄ²©¿Í£¬Ç°ÃæÔÚ½²½â¸ß¿ÉÓõÄHadoopƽ̨µÄʱºòÒÅ©ÁËÕâƪ£¬±¾Æª²©¿ÍΪ´ó¼Ò½²ÊöÒÔÏÂÄÚÈÝ£º

  • Flume NG¼òÊö
  • µ¥µãFlume NG´î½¨¡¢ÔËÐÐ
  • ¸ß¿ÉÓÃFlume NG´î½¨
  • Failover²âÊÔ
  • ½ØͼԤÀÀ

ÏÂÃ濪ʼ½ñÌìµÄ²©¿Í½éÉÜ¡£

2.Flume NG¼òÊö

Flume NGÊÇÒ»¸ö·Ö²¼Ê½£¬¸ß¿ÉÓ㬿ɿ¿µÄϵͳ£¬ËüÄܽ«²»Í¬µÄº£Á¿Êý¾ÝÊÕ¼¯£¬Òƶ¯²¢´æ´¢µ½Ò»¸öÊý¾Ý´æ´¢ÏµÍ³ÖС£ÇáÁ¿£¬ÅäÖüòµ¥£¬ÊÊÓÃÓÚ¸÷ÖÖÈÕÖ¾ÊÕ¼¯£¬²¢Ö§³ÖFailoverºÍ¸ºÔؾùºâ¡£²¢ÇÒËüÓµÓзdz£·á¸»µÄ×é¼þ¡£Flume NG²ÉÓõÄÊÇÈý²ã¼Ü¹¹£ºAgent²ã£¬Collector²ãºÍStore²ã£¬Ã¿Ò»²ã¾ù¿ÉˮƽÍØÕ¹¡£ÆäÖÐAgent°üº¬Source£¬ChannelºÍSink£¬ÈýÕß×齨ÁËÒ»¸öAgent¡£ÈýÕßµÄÖ°ÔðÈçÏÂËùʾ£º

  • Source£ºÓÃÀ´Ïû·Ñ£¨ÊÕ¼¯£©Êý¾ÝÔ´µ½Channel×é¼þÖÐ
  • Channel£ºÖÐתÁÙʱ´æ´¢£¬±£´æËùÓÐSource×é¼þÐÅÏ¢
  • Sink£º´ÓChannelÖжÁÈ¡£¬¶ÁÈ¡³É¹¦ºó»áɾ³ýChannelÖеÄÐÅÏ¢

ÏÂͼÊÇFlume NGµÄ¼Ü¹¹Í¼£¬ÈçÏÂËùʾ£º

ͼÖÐÃèÊöÁË£¬´ÓÍⲿϵͳ£¨Web Server£©ÖÐÊÕ¼¯²úÉúµÄÈÕÖ¾£¬È»ºóͨ¹ýFlumeµÄAgentµÄSource×é¼þ½«Êý¾Ý·¢Ë͵½ÁÙʱ´æ´¢Channel×é¼þ£¬×îºó´«µÝ¸øSink×é¼þ£¬Sink×é¼þÖ±½Ó°ÑÊý¾Ý´æ´¢µ½HDFSÎļþϵͳÖС£

3.µ¥µãFlume NG´î½¨¡¢ÔËÐÐ

ÎÒÃÇÔÚÊìϤÁËFlume NGµÄ¼Ü¹¹ºó£¬ÎÒÃÇÏȴһ¸öµ¥µãFlumeÊÕ¼¯ÐÅÏ¢µ½HDFS¼¯ÈºÖУ¬ÓÉÓÚ×ÊÔ´ÓÐÏÞ£¬±¾´ÎÖ±½ÓÔÚ֮ǰµÄ¸ß¿ÉÓÃHadoop¼¯ÈºÉϴFlume¡£

³¡¾°ÈçÏ£ºÔÚNNA½ÚµãÉϴһ¸öFlume NG£¬½«±¾µØÈÕÖ¾ÊÕ¼¯µ½HDFS¼¯Èº¡£

3.1»ù´¡Èí¼þ

ÔڴFlume NG֮ǰ£¬ÎÒÃÇÐèҪ׼±¸±ØÒªµÄÈí¼þ£¬¾ßÌåÏÂÔصØÖ·ÈçÏÂËùʾ£º

  • Flume http://www.apache.org/dyn/closer.cgi/flume/1.5.2/ apache-flume-1.5.2-bin.tar.gz

JDKÓÉÓÚ֮ǰÔÚ°²×°Hadoop¼¯ÈºÊ±ÒѾ­ÅäÖùý£¬ÕâÀï¾Í²»×¸ÊöÁË£¬ÈôÐèÒªÅäÖõÄͬѧ£¬¿É²Î¿¼¡¶ÅäÖø߿ÉÓõÄHadoopƽ̨http:// www.cnblogs.com/ smartloli/p/4298430.html¡·¡£

3.2°²×°ÓëÅäÖÃ

  • °²×°

Ê×ÏÈ£¬ÎÒÃǽâѹflume°²×°°ü£¬ÃüÁîÈçÏÂËùʾ£º

[hadoop@nna ~]$ tar -zxvf apache-flume-1.5.2-bin.tar.gz
  • ÅäÖÃ

»·¾³±äÁ¿ÅäÖÃÄÚÈÝÈçÏÂËùʾ£º

export FLUME_HOME=/home/hadoop/flume-1.5.2
export PATH=$PATH:$FLUME_HOME/bin

flume-conf.properties

#agent1 name
agent1.sources=source1
agent1.sinks=sink1
agent1.channels=channel1
#Spooling Directory
#set source1
agent1.sources.source1.type=spooldir
agent1.sources.source1.spoolDir = /home/hadoop/dir/logdfs
agent1.sources.source1.channels=channel1
agent1.sources.source1.fileHeader = false
agent1.sources.source1.interceptors = i1
agent1.sources.source1.interceptors.i1.type = timestamp
#set sink1
agent1.sinks.sink1.type=hdfs
agent1.sinks.sink1.hdfs.path = /home/hdfs/flume/logdfs
agent1.sinks.sink1.hdfs.fileType=DataStream
agent1.sinks.sink1.hdfs.writeFormat=TEXT
agent1.sinks.sink1.hdfs.rollInterval=1
agent1.sinks.sink1.channel=channel1
agent1.sinks.sink1.hdfs.filePrefix= %Y-%m-%d
#set channel1
agent1.channels.channel1.type=file
agent1.channels.channel1.checkpointDir = /home/hadoop/dir/logdfstmp/point
agent1.channels.channel1.dataDirs = /home/hadoop/dir/logdfstmp

flume-env.sh

JAVA_HOME=/usr/java/jdk1.7

×¢£ºÅäÖÃÖеÄĿ¼Èô²»´æÔÚ£¬ÐèÌáÇ°´´½¨¡£

3.3Æô¶¯

Æô¶¯ÃüÁîÈçÏÂËùʾ£º

flume-ng agent -n agent1 -c conf -f flume-conf.properties - Dflume.root.logger = DEBUG,console

×¢£ºÃüÁîÖеÄagent1±íʾÅäÖÃÎļþÖеÄAgentµÄName£¬ÈçÅäÖÃÎļþÖеÄagent1¡£flume-conf.properties±íʾÅäÖÃÎļþËùÔÚÅäÖã¬ÐèÌîд׼ȷµÄÅäÖÃÎļþ·¾¶¡£

3.4Ч¹ûÔ¤ÀÀ

Ö®ºó£¬³É¹¦ÉÏ´«ºó±¾µØÄ¿µÄ»á±»±ê¼ÇÍê³É¡£ÈçÏÂͼËùʾ£º

4.¸ß¿ÉÓÃFlume NG´î½¨

ÔÚÍê³Éµ¥µãµÄFlume NG´î½¨ºó£¬ÏÂÃæÎÒÃǴһ¸ö¸ß¿ÉÓõÄFlume NG¼¯Èº£¬¼Ü¹¹Í¼ÈçÏÂËùʾ£º

ͼÖУ¬ÎÒÃÇ¿ÉÒÔ¿´³ö£¬FlumeµÄ´æ´¢¿ÉÒÔÖ§³Ö¶àÖÖ£¬ÕâÀïÖ»ÁоÙÁËHDFSºÍKafka£¨È磺´æ´¢×îеÄÒ»ÖÜÈÕÖ¾£¬²¢¸øStormϵͳÌṩʵʱÈÕÖ¾Á÷£©¡£

4.1½Úµã·ÖÅä

FlumeµÄAgentºÍCollector·Ö²¼ÈçϱíËùʾ£º

Ãû³Æ¡¡ HOST ½ÇÉ«
Agent1 10.211.55.14 Web Server
Agent2 10.211.55.15 Web Server
Agent3 10.211.55.16¡¡ Web Server
Collector1 10.211.55.18 AgentMstr1
Collector2 10.211.55.19 AgentMstr2

ͼÖÐËùʾ£¬Agent1£¬Agent2£¬Agent3Êý¾Ý·Ö±ðÁ÷Èëµ½Collector1ºÍCollector2£¬Flume NG±¾ÉíÌṩÁËFailover»úÖÆ£¬¿ÉÒÔ×Ô¶¯Çл»ºÍ»Ö¸´¡£ÔÚÉÏͼÖУ¬ÓÐ3¸ö²úÉúÈÕÖ¾·þÎñÆ÷·Ö²¼ÔÚ²»Í¬µÄ»ú·¿£¬Òª°ÑËùÓеÄÈÕÖ¾¶¼ÊÕ¼¯µ½Ò»¸ö¼¯ÈºÖд洢¡£ÏÂÃæÎÒÃÇ¿ª·¢ÅäÖÃFlume NG¼¯Èº

4.2ÅäÖÃ

ÔÚÏÂÃæµ¥µãFlumeÖУ¬»ù±¾ÅäÖö¼Íê³ÉÁË£¬ÎÒÃÇÖ»ÐèÒªÐÂÌí¼ÓÁ½¸öÅäÖÃÎļþ£¬ËüÃÇÊÇflume-client.propertiesºÍflume-server.properties£¬ÆäÅäÖÃÄÚÈÝÈçÏÂËùʾ£º

  • flume-client.properties
#agent1 name
agent1.channels = c1
agent1.sources = r1
agent1.sinks = k1 k2
#set gruop
agent1.sinkgroups = g1
#set channel
agent1.channels.c1.type = memory
agent1.channels.c1.capacity = 1000
agent1.channels.c1.transactionCapacity = 100
agent1.sources.r1.channels = c1
agent1.sources.r1.type = exec
agent1.sources.r1.command = tail -F /home/hadoop/dir/logdfs/test.log
agent1.sources.r1.interceptors = i1 i2
agent1.sources.r1.interceptors.i1.type = static
agent1.sources.r1.interceptors.i1.key = Type
agent1.sources.r1.interceptors.i1.value = LOGIN
agent1.sources.r1.interceptors.i2.type = timestamp
# set sink1
agent1.sinks.k1.channel = c1
agent1.sinks.k1.type = avro
agent1.sinks.k1.hostname = nna
agent1.sinks.k1.port = 52020
# set sink2
agent1.sinks.k2.channel = c1
agent1.sinks.k2.type = avro
agent1.sinks.k2.hostname = nns
agent1.sinks.k2.port = 52020
#set sink group
agent1.sinkgroups.g1.sinks = k1 k2
#set failover
agent1.sinkgroups.g1.processor.type = failover
agent1.sinkgroups.g1.processor.priority.k1 = 10
agent1.sinkgroups.g1.processor.priority.k2 = 1
agent1.sinkgroups.g1.processor.maxpenalty = 10000

×¢£ºÖ¸¶¨CollectorµÄIPºÍPort¡£

  • flume-server.properties
#set Agent name
a1.sources = r1
a1.channels = c1
a1.sinks = k1
#set channel
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
# other node,nna to nns
a1.sources.r1.type = avro
a1.sources.r1.bind = nna
a1.sources.r1.port = 52020
a1.sources.r1.interceptors = i1
a1.sources.r1.interceptors.i1.type = static
a1.sources.r1.interceptors.i1.key = Collector
a1.sources.r1.interceptors.i1.value = NNA
a1.sources.r1.channels = c1
#set sink to hdfs
a1.sinks.k1.type=hdfs
a1.sinks.k1.hdfs.path = /home/hdfs/flume/logdfs
a1.sinks.k1.hdfs.fileType=DataStream
a1.sinks.k1.hdfs.writeFormat=TEXT
a1.sinks.k1.hdfs.rollInterval=1
a1.sinks.k1.channel=c1
a1.sinks.k1.hdfs.filePrefix=%Y-%m-%d

×¢£ºÔÚÁíһ̨Collector½ÚµãÉÏÐÞ¸ÄIP£¬ÈçÔÚNNS½Úµã½«°ó¶¨µÄ¶ÔÏóÓÐnnaÐÞ¸ÄΪnns¡£

4.3Æô¶¯

ÔÚAgent½ÚµãÉÏÆô¶¯ÃüÁîÈçÏÂËùʾ£º

flume-ng agent -n agent1 -c conf -f flume-client.properties -Dflume.root.logger = DEBUG,console

×¢£ºÃüÁîÖеÄagent1±íʾÅäÖÃÎļþÖеÄAgentµÄName£¬ÈçÅäÖÃÎļþÖеÄagent1¡£flume-client.properties±íʾÅäÖÃÎļþËùÔÚÅäÖã¬ÐèÌîд׼ȷµÄÅäÖÃÎļþ·¾¶¡£

ÔÚCollector½ÚµãÉÏÆô¶¯ÃüÁîÈçÏÂËùʾ£º

flume-ng agent -n a1 -c conf -f flume-server.properties -Dflume.root.logger = DEBUG,console

×¢£ºÃüÁîÖеÄa1±íʾÅäÖÃÎļþÖеÄAgentµÄName£¬ÈçÅäÖÃÎļþÖеÄa1¡£flume-server.properties±íʾÅäÖÃÎļþËùÔÚÅäÖã¬ÐèÌîд׼ȷµÄÅäÖÃÎļþ·¾¶¡£

5.Failover²âÊÔ

ÏÂÃæÎÒÃÇÀ´²âÊÔÏÂFlume NG¼¯ÈºµÄ¸ß¿ÉÓ㨹ÊÕÏתÒÆ£©¡£³¡¾°ÈçÏ£ºÎÒÃÇÔÚAgent1½ÚµãÉÏ´«Îļþ£¬ÓÉÓÚÎÒÃÇÅäÖÃCollector1µÄȨÖرÈCollector2´ó£¬ËùÒÔCollector1ÓÅÏȲɼ¯²¢ÉÏ´«µ½´æ´¢ÏµÍ³¡£È»ºóÎÒÃÇkillµôCollector1£¬´ËʱÓÐCollector2¸ºÔðÈÕÖ¾µÄ²É¼¯ÉÏ´«¹¤×÷£¬Ö®ºó£¬ÎÒÃÇÊÖ¶¯»Ö¸´Collector1½ÚµãµÄFlume·þÎñ£¬ÔÙ´ÎÔÚAgent1ÉÏ´ÎÎļþ£¬·¢ÏÖCollector1»Ö¸´ÓÅÏȼ¶±ðµÄ²É¼¯¹¤×÷¡£¾ßÌå½ØͼÈçÏÂËùʾ£º

  • Collector1ÓÅÏÈÉÏ´«

  • HDFS¼¯ÈºÖÐÉÏ´«µÄlogÄÚÈÝÔ¤ÀÀ

  • Collector1å´»ú£¬Collector2»ñÈ¡ÓÅÏÈÉÏ´«È¨ÏÞ

  • ÖØÆôCollector1·þÎñ£¬Collector1ÖØлñµÃÓÅÏÈÉÏ´«µÄȨÏÞ

6.½ØͼԤÀÀ

ÏÂÃæΪ´ó¼Ò¸½ÉÏHDFSÎļþϵͳÖеĽØͼԤÀÀ£¬ÈçÏÂͼËùʾ£º

  • HDFSÎļþϵͳÖеÄÎļþÔ¤ÀÀ

  • ÉÏ´«µÄÎļþÄÚÈÝÔ¤ÀÀ

7.×ܽá

ÔÚÅäÖø߿ÉÓõÄFlume NGʱ£¬ÐèҪעÒâһЩÊÂÏî¡£ÔÚAgentÖÐÐèÒª°ó¶¨¶ÔÓ¦µÄCollector1ºÍCollector2µÄIPºÍPort£¬ÁíÍ⣬ÔÚÅäÖÃCollector½Úµãʱ£¬ÐèÒªÐ޸ĵ±Ç°Flume½ÚµãµÄÅäÖÃÎļþ£¬BindµÄIP£¨»òHostName£©Îªµ±Ç°½ÚµãµÄIP£¨»òHostName£©£¬×îºó£¬ÔÚÆô¶¯µÄʱºò£¬Ö¸¶¨ÅäÖÃÎļþÖеÄAgentµÄNameºÍÅäÖÃÎļþµÄ·¾¶£¬·ñÔò»á³ö´í¡£

8.½áÊøÓï

Õâƪ²©¿Í¾ÍºÍ´ó¼Ò·ÖÏíµ½ÕâÀÈç¹û´ó¼ÒÔÚÑо¿Ñ§Ï°µÄ¹ý³Ìµ±ÖÐÓÐʲôÎÊÌ⣬¿ÉÒÔ¼ÓȺ½øÐÐÌÖÂÛ»ò·¢ËÍÓʼþ¸øÎÒ£¬ÎһᾡÎÒËùÄÜΪÄú½â´ð£¬Óë¾ý¹²Ã㣡

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

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

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

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