hadoop通过RPM包安装

hadoop-1.1.0 rpm + centos 6.3 64 + JDK7 搭建全分布式集群的方法

 

第一步 ,环境准备. 


服务器3台,可以用3个虚拟机代替.

操作系统.
CentOS 6.3 64
hadoop版本
hadoop 1.1.0 rpm

 

开始安装
以下所有的操作,都是用 root 身份执行

以下安装,需要在每台机器上面安装. 

下载好 jdk-7u9-linux-x64.rpm 和 hadoop-1.1.0-1.x86_64.rpm 


1. 首先安装操作系统,并关闭防火墙,

 

第二步,更改主机名

修改主机名 namenode1,datanode1,datanode2

vim /etc/sysconfig/network

 

(分别修改为)

HOSTNAME=namenode1

HOSTNAME=datanode1

HOSTNAME=datanode2

:wq保存并退出

 

第三步,修改文件“/etc/hosts

每台主机中的/etc/hosts文件有以下配置

vim /etc/hosts

 

(添加以下内容)

192.168.10.137  namenode1

192.168.10.138  datanode1

192.168.10.139  datanode2

测试

ping namenode1
ping datanode1

ping datanode2

 

第四步.安装jdk,rpm版的会自动配置好环境变量

rpm-ivh jdk-7u9-linux-x64.rpm    

java -version 马上有反应,方便!

第五步.安装hadoop,rpm版的会自动配置部分文件

rpm-ivh  hadoop-1.1.0-1.x86_64.rpm


(CentOS 6.3默认已经安装了opensshrsync)

 

2.2配置Master无密码登录所有Salve

1SSH无密码原理

MasterNameNode | JobTracker)作为客户端,要实现无密码公钥认证,连接到服务器SalveDataNode | Tasktracker)上时,需要在Master上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥追加到所有的Slaveauthorized_keys文件上。当Master通过SSH连接Salve时,Salve就会生成一个随机数并从authorized_keys找到Master的公钥,然后用这个公钥对随机数进行加密,并发送给MasterMaster收到加密数之后再用私钥解密,并将解密数回传给SlaveSlave确认解密数无误之后就允许Master进行连接了。这就是一个公钥认证过程,其间不需要用户手工输入密码。重要过程是将客户端Master复制到Slave上。

 

以下操作,  namenode1上面执行

1. 创建 ssh 密钥,就是不用密码登陆目标主机,以下命令直接敲默认回车,不用输入任何信息.

 

ssh-keygen -t rsa

 

cat ~/.ssh/id_rsa.pub  >>~/.ssh/authorized_keys (使本机程序可以通过ssh登录本机)

 

2. 密钥生成完成以后,追加namenode的公钥到其他2台 datanode 上面,使得 namenode能访问其它 datanode 

 

cat ~/.ssh/id_rsa.pub  |  ssh root@datanode1 "cat>>~/.ssh/authorized_keys"

cat ~/.ssh/id_rsa.pub  |  ssh root@datanode2 "cat>>~/.ssh/authorized_keys"

 

3.修改SSH配置文件,启用RSA认证

 

vim /etc/ssh/sshd_config

 

authorized_keys: 存放本机要访问的所有目标主机(s)公钥的文件

设置完之后记得重启SSH服务,才能使刚才设置有效。

service sshd restart


3. 验证ssh 不要密码登陆是否成功

ssh  namenode1

ssh  datanode1 

ssh  datanode2 

 如果SSH访问出现问题的话,可以试试下面的

1)修改文件"authorized_keys"

chmod 644 ~/.ssh/authorized_keys

 

2.3配置所有Slave无密码登录Master

    Master无密码登录所有Slave原理一样,就是把Slave的公钥追加Master".ssh"文件夹下的"authorized_keys"中,记得是追加(>>

 

root登录datanode1

 

1. 创建 ssh 密钥,就是不用密码登陆目标主机,以下命令直接敲默认回车,不用输入任何信息.

ssh-keygen -t rsa 


cat ~/.ssh/id_rsa.pub  >>~/.ssh/authorized_keys (使本机程序可以通过ssh登录本机)

 

2. 密钥生成完成以后,追加本机的公钥到其他2台机器上面

cat~/.ssh/id_rsa.pub  |  ssh root@namenode1 "cat>>~/.ssh/authorized_keys"

 

cat~/.ssh/id_rsa.pub  |  ssh root@datanode2 "cat>>~/.ssh/authorized_keys"

 

3.修改SSH配置文件,启用RSA认证

vim /etc/ssh/sshd_config

 

authorized_keys: 存放本机要访问的所有目标主机(s)公钥的文件

设置完之后记得重启SSH服务,才能使刚才设置有效。

 

service sshd restart

 
3. 验证ssh 不要密码登陆是否成功

ssh  namenode1 
ssh  datanode2

 

如果SSH访问出现问题的话,可以试试下面的

 

1)修改文件"authorized_keys"

chmod 644 ~/.ssh/authorized_keys

 

2.4配置所有Slave无密码登录Master

    Master无密码登录所有Slave原理一样,就是把Slave的公钥追加Master".ssh"文件夹下的"authorized_keys"中,记得是追加(>>

 

root登录datanode2

1. 创建 ssh密钥,就是不用密码登陆目标主机,以下命令直接敲默认回车,不用输入任何信息.

ssh-keygen -t rsa

 

cat ~/.ssh/id_rsa.pub  >>~/.ssh/authorized_keys (使本机程序可以通过ssh登录本机)

 

2. 密钥生成完成以后,追加本机的公钥到其他2台机器的authorized_keys上

 

cat~/.ssh/id_rsa.pub  |  ssh root@namenode1 "cat>>~/.ssh/authorized_keys"

cat~/.ssh/id_rsa.pub  |  ssh root@datanode1 "cat>>~/.ssh/authorized_keys"

 

3.修改SSH配置文件,启用RSA认证

 

vim /etc/ssh/sshd_config

 

authorized_keys: 存放本机要访问的所有目标主机(s)公钥的文件

 

设置完之后记得重启SSH服务,才能使刚才设置有效。

 

service sshd restart

 
3. 验证ssh 不要密码登陆是否成功

ssh  namenode1 

ssh  datanode1

 

如果SSH访问出现问题的话,可以试试下面的

1)修改文件"authorized_keys"

chmod 644 ~/.ssh/authorized_keys

 

----------------------------------------------------------------------------

2.5配置Hadoop

每个节点都要进行以下的配置

 

4. 创建必要的目录.首先创建 namenode 保存namenode 元信息的目录. 设置为 /usr/hadoop/tmp  目录下

 

mkdir -p /usr/hadoop/tmp 

 

5. 配置hadoop 运行环境.进入 /etc/hadoop 目录下面,修改hadoop的默认配置.
首先修改 master 文件. master 文件很容易理解错误,master 文件是指 hadoop 机器里面的secondarynamenode.不是指本机(测试用所以配置上,实际上namenode和secondarynamenode放在同一个机子上不能增加可靠性,没什么意义!)

 

vim /etc/hadoop/master

(改为如下)

192.168.10.137

 

接着修改slaves 文件,salve 文件表示此集群的 datanode 节点.所以在本集群中,datanode 如下

 

vim /etc/hadoop/slave

(改为如下)

192.168.10.138
192.168.10.139 

 

    这里的IP实际上可以用主机名来代替,但当网格的DNS出问题的,就不能访问了,直接用IP就不用依赖DNS,提高集群可靠性!

 

 6. 设置 core-site.xml 文件内容如下

 

<configuration>

    <!-- global properties -->

    <property>

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

        <value>/usr/hadoop/tmp</value>

    </property>

 

    <!-- file system properties -->

    <property>

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

        <value>hdfs://namenode1:9000</value>

    </property>

</configuration>

    

3)配置hdfs-site.xml文件

  修改HadoopHDFS的配置,配置的备份方式默认为3,这里只有2datanode,所以数据最大复制2!

<configuration>

    <property>

        <name>dfs.replication</name>

        <value>2</value>

    </property>

</configuration>

   

7. 设置 mapred-site.xml件内容如下

  修改HadoopMapReduce的配置文件,配置的是JobTracker的地址和端口。

<configuration>

    <property>

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

        <value>namenode1:9001</value>

    </property>

</configuration>

 

8. 修改 java 的运行环境变量,修改 hadoop-env.sh 如下行的内容如下

vim  /etc/hadoop/hadoop-env.sh


修改如下行内容为

export JAVA_HOME=/usr/java/jdk1.7.0_09

 
11. 设置每个节点上面的 服务为自动启动

chkconfig --add hadoop-namenode
chkconfig --add hadoop-jobtracker
chkconfig hadoop-namenode on
chkconfig hadoop-jobtracker on

 

4.3启动及验证

1)格式化HDFS文件系统

  在"Master.Hadoop"上使用普通用户hadoop进行操作。(备注:只需一次,下次启动不再需要格式化)

 

hadoop namenode -format

 

2)启动hadoop

  在启动前关闭集群中所有机器的防火墙,不然会出现datanode开后又自动关闭。

 

service iptables stop

 

     不知道为什么root用户访问start-all.sh会提示无权限,所以直接修改了其所在文件夹的访问权限!(谁知道原来回复一下我,谢谢)

chmod -R 777 /usr/sbin/ 

 

启动 namenode

start-all.sh

     

  可以通过以下启动日志看出,首先启动namenode 接着启动datanode1,datanode2,…,然后启动secondarynamenode。

       再启动jobtracker,然后启动tasktracker1,tasktracker2,…。

 

  启动 hadoop成功后,在 Master 中的 tmp 文件夹中生成了 dfs 文件夹,在Slave 中的 tmp 文件夹中均生成了 dfs 文件夹和 mapred 文件夹。

 

停止namenode

stop-all.sh

     

 (2)验证方式二:用"hadoop dfsadmin -report"

  用这个命令可以查看Hadoop集群的状态。

 

4.4网页查看集群

1)访问jobtracker"http:192.168.1.2:50030"

2)访问DFS : "http:192.168.10.137:50070"

到此,Hadoop配置完毕,最大的感悟是rpm方式安装软件真是太方便了!


参考: http://blog.csdn.net/irelandken/article/details/8122474

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值