hadoop 2.5.1单机安装部署伪集群
环境:ubuntu 14.04 server 64版本
hadoop 2.5.1
jdk 1.6
部署的步骤主要参考了http://blog.csdn.net/greensurfer/article/details/39450369这篇文章。
1 安装java,配置好环境变量 JAVA_HOME CLASSPATH
具体步骤参考网上linux安装jdk
2 配置信任关系
ssh-keygen
一直回车就好了
然后将~/.ssh/id_rsa.pub文件拷贝到需要无密码登录的机器用户下
是在不会,再网上找吧
3 解压了下载的hadoop包后,修改里面的配置文件
tar -zxvf hadoop-2.5.1.tar.gz cd hadoop-2.5.1
修改${HADOOP_HOME}/etc/hadoop/core-site.xml
在<configuration></configuration>之间填写配置
<configuration> <property> <name>hadoop.tmp.dir</name> <value>/opt/files/hadoop/temp</value> </property> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop:9000</value> </property> <property> <name>io.file.buffer.size</name> <value>4096</value> </property> </configuration>
hadoop.tmp.dir这个是一个hadoop运行时的临时文件的目录,上面写的/opt/files/hadoop/temp这个目录需要用户自己先创建
同样,修改hdfs-site.xml配置文件
<configuration> <property> <name>dfs.nameservices</name> <value>hadoop</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>hadoop:50090</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:///opt/files/hadoop/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:///opt/files/hadoop/data</value> </property> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.webhdfs.enabled</name> <value>true</value> </property> <property> <name>dfs.permissions.enabled</name> <value>false</value> </property> </configuration>
dfs.namenode.name.dir 和 dfs.datanode.data.dir两个的目录,都需要用户自己首先创建好
注意,这里 dfs.replication 为1 ,数据备份数为1 ,这是由于我是只有单台机器来部署伪集群,但是一般的集群环境,都是建议用户配置为3,让数据有3副本
同样的,secondnamenode也是和namenode部署时同一台机器,这个都是在实际的部署上不可取的,希望读者了解这个。
dfs.permissions.enabled设置为false,代表关闭HDFS的权限校验,允许任何人对HDFS上的文件进行增山查改。
配置yarn-site.xml
<configuration> <!-- Site specific YARN configuration properties --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.resourcemanager.address</name> <value>hadoop:8032</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>hadoop:8030</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>hadoop:8031</value> </property> <property> <name>yarn.resourcemanager.admin.address</name> <value>hadoop:8033</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>hadoop:8088</value> </property> </configuration>
这里的配置,完全是参考其他博主的
配置mapred-site.xml
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobtracker.http.address</name> <value>hadoop:50030</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>hadoop:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>hadoop:19888</value> </property> </configuration>
修改hadoop-env.sh 和 yarn-env.sh 文件,找到JAVA_HOME字段,修改为用户自己的路径
hadoop-env.sh
export JAVA_HOME=/opt/jdk1.6.0_45
yarn-env.sh
export JAVA_HOME=/opt/jdk1.6.0_45
配置slaves节点,这里只写本机的hostname
hadoop
4 格式化namenode
bin/hdfs namenode -format
输出:
/************************************************************ SHUTDOWN_MSG: Shutting down NameNode at nameNode/127.0.0.1 ************************************************************/
这个就是成功了
5 启动节点
sbin/start-all.sh
起来之后,jps一下,看看是否都起来了,正常的节点
15569 DataNode 15800 ResourceManager 15927 NodeManager 15440 NameNode 15957 Jps
6 跑一下wordcount程序
简单的写个临时文件,上存到hdfs上,临时文件test.txt
chen fool
chen good
在hdfs上新建一个目录
bin/hadoop fs -mkdir -p /test/in
上存文件
bin/hadoop fs -put test.txt /test/in/
执行测试程序
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.1.jar wordcount /test/in /test/out
检查运行结果
bin/hadoop fs -ls /test/out bin/hadoop fs -cat /test/out/part-r-00000
chen 2
fool 1
good 1
结果正确,证明部署成功了
7 web查看运行状况
浏览器访问:http://hadoop:50070 查看各个节点的运行状态
浏览器访问:http://hadoop:8088/ 查看各个job的运行情况,并且可以查看job的输出与错误信息
注:
hadoop 都是指 hostname 的意思,请大家根据自己的真实情况进行修改
参考博客:http://blog.csdn.net/greensurfer/article/details/39450369
http://blog.csdn.net/licongcong_0224/article/details/12972889
hadoop 2.4 介绍博客:http://blog.csdn.net/skywalker_only/article/details/38849989