您的位置:首页 > 运维架构

分享:Hadoop1.X 集群搭建实践(图文并茂超详细)

2014-01-04 12:04 531 查看
Hadoop 集群安装实践目录
Hadoop 集群安装实践... 1
Hadoop集群规划... 1
安装准备... 4
Hadoop 集群安装... 8
启动Hadoop 集群并测试... 13

Hadoop集群规划

利用自家的无线路由器及MacBook Pro 本本进行搭建。集群环境: VMwareWorkstation 建立6台虚拟机(采用Clone 方式迅速建立)。OS采用CentOS-6.4-x86_64服务器基本版本。如图:

规划说明:
虚拟机名OS内存硬盘IP主机名用途
hadoop-namenodeCentOS1GB10GB192.168.0.120namenodeNamenNode、JobTracker
hadoop-secondarynamenodeCentOS1GB10GB192.168.0.121secondarynamenodeSecondaryNameNode
hadoop-datanode01CentOS1GB20GB192.168.0.122datanode01DataNode
hadoop-datanode02CentOS1GB20GB192.168.0.123datanode02DataNode
hadoop-datanode03CentOS1GB20GB192.168.0.124datanode03DataNode
hadoop-datanode04CentOS1GB20GB192.168.0.125datanode04备用,用于实验添加节点
与虚拟机的交互工具:终端工具:SecureCRTPortable如图:


FTP工具:SecureFXPortable


安装准备

1)、ip 和主机名根据集群规划设置各个虚拟机的IP 和 HostName。设置静态IP:
$ vi /etc/sysconfig/network-scripts/ifcfg-eth0
设置如下:
DEVICE=eth0HWADDR=00:0C:29:7C:60:F6TYPE=EthernetUUID=770bae04-34dd-4930-8b24-0439d7778261ONBOOT=yesNM_CONTROLLED=yesBOOTPROTO=staticIPADDR=192.168.0.120NETMASK=255.255.255.0GATEWAY=192.168.0.1
配置hostname:
$ vi network
设置如下:
NETWORKING=yes#HOSTNAME=localhost.localdomainHOSTNAME=namenode
配置域名解析:
192.168.0.120 namenode192.168.0.121 secondarynamenode192.168.0.122 datanode01192.168.0.123 datanode02192.168.0.124 datanode03192.168.0.125 datanode04
最后重启虚拟机:
reboot
分别按以上步骤根据集群规划配置余下虚拟机的ip 和 主机名。 2)、关闭防火墙关闭所有虚拟机OS的防火墙。
[root@namenode ~]# service iptables stop[root@namenode ~]# chkconfig iptables off


3)、安装JDK下载:jdk-6u45-linux-x64.bin分别上传到6台虚拟机中的/usr/local/java 目录下。解压安装如下:
[root@namenode ~]# cd /usr/local/java/[root@namenode java]# chmod 700 jdk-6u45-linux-x64.bin [root@namenode java]# ./jdk-6u45-linux-x64.bin


环境变量配置:编辑 /etc/profile 加入:JAVA_HOME、CLASSPATH等。
[root@namenode java]# vi + /etc/profile
如:
#jdk settingJAVA_HOME=/usr/local/java/jdk1.6.0_45CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarPATH=$PATH:$JAVA_HOME/bin
export JAVA_HOMEexport CLASSPATHexport PATH
编辑后生效:
[root@namenode java]# source /etc/profile
验证安装:
[root@namenode java]# java -version
如图:

注:如果操作系统预装JRE 可以修改软连接或使用alternatives 命令进行替换。使用如上操作分别在余下虚拟机中安装JDK。 4)、添加hadoop组和用户
[root@namenode ~]# groupadd hadoop[root@namenode ~]# useradd hadoop -g hadoop
如图:

修改密码:

5)、设置ssh无密码登陆在namenode主机上设置:
[hadoop@namenode ~]$ ssh-keygen -t rsa -P ''[hadoop@namenode ~]$ cp .ssh/id_rsa.pub .ssh/authorized_keys[hadoop@namenode ~]$ chmod 700 .ssh[hadoop@namenode ~]$ chmod -R 600 .ssh/*
如图:

本机测试:

设置namenode 无密码登陆其他主机。如下说明设置namenode 无密码登陆 secondarynamenode 主机。其他主机按此操作步骤设置。 a)、拷贝namenode上 .ssh/authorized_keys 拷贝到 secondarynamenode主机上对应目录。

b)、在 secondarynamenode 上设置.ssh 目录及子文件权限

c)、测试连接

Hadoop集群安装

本次安装采用Hadoop 的 1.0.2 版本。 1)、到Apache Hadoop 官网上下载:hadoop-1.0.2.tar.gz 2)、将 hadoop-1.0.2.tar.gz上传到namenode 上。并解压安装到/usr/local 目录下。

修改hadoop 安装主目录拥有者及权限:

3)、配置Hadoop 环境变量在hadoop用户主目录下/home/hadoop/.bash_profile 配置$HADOOP_HOME,并将$HADOOP_HOME/bin 加入到$PATH变量中。
[hadoop@namenode ~]$ vi .bash_profile
编辑如下:
# User specific environment and startup programs
PATH=$PATH:$HOME/binHADOOP_HOME=/usr/local/hadoop-1.0.2PATH=$PATH:$HADOOP_HOME/binexport PATH
测试:

4)、配置$HADOOP_HOME/conf/hadoop-env.sh
[hadoop@namenode ~]$ vi /usr/local/hadoop-1.0.2/conf/hadoop-env.sh
设置JAVA_HOME 环境变量:

5)、设置Hadoop 守护进程的相关环境参数 a)、$HADOOP_HOME/conf/core-site.xml
[hadoop@namenode ~]$ vi /usr/local/hadoop-1.0.2/conf/core-site.xml
编辑如下:
<configuration><property><name>fs.default.name</name><value>hdfs://namenode:8020</value></property>
<property><name>hadoop.tmp.dir</name><value>/home/hadoop/hadoop/tmp</value></property></configuration>


设置:fs.default.name 和hadoop.tmp.dir b)、$HADOOP_HOME/conf/hdfs-site.xml
[hadoop@namenode ~]$ vi /usr/local/hadoop-1.0.2/conf/hdfs-site.xml
编辑如下:
<configuration> <property> <name>dfs.name.dir</name> <value>/home/hadoop/hadoop/dfs/name,/home/hadoop/hadoop/dfs/name-backup</value> </property> <property> <name>dfs.data.dir</name> <value>/home/hadoop/hadoop/dfs/data</value> </property> <property> <name>dfs.replication</name> <value>3</value> </property></configuration>



c)、$HADOOP_HOME/conf/mapred-site.xml
<configuration> <property> <name>mapred.job.tracker</name> <value>namenode:8021</value> </property> <property> <name>mapred.local.dir</name> <value>/home/hadoop/hadoop/mapred/local</value> </property></configuration>


6)、配置masters 和 slaves a)、$HADOOP_HOME/conf/masters配置secondarynamenode节点
[hadoop@namenode ~]$ vi /usr/local/hadoop-1.0.2/conf/masters


b)、$HADOOP_HOME/conf/slaves配置datanode节点
[hadoop@namenode ~]$ vi /usr/local/hadoop-1.0.2/conf/slaves



7)、使用hadoop用户将namenode 上的/usr/local/hadoop 目录拷贝到其他节点相应目录下。
[hadoop@namenode local]$ scp -r /usr/local/hadoop-1.0.2/ root@secondarynamenode:/usr/local/[hadoop@namenode local]$ scp -r /usr/local/hadoop-1.0.2/ root@datanode01:/usr/local/[hadoop@namenode local]$ scp -r /usr/local/hadoop-1.0.2/ root@datanode02 :/usr/local/ [hadoop@namenode local]$ scp -r /usr/local/hadoop-1.0.2/ root@datanode03 :/usr/local/ [hadoop@namenode local]$ scp -r /usr/local/hadoop-1.0.2/ root@datanode04 :/usr/local/
修改其他节点/usr/local/hadoop-1.0.2 目录的拥有者及文件权限:
[root@secondarynamenode ~]# cd /usr/local[root@secondarynamenode local]# chown -R hadoop:hadoop hadoop-1.0.2/[root@secondarynamenode local]# chmod -R 770 hadoop-1.0.2
[root@datanode01 ~]# cd /usr/local[root@datanode01 local]# chown -R hadoop:hadoop hadoop-1.0.2/[root@datanode01 local]# chmod -R 770 hadoop-1.0.2
[root@datanode02 ~]# cd /usr/local[root@datanode02 local]# chown -R hadoop:hadoop hadoop-1.0.2/[root@datanode02 local]# chmod -R 770 hadoop-1.0.2
root@datanode03 ~]# cd /usr/local[root@datanode03 local]# chown -R hadoop:hadoop hadoop-1.0.2/[root@datanode03 local]# chmod -R 770 hadoop-1.0.2
[root@datanode04 ~]# cd /usr/local[root@datanode04 local]# chown -R hadoop:hadoop hadoop-1.0.2/[root@datanode04 local]# chmod -R 770 hadoop-1.0.2

启动Hadoop集群并测试

1)、在namenode 上格式化namenode
[hadoop@namenode ~]$ hadoop namenode -format



2)、在namenode 上启动Hadoop 集群
[hadoop@namenode jdk1.6.0_45]$ start-all.sh


3)、验证安装在namenode和 secondarynamenode 及数据节点上查看守护进程:





使用hadoop dfsadmin 进行验证:


web 端查看 DFS 和 JobTraker 详情







4、Hadoop 集群安装问题总结 1)、配置好/etc/hosts及 主机名 2)、关闭防火墙 3)、在$HADOOP_HOME/conf/hadoop-env.sh必须配置JAVA_HOME 4)、在配置sshRSA 无密码登陆时注意文件权限问题 5)、在安装时遇到了:
2013-12-14 15:51:17,573 ERROR org.apache.hadoop.hdfs.DFSClient: Exception closing file /home/hadoop/hadoop/tmp/mapred/system/jobtracker.info : org.apache.hadoop.ipc.RemoteException: java.io.IOException: File /home/hadoop/hadoop/tmp/mapred/system/jobtracker.info could only be replicated to 0 nodes, instead of 1


问题。网上搜索是因为多次格式化导致的版本不一致的问题。我将各个节点的Hadoop工作目录(即:/home/hadoop/hadoop)全部删除,重新namenode 格式化。重新启动即可。

附件:http://down.51cto.com/data/2363946
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息