Hadoop2.2.0版本多节点集群及eclipse开发环境搭建
鉴于部分网友在搭建hadoop2.2.0过程中遇到各种各样的问题,特记录本人搭建集群环境,以作参考。
环境:
1、虚拟机:VMware® Workstation,版本:10.0.0
2、操作系统:ubuntu-13.10
3、hadoop版本:hadoop-2.2.0下载地址
4、jdk1.6.0_45
5、本文所用两台机器分工如下:
hostname | user | ip | functions |
master | hadoop | 192.168.234.128 | NameNode/SecondaryNameNode/ResouceManager |
slave1 | hadoop | 192.168.234.129 | DataNode/NodeManager |
6、登陆工具:SecureCRT Version 6.2.0
7、开发工具:eclipse-kepler
在此,虚拟机中ubuntu操作系统的安装以及设置不再赘述。
集群环境配置步骤:
1、安装jdk,并配置环境变量:
vi /etc/profile
加入下列几行(本文java安装路径为:/usr/local/java/):
- export JAVA_HOME=/usr/local/java/jdk1.6.0_45
- export CLASSPATH=.:$JAVA_HOME/lib.tools.jar:$JAVA_HOME/lib/dt.jar
- export PATH=$JAVA_HOME/bin:$PATH
保存后输入:source /etc/profile 以使其生效。
验证:输入:java -version
2、安装ssh
sudo apt-get install ssh
设置local无密码登陆
安装完成后会在当前用户主目录,即这里的/home/hadoop下产生一个隐藏文件夹.ssh(ll 或者ls -a 命令可以查看隐藏文件)。如果没有这个文件,自己新建即可,命令为:mkdir .ssh。
具体步骤如下:
2.1、 进入.ssh文件夹
2.2、 ssh-keygen -t rsa 之后一路回 车(产生秘钥)
2.3、 把id_rsa.pub 追加到授权的 key 里面去(cat id_rsa.pub >> authorized_keys)
2.4、 重启 SSH 服 务命令使其生效 :service ssh restart
此时已经可以进行ssh localhost的无密码登陆
现在可以用SecureCRT登录了,SecureCRT的会话设置如下图:
3、修改主机名(hostname)、hosts
3.1、vi /etc/hostname
改为:master
3.2、vi /etc/hosts
如下图所示:
4、关闭防火墙:
ufw disable
5、安装hadoop2.2.0
本文将下载的hadoop-2.2.tar.gz解压到了/home/hadoop路径下
5.1在master本地文件系统创建以下文件夹:
~/dfs/name
~/dfs/data
~/temp
5.2修改hadoop配置文件
1)hadoop-env.sh
修改JAVA_HOME值:
- export JAVA_HOME=/usr/local/java/jdk1.6.0_45
2)、yarn-env.sh
修改JAVA_HOME值:
- export JAVA_HOME=/usr/local/java/jdk1.6.0_45
3)、slaves
加入:slave1
4)、core-site.xml
- <configuration>
- <property>
- <name>fs.defaultFS</name>
- <value>hdfs://master:9000</value>
- </property>
- <property>
- <name>io.file.buffer.size</name>
- <value>131072</value>
- </property>
- <property>
- <name>hadoop.tmp.dir</name>
- <value>file:/home/hadoop/temp</value>
- <description>Abase for other temporary directories.</description>
- </property>
- <property>
- <name>hadoop.proxyuser.hadoop.hosts</name>
- <value>*</value>
- </property>
- <property>
- <name>hadoop.proxyuser.hadoop.groups</name>
- <value>*</value>
- </property>
- </configuration>
5)、hdfs-site.xml
- <configuration>
- <property>
- <name>dfs.namenode.secondary.http-address</name>
- <value>master:9001</value>
- </property>
- <property>
- <name>dfs.namenode.name.dir</name>
- <value>file:/home/hadoop/dfs/name</value>
- </property>
- <property>
- <name>dfs.datanode.data.dir</name>
- <value>file:/home/hadoop/dfs/data</value>
- </property>
- <property>
- <name>dfs.replication</name>
- <value>3</value>
- </property>
- <property>
- <name>dfs.webhdfs.enabled</name>
- <value>true</value>
- </property>
- </configuration>
6)、mapred-site.xml
- <configuration>
- <property>
- <name>mapreduce.framework.name</name>
- <value>yarn</value>
- </property>
- <property>
- <name>mapreduce.jobhistory.address</name>
- <value>master:10020</value>
- </property>
- <property>
- <name>mapreduce.jobhistory.webapp.address</name>
- <value>master:19888</value>
- </property>
- </configuration>
7)、yarn-site.xml
- <configuration>
- <!-- Site specific YARN configuration properties -->
- <property>
- <name>yarn.nodemanager.aux-services</name>
- <value>mapreduce_shuffle</value>
- </property>
- <property>
- <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
- <value>org.apache.hadoop.mapred.ShuffleHandler</value>
- </property>
- <property>
- <name>yarn.resourcemanager.address</name>
- <value>master:8032</value>
- </property>
- <property>
- <name>yarn.resourcemanager.scheduler.address</name>
- <value>master:8030</value>
- </property>
- <property>
- <name>yarn.resourcemanager.resource-tracker.address</name>
- <value>master:8031</value>
- </property>
- <property>
- <name>yarn.resourcemanager.admin.address</name>
- <value>master:8033</value>
- </property>
- <property>
- <name>yarn.resourcemanager.webapp.address</name>
- <value>master:8088</value>
- </property>
- </configuration>
6、克隆
hadoop集群中每个机器上面的配置基本相同,所以我们先在namenode上面进行配置部署,然后再复制到其他机器,然后稍作修改即可。
修改slave1的hostname:slave1
7、启动验证
7.1 启动hadoop
进入安装目录: cd ~/hadoop-2.2.0/
格式化namenode:./bin/hdfs namenode –format
启动hdfs: ./sbin/start-dfs.sh
查看java进程命令:jps
此时在master上面运行的进程有:
namenode
secondarynamenode
slave1上面运行的进程有:datanode
启动yarn: ./sbin/start-yarn.sh
此时在master上面运行的进程有:
namenode
secondarynamenode
resourcemanager
slave1上面运行的进程有:
datanode
nodemanager
或者使用命令./sbin/start-all.sh
查看集群状态:./bin/hdfs dfsadmin –report
查看文件块组成: ./bin/hdfs fsck / -files -blocks
查看HDFS: http://master:50070
开发环境配置:
本文是在windows环境下安装eclipse,然后连接hadoop
1、将编译好的hadoop-eclipse-plugin-2.2.0.jar插件拷贝到~\eclipse\plugins下
2、按照下图所示配置eclipse:
配置hadoop路径
打开Map/Reduce视图:
新建并编辑hadoop参数:
3、配置完之后的eclipse: