Hadoop完全分布式集群搭建
2016-03-04 17:39
591 查看
Hadoop完全分布式集群搭建
使用四台Linux机器搭建集群规划:
192.168.230.10 192.168.230.11 192.168.230.12 192.168.230.14 NameNode DataNode DataNode DataNode SecondaryNameNode
1、检查防火墙、/etc/hosts主机名与ip是否映射、能否联网、是否安装ssh、集群的时间是否一致(通过时间生成block id)
在node1/192.168.230.10上进行操作:1.1、更改/etc/目录下的hosts文件,添加集群主机和ip地址的映射
[root@node1 ~]# vi /etc/hosts 192.168.230.10 node1 192.168.230.11 node2 192.168.230.12 node3 192.168.230.14 node5
1.2、将node1的/etc/目录下的hosts文件发送给node2、node3、node5的/etc/目录下,覆盖原hosts文件
[root@node1 ~]# scp /etc/hosts root@node2:/etc/ [root@node1 ~]# scp /etc/hosts root@node3:/etc/ [root@node1 ~]# scp /etc/hosts root@node5:/etc/
![](http://7xqkk1.com1.z0.glb.clouddn.com/16-3-4/89436520.jpg)
1.3、设置ssh免秘钥登录
操作四台机器node1、node2、node3、node5分别生成秘钥目录 [root@node1 ~]# ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa [root@node2 ~]# ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa [root@node3 ~]# ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa [root@node5 ~]# ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
![](http://7xqkk1.com1.z0.glb.clouddn.com/16-3-4/35117947.jpg)
1.3.1、在node1上进行免密码登录就用的是私钥,登录别的机器比如node2、node3、node5则用的是公钥
把公钥文件放入认证文件中去 [root@node1 ~]$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
![](http://7xqkk1.com1.z0.glb.clouddn.com/16-3-4/97594212.jpg)
[root@node1 ~]$ ls -a . .. .bash_history .bash_logout .bash_profile .bashrc .ssh 第一次登录需要密码 ssh node1 选择node1作为执行脚本的机器 将公钥认证文件放到node2中去 ssh node2
1.3.2、将node1的公钥发送给node2、node3、node5的~/opt/目录中
[root@node1 ~]# scp ~/.ssh/id_dsa.pub root@node2:~/opt/ root@node2's password: id_dsa.pub 100% 600 0.6KB/s 00:00 [root@node1 ~]# scp ~/.ssh/id_dsa.pub root@node3:~/opt/ root@node3's password: Permission denied, please try again. root@node3's password: id_dsa.pub 100% 600 0.6KB/s 00:00 [root@node1 ~]# scp ~/.ssh/id_dsa.pub root@node5:~/opt/ root@node5's password: id_dsa.pub
1.3.3、node2、node3、node5将node1的公钥放到认证文件中去
[root@node2 ~]$ cat ~/opt/id_dsa.pub >> ~/.ssh/authorized_keys [root@node3 ~]$ cat ~/opt/id_dsa.pub >> ~/.ssh/authorized_keys [root@node5 ~]$ cat ~/opt/id_dsa.pub >> ~/.ssh/authorized_keys
1.3.4、node1免秘钥登录node2、node3、node5
[root@node1 ~]# ssh node2 [root@node1 ~]# ssh node3 [root@node1 ~]# ssh node5
1.4、同步集群时间
[root@node1 ~]# yum install ntpdate
![](http://7xqkk1.com1.z0.glb.clouddn.com/16-3-4/27992092.jpg)
[root@node1 ~]# ntpdate -u ntp.sjtu.edu.cn
![](http://7xqkk1.com1.z0.glb.clouddn.com/16-3-4/7090119.jpg)
1.5、在node1、node2、node3、node5上检查是否有安装jdk
[root@node1 ~]# javac -version javac 1.7.0_79 [root@node1 ~]# echo $JAVA_HOME /usr/java/jdk1.7.0_79
1.6、上传Hadoop压缩文件到node1主机指定目录上
![](http://7xqkk1.com1.z0.glb.clouddn.com/16-3-4/86534364.jpg)
1.7、解压hadoop压缩文件
![](http://7xqkk1.com1.z0.glb.clouddn.com/16-3-4/13089330.jpg)
2、在node1(NameNode)上配置/opt/modules/hadoop-2.5.1/etc/hadoop/目录下的hadoop-env.sh文件
export JAVA_HOME=/usr/java/jdk1.7.0_79 export HADOOP_PREFIX=/opt/modules/hadoop-2.5.1
![](http://7xqkk1.com1.z0.glb.clouddn.com/16-3-4/58292229.jpg)
3、在node1(NameNode)上配置/opt/modules/hadoop-2.5.1/etc/hadoop/目录下的core-site.xml文件
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://node1:9000</value> </property> <!-- 指定hadoop的临时目录 --> <property> <name>hadoop.tmp.dir</name> <value>/opt/modules/hadoop-2.5.1</value> </property> </configuration>
![](http://7xqkk1.com1.z0.glb.clouddn.com/16-3-4/57383643.jpg)
4、在node1(NameNode)上配置/opt/modules/hadoop-2.5.1/etc/hadoop/目录下的hdfs-site.sh文件
<configuration> <property> <name>dfs.namenode.secondary.http-address</name> <value>node5:50090</value> </property> <property> <name>dfs.namenode.secondary.https-address</name> <value>node5:50091</value> </property> </configuration>
![](http://7xqkk1.com1.z0.glb.clouddn.com/16-3-4/2876478.jpg)
5、在node1(NameNode)上配置/opt/modules/hadoop-2.5.1/etc/hadoop/目录下的slaves文件
slaves中配的是datanode的主机名 node2 node3 node5
![](http://7xqkk1.com1.z0.glb.clouddn.com/16-3-4/8542596.jpg)
6、在node1(NameNode)上配置/opt/modules/hadoop-2.5.1/etc/hadoop/目录下的masters文件
masters中配的是secondarynamenode的主机名 node5
![](http://7xqkk1.com1.z0.glb.clouddn.com/16-3-4/39023329.jpg)
6、配置hadoop的环境变量
[root@node1 ~]# vi ~/.bash_profile export HADOOP_HOME=/opt/modules/hadoop-2.5.1 export PATH=$PATH:$HADOOP_HOME/bin
![](http://7xqkk1.com1.z0.glb.clouddn.com/16-3-4/20290539.jpg)
6.1、将~目录下的.bash_profile配置环境变量的文件发送给node2、node3、node5
[root@node1 ~]# scp ~/.bash_profile root@node2:~/ [root@node1 ~]# scp ~/.bash_profile root@node3:~/ [root@node1 ~]# scp ~/.bash_profile root@node5:~/ 使配置文件生效 [root@node1 ~]# source ~/.bash_profile [root@node2 ~]# source ~/.bash_profile [root@node3 ~]# source ~/.bash_profile [root@node5 ~]# source ~/.bash_profile
7、将node1主机/opt/modules/hadoop-2.5.1目录下的内容发送给node2、node3、node5主机的/opt/modules/hadoop-2.5.1目录下
[root@node1 ~]# scp -r /opt/modules/hadoop-2.5.1 root@node2:/opt/modules/hadoop-2.5.1 [root@node1 ~]# scp -r /opt/modules/hadoop-2.5.1 root@node3:/opt/modules/hadoop-2.5.1 [root@node1 ~]# scp -r /opt/modules/hadoop-2.5.1 root@node5:/opt/modules/hadoop-2.5.1
8、在node1[192.168.230.10]主机下初始化namenode
[root@node1 hadoop-2.5.1]# ./bin/hdfs namenode -format
![](http://7xqkk1.com1.z0.glb.clouddn.com/16-3-4/31048772.jpg)
9、启动HDFS
[root@node1 hadoop-2.5.1]# ./sbin/start-dfs.sh
![](http://7xqkk1.com1.z0.glb.clouddn.com/16-3-4/31048772.jpg)
10、访问namenode的web监控
node1:50070 在地址栏访问NameNode的WebUI: http://192.168.230.10:50070/
![](http://7xqkk1.com1.z0.glb.clouddn.com/16-3-4/15650696.jpg)
11、访问secondarynamenode的web监控
node5:50090 在地址栏访问SecondaryNameNode的WebUI: http://192.168.230.14:50090/
![](http://7xqkk1.com1.z0.glb.clouddn.com/16-3-4/29709711.jpg)
相关文章推荐
- nginx虚拟主机配置
- Hadoop单机模式集群搭建
- popToRootViewControllerAnimated:(BOOL)animated
- Hadoop DistributedCache详解
- Opengl(三)——渲染出一个三角形
- docker在mac上配置并建立后台容器
- 每天一个linux命令(58):telnet命令
- Android架构:MVP模式实例
- linux内核分析学习笔记:操作系统的进程切换
- Linux内存寻址之分段机制及分页机制
- 每天一个linux命令(59):rcp命令
- Linux源代码分析工具链
- 每天一个linux命令(60):scp命令
- CentOS修改主机名
- 礼拜五log~采用网站地址的方法获取栏目id
- 图片裁剪 jcrop
- 每天一个linux命令(61):wget命令
- apache实现虚拟主机
- keepalived和nginx
- linux yum命令详解