Changes between Version 1 and Version 2 of rapid_develop


Ignore:
Timestamp:
09/18/2012 12:06:45 PM (14 years ago)
Author:
liaojiaohe
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • rapid_develop

    v1 v2  
    22除此以为简单的数据查询可以利用hive建EXTERNAL TABLE进行查询[[BR]] 
    33 
     4其中最为方便的是使用python或者ruby等脚本语言编写mapper和reducer的文件 
     5 
     6== Hadoop Streaming原理 == 
     7 
     8   在上面的例子里,mapper和reducer都是可执行文件,它们从标准输入读入数据(一行一行读),并把计算结果发给标准输出。Streaming工具会创建一个Map/Reduce作业,并把它发送给合适的集群,同时监视这个作业的整个执行过程。[[BR]] 
     9 
     10    如果一个可执行文件被用于mapper,则在mapper初始化时,每一个mapper任务会把这个可执行文件作为一个单独的进程启动。 mapper任务运行时,它把输入切分成行并把每一行提供给可执行文件进程的标准输入。同时,mapper收集可执行文件进程标准输出的内容,并把收到的每一行内容转化成key/value对,作为mapper的输出。默认情况下,一行中第一个tab之前的部分作为key,之后的(不包括tab)作为value。如果没有tab,整行作为key值,value值为null。不过,这可以定制,在下文中将会讨论如何自定义key和value的切分方式。[[BR]] 
     11 
     12    如果一个可执行文件被用于reducer,每个reducer任务会把这个可执行文件作为一个单独的进程启动。 Reducer任务运行时,它把输入切分成行并把每一行提供给可执行文件进程的标准输入。同时,reducer收集可执行文件进程标准输出的内容,并把每一行内容转化成key/value对,作为reducer的输出。默认情况下,一行中第一个tab之前的部分作为key,之后的(不包括tab)作为value。在下文中将会讨论如何自定义key和value的切分方式。 
     13 
     14 
     15== 命令形式与参数 == 
     16 
     17{{{ 
     18$HADOOP_HOME/bin/hadoop jar $HADOOP_HOME/contrib/streaming/hadoop-streaming-1.0.3.jar 
     19   
     20-input myInputDirs 【hdfs系统中输入文件/夹位置】   
     21 
     22-output myOutputDir  【这个目录需要不存在】   
     23 
     24-mapper mapper.rb 【可执行的文件或者命令】 
     25 
     26-reducer reducer.rb   【可执行的文件或者命令】 
     27 
     28-file 【需要分发的文件】 
     29}}} 
     30 
     31其他的参数 
     32 
     33{{{ 
     34      -inputformat JavaClassName 
     35      -outputformat JavaClassName 
     36      -partitioner JavaClassName   【用户自定义的partitioner程序】 
     37      -combiner JavaClassName      【用户自定义的combiner程序(必须用java实现)】 
     38}}} 
     39 
     40配置 
     41 
     42 
     43{{{ 
     44-conf <configuration file>     specify an application configuration file 
     45-D <property=value>            use value for given property 
     46}}} 
     47 
     48 
     49== 例子 == 
    450 
    551