Hadoop现在已经广泛应用于包 括 FaceBook,Twitter, Yahoo! 等公司,通常情况下这些机群包括数以千计的服务器和数以万计的CPU。 Hadoop 作为基础云计算平台 ,包括了超过 100 个的用户可配置参数 ( 版本 0.19.2) ,
一、实战环境
系统版本:centos 5.8x86_64
java版本:jdk-1.7.0_25
hadoop版本:hadoop-2.2.0
192.168.149.128namenode (充当namenode、secondary namenode和resourcemanager角色)
192.168.149.129datanode1 (充当datanode、nodemanager角色)
192.168.149.130datanode2 (充当datanode、nodemanager角色)
二、系统准备
1、hadoop可以从apache官方网站直接下载最新版本hadoop2.2。官方目前是提供了linux32位系统可执行文件,所以如果需要在64位系统上部署则需要单独下载src 源码自行编译。(如果是真实线上环境,请下载64位hadoop版本,这样可以避免很多问题,这里我实验采用的是32位版本)
1234 hadoop
java
2、我们这里采用三台cnetos服务器来搭建hadoop集群,分别的角色如上已经注明。
第一步:我们需要在三台服务器的/etc/hosts里面设置对应的主机名如下(真实环境可以使用内网dns解析)
[root@node1 hadoop]# cat /etc/hosts
# do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1localhost.localdomain localhost
192.168.149.128node1
192.168.149.129node2
192.168.149.130node3
(注* 我们需要在namenode、datanode三台服务器上都配置hosts解析)
第二步:从namenode上无密码登陆各台datanode服务器,需要做如下配置:
在namenode 128上执行ssh-keygen,一路enter回车即可。
然后把公钥/root/.ssh/id_rsa.pub拷贝到datanode服务器即可,拷贝方法如下:
ssh-copy-id -i .ssh/id_rsa.pub root@192.168.149.129
ssh-copy-id -i .ssh/id_rsa.pub root@192.168.149.130
三、java安装配置
tar -xvzf jdk-7u25-linux-x64.tar.gz &&mkdir -p /usr/java/ ; mv /jdk1.7.0_25 /usr/java/ 即可。
安装完毕并配置java环境变量,在/etc/profile末尾添加如下代码:
export java_home=/usr/java/jdk1.7.0_25/
export path=$java_home/bin:$path
export classpath=$jave_home/lib/dt.jar:$jave_home/lib/tools.jar:./
保存退出即可,然后执行source /etc/profile 生效。在命令行执行java -version 如下代表java安装成功。
[root@node1 ~]# java -version
java version "1.7.0_25"
java(tm) se runtime environment (build 1.7.0_25-b15)
java hotspot(tm) 64-bit server vm (build 23.25-b01, mixed mode)
(注* 我们需要在namenode、datanode三台服务器上都安装java jdk版本)
四、hadoop版本安装
官方下载的hadoop2.2.0版本,不用编译直接解压安装就可以使用了,如下:
第一步解压:
tar -xzvf hadoop-2.2.0.tar.gz &&mv hadoop-2.2.0/data/hadoop/
(注* 先在namenode服务器上都安装hadoop版本即可,datanode先不用安装,待会修改完配置后统一安装datanode)
第二步配置变量:
在/etc/profile末尾继续添加如下代码,并执行source /etc/profile生效。
export hadoop_home=/data/hadoop/
export path=$path:$hadoop_home/bin/
export java_library_path=/data/hadoop/lib/native/
(注* 我们需要在namenode、datanode三台服务器上都配置hadoop相关变量)
五、配置hadoop
在namenode上配置,我们需要修改如下几个地方:
1、修改vi /data/hadoop/etc/hadoop/core-site.xml 内容为如下:
2、修改vi /data/hadoop/etc/hadoop/mapred-site.xml内容为如下:
3、修改vi /data/hadoop/etc/hadoop/hdfs-site.xml内容为如下:
4、在/data/hadoop/etc/hadoop/hadoop-env.sh文件末尾追加jav_home变量:
echo "export java_home=/usr/java/jdk1.7.0_25/">> /data/hadoop/etc/hadoop/hadoop-env.sh
5、修改 vi /data/hadoop/etc/hadoop/masters文件内容为如下:
192.168.149.128
6、修改vi /data/hadoop/etc/hadoop/slaves文件内容为如下:
192.168.149.129
192.168.149.130
如上配置完毕,以上的配置具体含义在这里就不做过多的解释了,搭建的时候不明白,可以查看一下相关的官方文档。
如上namenode就基本搭建完毕,接下来我们需要部署datanode,部署datanode相对简单,执行如下操作即可。
1 fori in`seq 129130` ; doscp -r /data/hadoop/ root@192.168.149.$i:/data/ ; done
自此整个集群基本搭建完毕,接下来就是启动hadoop集群了。