安装服务
单机版mr1:jobtracker、tasktracker
环境准备:
节点:10.1.253.178(hostname:cdh1)
节点已经安装完成HDFS服务,参见:
hadoop单机部署伪分布式系列1:HDFS
安装包:
mr1-2.0.0-mr1-cdh4.2.1.tar.gz
部署步骤:
1. 上传安装包并解压
/home/liulu/app/hadoop-2.0.0-mr1-cdh4.2.1
2. 修改以下文件
mr1文件1:
cp ~/app/hadoop-2.0.0-cdh4.2.1/etc/hadoop/core-site.xml ~/app/hadoop-2.0.0-mr1-cdh4.2.1/conf/
mr1文件2:/home/liulu/app/hadoop-2.0.0-mr1-cdh4.2.1/conf/mapred-site.xml:
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
mr1文件2:/home/liulu/app/hadoop-2.0.0-mr1-cdh4.2.1/conf/mapred-site.xml:
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
<property>
<name>mapred.temp.dir</name>
<value>${hadoop.tmp.dir}/mapred/temp</value>
<description>A shared directory for temporary</description>
</property>
mr1文件3:/home/liulu/app/hadoop-2.0.0-mr1-cdh4.2.1/conf/slaves:
localhost
mr1文件4:/home/liulu/app/hadoop-2.0.0-mr1-cdh4.2.1/conf/hadoop-env.sh:
export JAVA_HOME=/home/liulu/app/jdk1.6.0_31
3. 启动mr1集群
cd /home/liulu/app/hadoop-2.0.0-mr1-cdh4.2.1/bin
./start-mapred.sh
4. 检查mr1集群
看进程(JobTracker、TaskTracker):
liulu@cdh1 bin]$ jps -m
25751 DataNode
25610 NameNode
27592 TaskTracker
25936 SecondaryNameNode
27685 Jps -m
27466 JobTracker
看JobTracker监控页面:
http://10.1.253.178:50030/jobtracker.jsp
5. mr1操作
执行wordcount例子
cd /home/liulu/app/hadoop-2.0.0-cdh4.2.1/bin
./hdfs dfs -mkdir /in
./hdfs dfs -put ~/testfile /in/(准备源数据)
cd /home/liulu/app/hadoop-2.0.0-mr1-cdh4.2.1/bin
./hadoop jar ../hadoop-examples-2.0.0-mr1-cdh4.2.1.jar wordcount /in /out(执行wordcount)
./hadoop fs -ls /out(查看输出结果)
6. 关闭mr1
cd /home/liulu/app/hadoop-2.0.0-mr1-cdh4.2.1/bin
./stop-mapred.sh
问题解决:执行wordcount,出现下面的错误:
14/06/13 17:07:10 INFO mapred.JobClient: Task Id : attempt_201406131647_0004_m_000001_1, Status : FAILED
Error initializing attempt_201406131647_0004_m_000001_1:
java.io.FileNotFoundException: File does not exist: /tmp/hadoop-liulu/mapred/staging/liulu/.staging/job_201406131647_0004/job.jar
at org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:809)
at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:231)
解决方法:在mapred-site.xml中增加配置:
<property>
<name>mapred.temp.dir</name>
<value>${hadoop.tmp.dir}/mapred/temp</value>
<description>A shared directory for temporary files.
</description>
</property>