Hadoop分布式环境部署

Hadoop


分布式环境部署







目标

配置一个分布式计算集群,让hadoop 框架能够正常的运行起来,主要有masternamenode,jobtrackerslavedatanode,tasktracker. 便于之后进行分布式运算。由于作者水平有限,疏漏指出希望批评指正。

环境

两台(或多台)服务器,都是用linux 系统,都安装了jdk1.5 以上版本,都安装了ssh ,各个机器名不一致。

实施

1 建立同名用户

原因

hadoop 运行时需要使用相同的目录进行存储,而且master 要方便的管理每台服务器需要一个同名用户的ssh 公钥。

步骤

(1) su root

(2) 输入root 密码

(3) adduser username (用户名)

除了输入新用户的密码,一路回车即可

创建用户的时候会在/home/ 下自动给用户创建一个默认目录,之后存放数据和hadoop 程序就使用该目录即可

如果发现自己建用户错了,使用sudo userdel username 即可删除刚才建立的用户

2 配置ssh

原因

因为整个hadoop 在数据交换的时候都使用了ssh 服务,所以首先要配置ssh ,让各个节点服务器都能互通,为此,需要给每台服务器生成一个公钥用于登录认证。

步骤

在每台服务器:

(1) 进入用户默认目录,如zoomsun 用户的默认目录是/home/zoomsuncd /home/zoomsun

(2) 建立.ssh 文件夹:mkdir .ssh

(3) 进入.ssh 目录:cd .ssh

(4) 创建当前用户的ssh 登录公钥:ssh-keygen -t rsa ,建议别使用sudo 创建,一路回车即可,这时候会在当前目录(/home/zoomsun/.ssh/) 生出id_rsa.pub ,即rsa 公钥

(5) 使用scp 命令把生成的公钥传给别的服务器,并保存成不同的名字,如我在192.168.1.118 的主机传给192.168.1.109 ,并且保存为118_id_rsa.pub 的时候命令如下:scp id_rsa.pub zoomsun@192.168.1.109:/home/zoomsun/.ssh/118_id_rsa.pub

(6) 登录192.168.1.109 ,可以远程登录:ssh zoomsun@192.168.1.109 -p22(22 端口的时候可以不写)

(7) 进入当前用户默认目录下的.ssh 目录:cd ~/.ssh

(8) 把公钥内容添加到登录认证文件中:cat 118_id_rsa.pub >> authorized_keys

(9) 登录到192.168.1.118 主机,使用ssh zoomsun@192.168.1.109 进行连接109 主机,这时候会出现输入yes/no? 的提示,输入yes 。(配置完成后第一次登录时许需要给know_hosts 添加东西,所以会有这个确认,以后再登录就不用输入yes 了)

(10) 好了,在不同的机器上重复上面的步骤,让所有的服务器互通吧!

3 准备hadoop

master 上下载并解压hadoop ,解压到当前用户默认目录下(/home/zoomsun/)

4 配置hadoop

进入解压后hadoopconf 目录,对其中几个文件进行修改(hadoop-env.sh,hadoop-site.xml,masters,slaves

原因

hadoop 能正常的运行起来

步骤

(1) 修改hadoop-env.sh ,打开它,只对JAVA_HOME 进行重新指定就好了

The java implementation to use. Required.

export JAVA_HOME=/usr/ali/jdk1.5.0_10

类似这句,把JAVA_HOME 按照自己的情况修改,如我的/usr/lib/jvm/jdk1.6.0_10

(2) 修改hadoop-site.xml ,在<configuration></configuration> 之间进行修改:

<configuration>

<property>

<name>fs.default.name</name> <!-- 配置namenode-->

<value>hdfs://192.168.1.118:54310/</value> <!-- 改为自己的master-->

</property>

<property>

<name>mapred.job.tracker</name> <!-- 配置jobtracker-->

<value>hdfs://192.168.1.118:54311/</value> <!-- 改为自己的master-->

</property>

<property>

<name>dfs.replication</name> <!-- 配置备份数量-->

<value>1</value>

</property>

<property>

<name>hadoop.tmp.dir</name> <!-- 配置备临时目录-->

<value>/home/zoomsun/hadoop/tmp/</value>

</property>

<property>

<name>mapred.child.java.opts</name>

<value>-Xmx512m</value>

</property>

<property>

<name>dfs.block.size</name>

<value>5120000</value>

</property>

</configuration>

(3) 配置masters,slaves ,打开并写入各自对应的ip 信息,如我的:

Masters:192.168.1.118

Slaves:192.168.1.109

5 给每台服务器指定机器名

原因

不知道,反正一定要指定

步骤

(1) 打开hostssudo vi /etc/hosts

(2) 添加所有集群中的主机ip 列表,如

192.168.1.118 node0

192.168.1.109 node1

6 slave 拷贝hadoop

masterhadoop 拷贝到slave 相同的目录下,可以使用scp -r 来拷贝文件夹,如:

scp -r /home/zoomsun/hadoop-0.19.0 zoomsun@192.168.1.109 :/home/zoomsun

7 修改环境变量

master 上修改/etc/profile ,把hadoop 加入环境变量

原因

方便使用

步骤

(1) sudo vi /etc/profile

(2) export HADOOP_HOME=/home/zoomsun/hadoop-0.19.0

export PATH=$PATH:$HADOOP_HOME/bin

(3) 修改完毕后,执行source /etc/profile 使其生效

8 修改slave hadoop 执行的JAVA_HOME

进入各个slave ,修改hadoop-env.sh 中的JAVA_HOME 为本机的JAVA_HOME

9 初始化namenode

master 上执行hadoop namenode -format ,只执行一次,类似格式化,除非mastertmp.dir 删除了再进行格式化

10 启动hadoop

master 上执行start-all.sh ,启动所有集群中的nodetracker

11 查看日志

可以进入hadooplogs 目录查看日志

12 关闭hadoop

如果需要关闭hadoopstop-all.sh

13 结束语

如果正常的话,现在hadoop 已经配置成功了,祝贺下!

如果还不成功,分析日志,找原因吧!

我的邮箱:hrk_618@163.com 欢迎交流

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值