分享

Win7下面安装hadoop2.x插件及Win7/Linux运行MapReduce程序

InSight 发表于 2015-5-4 16:52:53 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 2 30744
问题导读:

1.win7下如何安装hadoop2.x?
2.win7下如何执行MapReuce On Yarn?
3.linux下如何安装hadoop2.x?
4.linux下如何执行MapReuce On Local?
5.Uber Mode是什么?







一、win7下
(一)、安装环境及安装包
win7 32 bit
jdk7
eclipse-java-juno-SR2-win32.zip
hadoop-2.2.0.tar.gz
hadoop-eclipse-plugin-2.2.0.jar
hadoop-common-2.2.0-bin.rar

(二)、安装
默认已经安装好了jdk、eclipse以及配置好了hadoop伪分布模式

1、拷贝hadoop-eclipse-plugin-2.2.0.jar插件到Eclipse安装目录的子目录plugins下,重启Eclipse。

2、设置环境变量

1.png
2.png

3、配置eclipse中hadoop的安装目录
解压hadoop-2.2.0.tar.gz

3.png

4、解压hadoop-common-2.2.0-bin.rar
复制里面的文件到hadoop安装目录的bin文件夹下

4.png

(三)、在win7下,MapReuce On Yarn执行

新建一个工程

5.png

点击window–>show view–>Map/Reduce Locations

点击New Hadoop Location……

6.png

添加如下配置,点击完成。
7.png

自此,你就可以查看HDFS中的相关内容了。
8.png
编写mapreduce程序
9.jpg
在src目录下添加文件log4j.properties,内容如下:
  1. log4j.rootLogger=debug,appender1
  2. log4j.appender.appender1=org.apache.log4j.ConsoleAppender
  3. log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout
复制代码


运行,结果如下:
10.jpg


二、在Linux下

(一)在Linux下,MapReuce On Yarn上

运行

  1. [root@liguodong Documents]# yarn jar  test.jar hdfs://liguodong:8020/hello  hdfs://liguodong:8020/output
  2. 15/05/03 03:16:12 INFO client.RMProxy: Connecting to ResourceManager at /0.0.0.0:8032
  3. ………………
  4. 15/05/03 03:16:13 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1430648117067_0001
  5. 15/05/03 03:16:13 INFO impl.YarnClientImpl: Submitted application application_1430648117067_0001 to ResourceManager at /0.0.0.0:8032
  6. 15/05/03 03:16:13 INFO mapreduce.Job: The url to track the job: http://liguodong:8088/proxy/application_1430648117067_0001/
  7. 15/05/03 03:16:13 INFO mapreduce.Job: Running job: job_1430648117067_0001
  8. 15/05/03 03:16:21 INFO mapreduce.Job: Job job_1430648117067_0001 running in uber mode : false
  9. 15/05/03 03:16:21 INFO mapreduce.Job:  map 0% reduce 0%
  10. 15/05/03 03:16:40 INFO mapreduce.Job:  map 100% reduce 0%
  11. 15/05/03 03:16:45 INFO mapreduce.Job:  map 100% reduce 100%
  12. 15/05/03 03:16:45 INFO mapreduce.Job: Job job_1430648117067_0001 completed successfully
  13. 15/05/03 03:16:45 INFO mapreduce.Job: Counters: 43
  14.         File System Counters
  15.                 FILE: Number of bytes read=98
  16.                 FILE: Number of bytes written=157289
  17.                 FILE: Number of read operations=0
  18.                 FILE: Number of large read operations=0
  19.                 FILE: Number of write operations=0
  20.                 HDFS: Number of bytes read=124
  21.                 HDFS: Number of bytes written=28
  22.                 HDFS: Number of read operations=6
  23.                 HDFS: Number of large read operations=0
  24.                 HDFS: Number of write operations=2
  25.         Job Counters
  26.                 Launched map tasks=1
  27.                 Launched reduce tasks=1
  28.                 Data-local map tasks=1
  29.                 Total time spent by all maps in occupied slots (ms)=16924
  30.                 Total time spent by all reduces in occupied slots (ms)=3683
  31.         Map-Reduce Framework
  32.                 Map input records=3
  33.                 Map output records=6
  34.                 Map output bytes=80
  35.                 Map output materialized bytes=98
  36.                 Input split bytes=92
  37.                 Combine input records=0
  38.                 Combine output records=0
  39.                 Reduce input groups=4
  40.                 Reduce shuffle bytes=98
  41.                 Reduce input records=6
  42.                 Reduce output records=4
  43.                 Spilled Records=12
  44.                 Shuffled Maps =1
  45.                 Failed Shuffles=0
  46.                 Merged Map outputs=1
  47.                 GC time elapsed (ms)=112
  48.                 CPU time spent (ms)=12010
  49.                 Physical memory (bytes) snapshot=211070976
  50.                 Virtual memory (bytes) snapshot=777789440
  51.                 Total committed heap usage (bytes)=130879488
  52.         Shuffle Errors
  53.                 BAD_ID=0
  54.                 CONNECTION=0
  55.                 IO_ERROR=0
  56.                 WRONG_LENGTH=0
  57.                 WRONG_MAP=0
  58.                 WRONG_REDUCE=0
  59.         File Input Format Counters
  60.                 Bytes Read=32
  61.         File Output Format Counters
  62.                 Bytes Written=28
复制代码
查看结果
  1. [root@liguodong Documents]# hdfs dfs -ls  /
  2. Found 3 items
  3. -rw-r--r--   2 root supergroup         32 2015-05-03 03:15 /hello
  4. drwxr-xr-x   - root supergroup          0 2015-05-03 03:16 /output
  5. drwx------   - root supergroup          0 2015-05-03 03:16 /tmp
  6. [root@liguodong Documents]# hdfs dfs -ls  /output
  7. Found 2 items
  8. -rw-r--r--   2 root supergroup          0 2015-05-03 03:16 /output/_SUCCESS
  9. -rw-r--r--   2 root supergroup         28 2015-05-03 03:16 /output/part-r-00000
  10. [root@liguodong Documents]# hdfs dfs -text  /output/pa*
  11. hadoop  1
  12. hello   3
  13. me      1
  14. you     1
复制代码
遇到的问题
  1. File /output/………  could only be replicated to 0 nodes instead of minReplication (=1).  
  2. There are 1 datanode(s) running and no node(s) are excluded in this operation.
复制代码
在网上找了很多方法是试了没有解决,然后自己根据这句话的中文意思是只有被复制到0个副本,而不是最少的一个副本。

我将最先dfs.replication.min设置为0,但是很遗憾,后面运行之后发现必须大于0,我又改为了1。
然后再dfs.datanode.data.dir多设置了几个路径,就当是在一个系统中多次备份吧,后面发现成功了。

设置如下,在hdfs-site.xml中添加如下配置。

  1. <property>
  2.         <name>dfs.datanode.data.dir</name>  
  3.         <value>     file://${hadoop.tmp.dir}/dfs/dn,file://${hadoop.tmp.dir}/dfs/dn1,file://${hadoop.tmp.dir}/dfs/dn2         
  4.         </value>
  5.     </property>
复制代码

(二)在Linux下,MapReuce On Local上
在mapred-site.xml中,添加如下配置文件。

  1. <configuration>
  2.     <property>
  3.         <name>mapreduce.framework.name</name>
  4.         <value>local</value>
  5.     </property>
  6. </configuration>
复制代码
可以不用启动ResourceManager和NodeManager。

运行

  1. [root@liguodong Documents]# hadoop jar  test.jar hdfs://liguodong:8020/hello  hdfs://liguodong:8020/output
复制代码

三、MapReduce运行模式有多种
mapred-site.xml中
1)本地运行模式(默认)

  1. <configuration>
  2.     <property>
  3.         <name>mapreduce.framework.name</name>
  4.         <value>local</value>
  5.     </property>
  6. </configuration>
复制代码
2)运行在YARN上
  1. <configuration>
  2.     <property>
  3.         <name>mapreduce.framework.name</name>
  4.         <value>yarn</value>
  5.     </property>
  6. </configuration>
复制代码

四、Uber Mode
Uber Mode是针对于在Hadoop2.x中,对于MapReuduce Job小作业来说的一种优化方式(重用JVM的方式)。
小作业指的是MapReduce Job 运行处理的数据量,当数据量(大小)小于 HDFS 存储数据时block的大小(128M)。
默认是没有启动的。
mapred-site.xml中

  1. <name>mapreduce.job.ubertask.enable</name>
  2. <value>true</value>
复制代码

转。



已有(3)人评论

跳转到指定楼层
zhangzh 发表于 2015-5-4 17:26:48
回复

使用道具 举报

shuijun1106 发表于 2016-4-7 10:35:29
这个问题看了很多方法,都解决不了,运行程序一直停在
log4j:WARN No appenders could be found for logger (org.apache.hadoop.util.Shell).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
上面,查看mapreduce未运行。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条