前言
hadoop分三种运行模式 单机,伪分布,全分布,单机和伪分布是用于开发和调试,全分布是真正的hadoop集群,用于生产环境。
本次安装做全分布模式,包括master节点,snn节点和2个slave节点。
环境
id | ipaddress | hostname |
---|---|---|
master | 192.168.0.111 | c02.cloudiya.com |
snn | 192.168.0.107 | snn.hadoop.cloudiya.com |
slave one | 192.168.0.103 | slaveone.hadoop.cloudiya.com |
slave two | 192.168.0.105 | slavetwo.hadoop.cloudiya.com |
设置各节点/etc/hosts
1 | 192.168.0.103 slaveone.hadoop.cloudiya.com |
节点间安全通信设置
a. 在各节点建立相同账户hadoop-user,记得设置密码。
b. 生成ssh密钥对
1 | [hadoop-user@c02 ~]$ ssh-keygen -t rsa (设置passphrase为空) |
分布公钥
1 | [hadoop-user@c02 ~]$ scp ~/.ssh/id_rsa.pub hadoop-user@slaveone.hadoop.cloudiya.com:~/master_key |
设置master的密钥是授权密钥,slavetwo,master,snn需做同样操作
1 | [hadoop-user@slaveone ~]$ mkdir ~/.ssh |
测试登录
1 | [hadoop-user@c02 src]$ ssh 192.168.0.103 |
在所有节点安装jdk
1 | wget http://download.oracle.com/otn-pub/java/jdk/7u3-b04/jdk-7u3-linux-x64.tar.gz |
在master安装hadoop,在hadoop-user下进行
1 | wget http://mirror.bjtu.edu.cn/apache/hadoop/core/hadoop-0.20.2/hadoop-0.20.2.tar.gz |
配置hadoop
a. 在hadoop-env.sh添加环境变量
1 | export JAVA_HOME=/usr/local/src/jdk |
b. 修改core-site.xml,指出hdfs文件系统namenode所在。
1 | <configuration> |
c. 修改mapred-site.xml,指出jobtracker所在主节点
1 | <configuration> |
d. 修改hdfs-site.xml,指定hdfs为文件块保存的副本数.
1 | <configuration> |
e. 在master中添加snn所在
1 | snn.hadoop.cloudiya.com |
f. 在slaves中添加slave节点所在
1 | slaveone.hadoop.cloudiya.com |
推送master下hadoop到snn,slaveone,slavetwo
先在snn,slaveone,slavetwo下相应目录建hadoop目录,chown给hadoop-user用户
1 | [hadoop-user@c02 ~]$ scp -r /usr/local/src/hadoop/* slaveone.hadoop.cloudiya.com:/usr/local/src/hadoop |
推送安装文件到各节点.
在各节点设置hadoop数据相关目录
1 | mkdir /home/hadoop && chown hadoop-user:hadoop-user /home/hadoop |
格式化hdfs
1 | [hadoop-user@c02 ~]$ /usr/local/src/hadoop/bin/hadoop namenode -format |
启动hadoop
1 | [hadoop-user@c02 ~]$ /usr/local/src/hadoop/bin/start-all.sh |
启动信息
1 | [hadoop-user@c02 src]$ /usr/local/src/hadoop/bin/start-all.sh |
验证hadoop是否启动
1 | master |
web ui
1 | hdfs |