centos6.2 下安装并配置hadoop1.0.4(32位安装)

时间:2020-12-09 22:58:24

 

一,环境准备

1、  集群内所有电脑需要设置防火墙,下面以master为例说明:

切换到root用户下,执行setup指令:

centos6.2 下安装并配置hadoop1.0.4(32位安装)

(1)       选择Firewall  configuration,Run  Tool。用上下键控制选项的选择,用Tab键进行确认和取消选择,空格键点击确认。

centos6.2 下安装并配置hadoop1.0.4(32位安装)

(2)       进入Firewall  Configuration 设置,使用空格将Firewall设置上的星号去掉,变成disable,OK确认。

centos6.2 下安装并配置hadoop1.0.4(32位安装)

(3)       点击“yes“

centos6.2 下安装并配置hadoop1.0.4(32位安装)

(4)       之后回到第一步,选择退出即可。

centos6.2 下安装并配置hadoop1.0.4(32位安装)

2、  Hadoop集群由3个节点(同构、异构均可)构成,它们之间通过以太网进行通讯。图1 中每个节点下部的标签为该节点的主机名,其对应的IP 地址如表1 所示:

主机名

IP地址

master

172.22.12.72

slave1

172.22.12.71

slave2

172.22.12.70

表1

我们需要在每台机器上配置hosts文件,配置操作相同,下面以master为例介绍:

以root 身份打开/etc /hosts 文件,命令:

[root @masterDesktop]#  vim  /etc /hosts

centos6.2 下安装并配置hadoop1.0.4(32位安装)

将文件修改为如下内容:

172.22.12.72   master

172.22.12.71   slave1

172.22.12.70   slave2

centos6.2 下安装并配置hadoop1.0.4(32位安装)

之后,slave1和salve2执行上述操作。

判断配置是否成功,在集群内任一电脑,ping其他电脑用户名,如果ping通了,则说明成功。比如在master上ping  slave1

centos6.2 下安装并配置hadoop1.0.4(32位安装)

如上图说明成功了。

二,CentOS下安装JDK

软件准备:jdk-6u38-linux-i585.bin,集群内所有电脑都需要安装JDK,我们可以在master上安装好JDK后,将安装文件复制到其他电脑相同目录下即可。将hadoop统一安装在所有电脑的/usr/local目录下;下面以master电脑安装JDK为例介绍:

1、  查看默认的JDK命令:

[hadoop@masterDesktop]$  java  -version

提示现在的jdk版本是1.6.0_22

2、  使用root帐号将jdk-6u38-linux-i585.bin放到/usr/local目录下,命令:

[hadoop@masterDesktop]$  su root

[root@masterDesktop]#  mv  jdk-6u38-linux-i585.bin  /usr/local

3、  安装jdk

进入到/usr/local目录下,将压缩包安装到该目录下

[root @masterDesktop]#  cd  /usr/local

[root @master  local]#  ./jdk-6u38-linux-i585.bin

安装完成后,在/usr/local目录下产生一个新的 jdk1.0. 6_38文件夹

4、  设置环境变量

打开配置文件profile,命令:

[root @master  local]#  vim  /etc/profile

移至文件末尾插入一个空行:输入字母o。输入以下配置信息:(注:这里的分隔符是冒号不是分号)

JAVA_HOME=/usr/local/jdk1.6.0_38

PATH=$JAVA_HOME/bin:$PATH

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export JAVA_HOME

export PATH

export CLASSPATH

编辑完后,先按Esc退出编辑模式,再保存退出输入:wq !(冒号也要输入)

至此,新的JDK环境设置完毕。

5、  让系统配置立即生效,不用重启系统,终端输入命令:

[root @master  local]#  source  /etc/profile

6、  查看jdk是否安装成功,命令:

[root @master  local]#  java

centos6.2 下安装并配置hadoop1.0.4(32位安装)

[root @master  local]#  javac

centos6.2 下安装并配置hadoop1.0.4(32位安装)

如果出现配置信息,说明安装成功

7、  查看版本:

[root @master  local]#  java -version

显示我们安装的新版本是jdk1.6.0_38

centos6.2 下安装并配置hadoop1.0.4(32位安装)

8、  将主节点master上安装好的jdk复制到其他两台上相同目录下。此处以复制到slave1为例。

a)         将jdk的解压缩文件复制到slave1电脑上

[root @master  local]#  scp -r  jdk1.6.0_38  root@slave1:/usr/local

这样,子节点上的同目录下也安装了jdk。注意,复制文件夹一定要加-r,表示将jdk1.6.0_38文件夹和其文件夹里的所有文件都拷贝到slave1节点上。

centos6.2 下安装并配置hadoop1.0.4(32位安装)

a)         将主节点master上的jkd配置文件拷贝到其他子节点上

[root @master  local]#  scp  /etc/profile  slave1:/etc/profile

注意,此处profile文件不是文件夹,因此不用加-r。

centos6.2 下安装并配置hadoop1.0.4(32位安装)

b)         在子节点上查看jdk是否安装成功

[root @slave1  Desktop]#  source  /etc/profile

[root @slave1Desktop]#  java

[root @slave1Desktop]#  javac

[root @slave1Desktop]#  java  –version

9、执行步骤8,将jdk文件复制到slave2.。

三,CentOS下配置ssh

1、  在Hadoop集群中,需要集群内一台电脑无密码登录其他电脑,我们使用Linux自带的ssh指令远程连接其他电脑(在安装CentOs系统时候,会默认安装SSH服务,如果没有,则需要手动安装Openssh),SSH默认需要输入密码,因此我们配置一下SSH,即可无密码登录。下面讲解如何通过SSH无密码登录其他电脑:

2、  如果master电脑通过SSH无密码远程连接slave1电脑,需要在master电脑上生成密码对,然后将私钥留下,公钥发送给slave1后,实现了无密码登录slave1电脑。即如果电脑a无密码连接电脑b,需要将电脑a生成的私钥留给自己,公钥发给电脑b。因此欲实现集群内电脑的相互无密码登录,只需要每台电脑生成一个公钥对,将各自私钥不要动,所有公钥(公钥类似windows系统的记事本)的内容复制到同一个文本文件中,此文本文件名字必须为authorized_keys,不能变;然后将authorized_keys复制到集群内的每台电脑即可。注意:我们每台电脑使用hadoop用户连接,因此生成公钥和authorized_keys必须属于hadoop用户。具体流程如下:

3、  在master上生成密码对流程如下:

(1) 确保.ssh文件夹属于hadoop用户,如果不是,需要修改:

a)跳转到/home/hadoop目录下:

centos6.2 下安装并配置hadoop1.0.4(32位安装)

b)查看.ssh文件夹属性:

centos6.2 下安装并配置hadoop1.0.4(32位安装)

c)如果标记处为hadoop则说明.ssh文件夹属于hadoop用户。

centos6.2 下安装并配置hadoop1.0.4(32位安装)

如果标记处不为hadoop,则需要切换到root用户,进行修改:

d)切换到root用户:

centos6.2 下安装并配置hadoop1.0.4(32位安装)

e)将.ssh用户赋予hadoop:

centos6.2 下安装并配置hadoop1.0.4(32位安装)

f)赋予hadoop用户权限,可以操作.ssh文件夹:

centos6.2 下安装并配置hadoop1.0.4(32位安装)

之后再利用ls -al查看.ssh文件夹,确保文件夹如上c)图符合要求。

(2) 生成密钥对:

a)确保是hadoop用户操作,如果不是,切换到hadoop用户下:

centos6.2 下安装并配置hadoop1.0.4(32位安装)

b)再跳转到.ssh目录下进行操作:

centos6.2 下安装并配置hadoop1.0.4(32位安装)

c)在.ssh文件夹下生成密钥对

[hadoop @master  .ssh]$  ssh-key gen -t  rsa

之后一直点击回车键默认,效果如下:

centos6.2 下安装并配置hadoop1.0.4(32位安装)

此时,会在/home/hadoop/.ssh下生成了id_rsa(私钥),id_rsa.pub(公钥);

centos6.2 下安装并配置hadoop1.0.4(32位安装)

4、  分别在slabe1和slave2中执行第三步操作,都会生成密钥对id_rsa.pub和id_rsa,

5、  配置authorized_keys

(1)在master电脑上,把生成的id_ras.pub内容复制到authorized _keys中;执行指令:

centos6.2 下安装并配置hadoop1.0.4(32位安装)

如果authorized_keys不存在,则生成authorized_keys,再将id_rsa.pub内容复制到authorized_keys中。

(2)将authorized_keys复制到slave1电脑上:

centos6.2 下安装并配置hadoop1.0.4(32位安装)

将slave1生成密钥对添加到authorized_keys:

centos6.2 下安装并配置hadoop1.0.4(32位安装)

(3)将slave1上authorized_keys复制到slave2上:

centos6.2 下安装并配置hadoop1.0.4(32位安装)

将将slave2生成密钥对添加到authorized_keys:

centos6.2 下安装并配置hadoop1.0.4(32位安装)

至此slave2上authorized_keys文件已经包含集群中所有三台电脑的公钥了,是最新的文件。

下一步,将master和slave1电脑上authorized_keys文件删除,将slave2上的最新authorized_keys复制到master和slave1上。

(4)master上删除旧的authorized_keys:

centos6.2 下安装并配置hadoop1.0.4(32位安装)

slave1中删除旧的authorized_keys:

centos6.2 下安装并配置hadoop1.0.4(32位安装)

Slave2中authorized_keys复制到master:

centos6.2 下安装并配置hadoop1.0.4(32位安装)

Slave2中authorized_keys复制到slave1:

centos6.2 下安装并配置hadoop1.0.4(32位安装)

(5)将集群内所有电脑上设定authorized_keys所属用户为hadoop,hadoop用户对其读写权限,在所有电脑上执行以下操作,以master为例:

centos6.2 下安装并配置hadoop1.0.4(32位安装)

再执行ls –al查看authorized_keys文件,如果如下图所示,则符合要求:

centos6.2 下安装并配置hadoop1.0.4(32位安装)

四,CentOS下安装和配置hadoop

1、  集群内所有电脑都需要安装hadoop,我们可以在master上安装好hadoop后,将安装文件复制到其他电脑相同目录下即可。将hadoop统一安装在所有电脑的/usr/local目录下;下面以master电脑安装hadoop为例介绍:

2、  将用户切换到root用户:

centos6.2 下安装并配置hadoop1.0.4(32位安装)

3、  将桌面上的hadoop-1.0.4-bin.tar.gz复制到/usr/local目录下:

centos6.2 下安装并配置hadoop1.0.4(32位安装)

3、  跳转到/usr/local目录下,解压缩hadoop-1.0.4-bin.tar.gz:

centos6.2 下安装并配置hadoop1.0.4(32位安装)

4、  解压缩后生成hadoop-1.0.4文件夹,跳转到 hadoop-1.0.4/conf目录下,

centos6.2 下安装并配置hadoop1.0.4(32位安装)

配置hadoop配置文件,总共需要配置6个。

(1)       配置hadoop-env.sh

centos6.2 下安装并配置hadoop1.0.4(32位安装)

# set java environment

export JAVA_HOME=/usr/local/jdk1.6.0_38

(2)       配置core-site.xml,修改每个属性的value值

centos6.2 下安装并配置hadoop1.0.4(32位安装)

<!—core-site.xml-->

<property>

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

<value>/home/hadoopl/tmp</value>

</property>

<property>

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

<value>hdfs://172,.22.12.72:9000</value>

</property>

(3)       设置完步骤(2)后,用root账号在/home/hadoop目录下创建一个名为tmp的文件夹,

centos6.2 下安装并配置hadoop1.0.4(32位安装)

将tmp文件夹赋予hadoop用户,并赋予hadoop用户操作该文件夹的权限

centos6.2 下安装并配置hadoop1.0.4(32位安装)

centos6.2 下安装并配置hadoop1.0.4(32位安装)

(4)       跳转到hadoop-1.0.4/conf目录下

centos6.2 下安装并配置hadoop1.0.4(32位安装)

继续配置hdfs-site.xml

centos6.2 下安装并配置hadoop1.0.4(32位安装)

<!—hdfs-site.xml-->

<property>

<name>dfs.replication</name>

<value>2</value>

</property>

注:副本个数,不配置默认是3,应小于等于datanode机器数量,本集群datanode机器数为2。

(5)       配置mapred-site.xml

centos6.2 下安装并配置hadoop1.0.4(32位安装)

<!—mapred-site.xml-->

<property>

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

<value>http://172.22.12.72:9001</value>

</property>

(6)       配置masters文件,加入namenode的节点名,并删除前面的内容

centos6.2 下安装并配置hadoop1.0.4(32位安装)

172.22.12.72

注:此处填写主节点ip

(7)       配置slaves文件, 加入所有datanode的节点名

[hadoop @master  conf]$  vim  slaves

172.22.12.71

172.22.12.70

注:此处填写所有数据节点ip

5、  将hadoop-1.0.4赋予用户hadoop,并且赋予hadoop对文件夹的操作权限。

centos6.2 下安装并配置hadoop1.0.4(32位安装)

6、  将hadoop-1.0.4分别复制到slave1和slave2相应目录下:

centos6.2 下安装并配置hadoop1.0.4(32位安装)

centos6.2 下安装并配置hadoop1.0.4(32位安装)

7、  分别在slave1和slave2上以root用户执行操作步骤5。

8、  分别在slave1和slave2上执行操作步骤4中第(3)步。

9、  启动hadoop集群(只需在主节点启动hadoop即可)

(1)       以hadoop用户,跳转到hadoop-1.0.4的bin目录下:

centos6.2 下安装并配置hadoop1.0.4(32位安装)

(2)       格式化文件系统:

centos6.2 下安装并配置hadoop1.0.4(32位安装)

注:在第一次启动hadoop集群时候,需要格式化文件系统,其他时间不需要启动。

(3)       启动hadoop集群

centos6.2 下安装并配置hadoop1.0.4(32位安装)

10、              在主节点master上用java自带的小工具jps查看进程

centos6.2 下安装并配置hadoop1.0.4(32位安装)

进程中必须包含NameNode和JobTracker这两个,不然说明安装失败。

在salve1上或slave2上用java自带的小工具jps查看进程:

centos6.2 下安装并配置hadoop1.0.4(32位安装)

进程必须包含DataNode和TaskTracker两个,不然说明安装失败。