hadoop1.1.2安装过程

实验环境:VMware 10.0.1+CentOS-6.6-i386 +jdk-6u24-linux-i586+hadoop-1.1.2.tar.gz

普通用户:michael

集群规划:1台master+3台slave

主机名      IP地址       

master01          192.168.31.11

slave01              192.168.31.21

slave02              192.168.31.22

slave03              192.168.31.23

 

0.准备工作:使用桥接方式,复制软件到虚拟机中【michael@mster01】

<1>先在VMWare(本文后面附有下载地址)中新建一个安装CentOS-6.6 32bit系统的虚拟机,命名为master01。

<2>创建完毕后先将master01的网络连接方式设置为桥接模式,以便从宿主机(windows)获取jdk,hadoop等软件。

<3>查看宿主机(windows)的IP,如图1(安装的时候本机只连接了无线网络,所以只有无线网卡有ip),宿主机的ip为169.254.225.139

<4>设置master01的静态ip地址为169.254.225.138(这是随便设置的,只要和宿主机可以ping通、在同一个网段中且不冲突即可)。

<5>然后在windows上运行WinSCP软件,输入master01的IP地址(169.254.225.138)、登陆名等信息,即可将windows中已经下载好的Hadoop安装包,jdk安装包等软件复制到master01中。(本机是复制到/home/michael/hadoop_software目录下)

图1

1.设置master01的静态IP和子网掩码等信息【root@mster01】

由图1可知VMnet1的ipv4地址为192.168.31.1。集群中的各主机只要和VMnet1的IP在同一网段中即可。据此,集群中各主机的IP规划如下:

主机名      IP地址        子网掩码    默认网关

master01          192.168.31.11  255.255.255.0  192.168.31.1

slave01              192.168.31.21  255.255.255.0  192.168.31.1

slave02              192.168.31.22  255.255.255.0  192.168.31.1

slave03              192.168.31.23  255.255.255.0  192.168.31.1

修改master01的IP、子网掩码等信息。具体步骤为:

  • <1>在centos桌面右上角的图标上,右键修改。
  • <2>重启网卡,执行如下命令 service network restart
  • <3>验证:执行命令ifconfig(没效果的话就断开网络连接后再重新连接,然后再ifconfig

 

2. 修改主机名、配置hosts文件【root@mster01】

  • <1>修改配置文件中的主机名,执行命令vi etc/sysconfig/network
  • <2>执行命令vi etc/hosts,增加如下内容:
192.168.31.11    master01
192.168.31.21    slave01
192.168.31.22    slave02
192.168.31.23    slave03

 

  • <3>重启,执行命令reboot -h now
  • <4>验证:ping master01

 

3.关闭防火墙【root@mster01】

  • <1>执行命令service iptables stop
  • <2>验证:service iptables status

 

4.关闭防火墙的自动运行【root@mster01】

  • <1>执行命令chkconfig iptables off
  • <2>验证:chkconfig --list | grep iptables

 

5.安装JDK【root@mster01】

  • <1>执行命令rm-rf /usr/local/* 删除所有内容
  • <2>将jdk从/home/michael/hadoop_software目录复制到/usr/local目录下,执行如下命名:
  •        cp /home/michael/hadoop_software/jdk-6u24-linux-i586.bin /usr/local
  • <3>执行命令 chmod u+x jdk-6u24-linux-i586.bin 赋予执行权限
  • <4>执行命令 ./jdk-6u24-linux-i586.bin 解压缩,得到文件夹jdk1.6.0_24
  • <5>设置环境变量,执行命令 vi /etc/profile 增加如下2行内容
  •    export JAVA_HOME=/usr/local/jdk1.6.0_24
  •        export PATH=.:$JAVA_HOME/bin:$PATH
  •        保存退出,执行命令 source /etc/profile 让该设置立即生效。
  • <6>验证:java –version

 

6.复制3份虚拟机【root@slave01~slave03】

上述步骤完成后执行以下命令关机 shutdown –h now,并关闭VMWare。然后复制master01虚拟机,复制3份,分别充当充当slave01,slave02,slave03

然后在VMWare中分别打开复制后的虚拟机,并编辑虚拟机设置,修改虚拟机名称,分别命名为slave01,slave02,slave03;并检查网络连接方式是否为Host-Only模式,然后启动虚拟机。

启动时选择“我已复制该虚拟机”。启动后,完成以下操作:

  • <1>右键编辑连接,删除多余的网络连接。(之前master01的)
  • <2>配置静态IP等信息。
  • <3>修改配置文件中的主机名,执行命令vi etc/sysconfig/network
  • <4>验证防火墙和JDK,执行如下命令:
  •   chkconfig --list | grep iptables
  •   java –version
  • <5>重启,执行命令reboot -h now

 

7.SSH(secure shell)的免密码登陆【michael】【mster01,slave01-03】

先在master01,slave01,slave02,slave03四台虚拟机上分别完成以下操作:(注意要以michael用户登录,在michael用户的主目录下进行操作!)

  • <1>在michael用户的主目录下执行命令 ssh-keygen -t rsa (然后回车回车)产生密钥,位于~/.ssh文件夹下
  • <2>执行命令 cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
  • <3>验证:ssh master01(请确保在生成密钥之前本机的ip是否是前面配置的IP,否则先配置好IP再来重新生成密钥)

然后把各个虚拟机的authorized_keys的内容互相拷贝加入到对方的此文件中,然后就可以免密码彼此ssh连入。

(可以这样操作:各个slave先将自己的authorized_keys文件scp到master01,然后master01汇总后再scp给各个slave)

 

8. 安装Hadoop【michael@mster01】【hadoop一定要安装在~目录下,否则会产生很多权限问题】

  • <1>进入/home/michael目录,cp hadoop_software/hadoop-1.1.2.tar.zip ./(为了将hadoop安装包复制到/home/michael目录下)
  • <2>执行命令 tar -zxvf hadoop-1.1.2.tar.gz 进行解压缩,得到文件夹hadoop-1.1.2
  • <3>使用root用户设置环境变量,执行命令 vi /etc/profile 
  •     增加一行内容:export HADOOP_HOEM=/home/michael/hadoop-1.1.2
  •         修改一行内容:export PATH=.:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin:$PATH
  •         保存退出,执行命令 source /etc/profile 让该设置立即生效。
  • <4>创建Hadoop在本地文件系统保存数据的目录,执行命令 mkdir /home/michael/hadoop-1.1.2/hadoopData
  •         确保任何用户都可以在此目录写入数据,执行命令:chmod 777 /home/michael/hadoop-1.1.2/hadoopData
  • <5>修改Hadoop的配置文件,这几个文件在$Hadoop_HOME/conf/目录下,分别是slaves、masters、hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml。 

【hadoop-env.sh修改JAVA_HOME的配置:】在9行

【core-site.xml修改后的内容如下:】    

<configuration>

<property>

    <name>fs.default.name</name>

    <value>hdfs://master01:9000</value>

    <description>The URI of namenode</description>

</property>
<property>

    <name>hadoop.tmp.dir</name>

    <value>/home/michael/hadoop-1.1.2/hadoopData</value>

    <description>hadoop在本地文件系统保存其全部数据的位置</description>

</property>
</configuration>

 

【hdfs-site.xml修改后的内容如下:】

<configuration>

<property>

    <name>dfs.replication</name>

    <!-- 值需要与实际的DataNode节点数要一致,本机为3 -->

    <value>3</value>

</property>

</configuration>

 

【mapred-site.xml修改后的内容如下:】

<configuration>

<property>

    <name>mapred.job.tracker</name>

    <value>master01:9001</value>

</property> </configuration>

 

9. 在master01上向各节点复制hadoop【michael@mster01】

<1>向slave01复制,执行如下命令:

scp /etc/profile root@slave01:/etc/

scp –r /home/michael/hadoop-1.1.2 michael@slave01:/home/michael 

<2>向slave02复制,执行如下命令:

scp /etc/profile root@slave02:/etc/

scp –r /home/michael/hadoop-1.1.2 michael@slave02:/home/michael

<3>向slave03复制,执行如下命令:

scp /etc/profile root@slave03:/etc/

scp –r /home/michael/hadoop-1.1.2 michael@slave03:/home/michael

 

10. 格式化namenode【michael@mster01】

在$Hadoop_HOME/bin/目录下执行命令 hadoop namenode -format 对hadoop进行格式化(如果之前执行过格式化,则格式化之前得先删除/tmp目录下的文件)

 

11.启动hadoop【michael@mster01】

  • <1>执行命令start-all.sh 启动
  • <2>验证(两种方式)    
  •    a.执行命令jps
  •          b.宿主机浏览器输入http://192.168.31.11:50070/】

 

经验教训:

1.第一次安装的时候在第8步的时候,是将hadoop安装在/usr/local/目录下(具体如下),因为michael是普通账户,所以在后续的操作过程中就报了大量的错(权限问题)。

 最后就将hadoop安装在了/home/michael/目录下。

<1>cp /home/michael/hadoop_software/hadoop-1.1.2.tar.zip /usr/local

<2>执行命令 tar -zxvf hadoop-1.1.2.tar.gz 进行解压缩,得到文件夹hadoop-1.1.2

<3>设置环境变量,执行命令 vi /etc/profile 
  增加1行内容:export HADOOP_HOEM
=/usr/local/hadoop-1.1.2 修改1行内容:export PATH=.:$HADOOP_HOME/bin: $HADOOP_HOME/sbin:$JAVA_HOME/bin:$PATH 保存退出,执行命令 source /etc/profile 让该设置立即生效 <4>修改Hadoop的配置文件,为$Hadoop_HOME/conf/目录下的配置文件

 

2.第一次安装的时候hadoop是安装在/usr/local/目录下。由于权限问题没能成功。于是倒回去从第8步开始重新安装:先删除/usr/local/下的hadoop目录(只删除了这个目录),然后从第8步开始继续安装,执行到第10步格式化的时候,出现以下画面:

应该在删除/usr/local/目录下的hadoop时,也应该删除/tmp目录下相关的文件。于是又先删除了/tmp目录下的所有文件,然后再次格式化,没异常提示,成功!

 

3.安装到第11步的时候发现启动以后没有JobTracker。检查后发现mapred-site.xml中mapred.job.tracker属性取值中的master01写成了maser01。

 

4.hadoop启动过程中报如下错误:”Warning: $HADOOP_HOME is deprecated“。暂且不管。

 

5.hadoop.tmp.dir的默认值是/tmp(在格式化的输出信息中就可以看到),一些版本的linux系统会在每次重新启动的时候删除/tmp的内容。所以最好重新设置一个目录。

 

参考网址

http://q.fon.blog.163.com/blog/static/28304302201392695154134/

http://blog.csdn.net/shuxiao9058/article/details/7051463

http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/03/15/1985084.html

http://www.server110.com/vmware/201310/1973.html

http://lhdeyx.blog.163.com/blog/static/31819697201271110467492/

 

posted @ 2014-12-28 22:54  凝静志远  阅读(368)  评论(0编辑  收藏  举报