hadoop集群环境的搭建和单机版的搭建差不多,就是多了一些文件的配置操作。

一、3台主机的hostname修改和IP地址绑定

注意:下面的操作我都是使用root权限进行!

(1)3太主机的基本网络环境

CentOS6.5,32位,在虚拟机下实现。

我在虚拟机下安装了3个centos6.5系统,其IP地址和主机名分别如下:

  • 192.168.1.103  hadoop
  • 192.168.1.105  hadoop0
  • 192.168.1.106  hadoop1

​这里,hadoop是master,hadoop0和hadoop1是两个slaves。

(2)IP地址与hostname绑定

在hadoop主机下:

vi /etc/sysconfig/network

将HOSTNAME修改为hadoop,见下图:

​在hadoop0主机下操作类似,将HOSTNAME修改为hadoop0;在hadoop1主机下操作类似,将HOSTNAME修改为hadoop1。

在hadoop主机下:

输入:vi /etc/hosts,在hosts下添加如下内容:

192.168.1.103  hadoop
192.168.1.105  hadoop0
192.168.1.106  hadoop1

然后通过scp命令,将修改好的hosts复制到hadoop0和hadoop1的/etc/hosts文件夹下覆盖:

scp  /etc/hosts  root@hadoop0:/etc/hosts
scp  /etc/hosts  root@hadoop1:/etc/hosts

(3)测试3太主机之间是否能Ping通

在3台主机下分别输入:

ping hadoop
ping hadoop0
ping hadoop1

如果3太主机都能ping通,那说明前面的配置成功。

二、SSH免密码登陆

在hadoop主机下:

1.查看当前用户下(root)是否有.ssh的隐藏文件,如果没有就创建一个

mkdir .ssh

2.输入ssh-keygen -t  rsa

这个命令会在.ssh文件夹下生成id_dsa和id_ds.pub两个文件,这私钥和公钥。

3.输入

cp id_rsa.pub authorized_keys

这条命令是把公钥加到用于认证的公钥文件中

4.验证SSH是否安装成功,以及是否可以免密码登陆本机

ssh  localhost

如果显示如下,表示安装成功

​5.将authorized_keys复制到hadoop0和hadoop1下的.ssh文件,这样就可以免密码登陆hadoop0和hadoop1了。

scp authorized_keys root@hadoop0:.ssh/
scp authorized_keys root@hadoop1:.ssh/

6.测试

在hadoop主机下输入:

ssh hadoop0
ssh hadoop1

在第一次登陆是需要密码,以后则不要。到此,ssh的免密码登陆完成。

三、jdk的安装和java环境变量配置

(1)安装jdk1.6

这里,我使用的jdk安装包如下,大家可以上网自行下载,这里推荐jdk为1.6为好。

在hadoop下:

​将jdk安装包移动到/usr/local这个目录下,(local下的文件可以删除,没有用的)。

然后首先是给jdk安装包“X”的执行权限,chmod   u+x   jdk-6u24-linux-i586.bin。(如有x权限请忽略这一步)

然后就是执行安装即可,jdk-6u24-linux-i586.bin。

然后将/usr/local下jdk的文件夹从命名为jdk。然后通过scp命令将jdk文件夹复制到另外两个slaves主机。

scp -r /etc/local/jdk root@hadoop0:/etc/local
scp -r /etc/local/jdk root@hadoop1:/etc/local

(2)设置环境变量

接下来就是配置环境变量:

vi   /etc/profile

export JAVA_HOME=/usr/local/jdk
export PATH=.:$JAVA_HOME/bin:$PATH

输入 source /etc/profile使配置文件生效。

检查jdk是否安装配置成功,java -version,若显示如下,表示安装成功。

​同样,将profile复制到另外两台主机。

scp /etc/profile root@hadoop0:/etc/
scp /etc/profile root@hadoop1:/etc/

在hadoop0和hadoop1下检查是否安装jdk成功。注意请先使用source /etc/profile更新命令。

如果现实如上图,则表示3台主机的jdk安装和配置成功。

四、安装和配置hadoop

(1)解压安装hadoop1.1.2

在hadoop主机下:

下载并将hadoop-1.1.2.tar.gz解压到当前用户目录下(/usr/local)。

tar -zxvf   hadoop-1.1.2.tar.gz

然后将hadoop文件夹重命名为hadoop。

(2)配置hadoop

在hadoop主机下:

进入hadoop文件夹下的conf夹,修改配置文件。

1.指定jdk安装位置:

Hadoop-env.sh:

export  JAVA_HOME=/usr/local/jdk

2.hadoop核心配置文件,配置HDFS地址和段口号。

core-site.xml

<configuration>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://hadoop:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop/tmp</value>
    </property>
</configuration>

3.hdfs-site.xml,默认的配置方式是3,这里表示副本数是3,由于我们搭建的子节点只有2个,所以输入1或2。

hdfs-site.xml

<configuration>
    <property>
         <name>dfs.replication</name>
         <value>2</value>
     </property>
</configuration>

4.配置MapReduce文件,配置JobTracker的地址和端口

mapred-site.xml

<configuration>
<property>
<name>mapred.job.tracker</name>
<value>hadoop:9001</value>
</property>
</configuration>

5‘修改masters文件

  • hadoop

6.修改slaves文件

  • hadoop0
  • hadoop1

然后将hadoop文件夹复制到另外2台主机。

scp /uer/local/hadoop root@hadoop0:/etc/local/
scp /uer/local/hadoop root@hadoop1:/etc/local/

接下来要修改环境变量:

vi /etc/profile

export JAVA_HOME=/usr/local/jdk
export HADOOP_HOME=/usr/local/hadoop
export PATH=.:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH

同样,将profile复制到另外两台主机上,操作见三(2)。

(3)启动hadoop

在hadoop下:

输入:

hadoop namenode -format

然后通过start-all.sh启动所有进程:

start-all.sh

可以通过jps命令来查看运行的进程,如果成功运行,那么将会有5个进程运行,如下图:
在hadoop 下:

在hadoop0下:

在hadoop1下:

至此,hadoop启动成功,要想看集群状态,可以打开下面两个网址:

localhost:50030(mapreduce的web页面)

localhost:50070(HDFS的web页面)

如果想在windows下访问这两个网址,那么就需要关闭centos的防火墙,否则访问不了。(3台主机都要关闭防火墙)

命令:service iptables stop

使用:chkconfig iptables off,可以关闭防火墙的自动运行

备注:我也是刚起步学习hadoop,可能文章有一些不完整或错误的地方,还请大家多多指教,也希望能交流学习,互相促进提高。微笑

 

打赏

发表评论

电子邮件地址不会被公开。