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 /teset/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

原文地址:https://www.cnblogs.com/chenfool/p/4083400.html