准备工作
服务器配置
服务器IP | 服务器内存 | 服务器磁盘 |
---|---|---|
192.168.135.128 | 1G | 55G |
192.168.135.129 | 1G | 55G |
192.168.135.130 | 1G | 55G |
192.168.135.131 | 1G | 55G |
集群组件分布
节点/功组件 | NN01 | NN02 | DN |
---|---|---|---|
Node01 | * | ||
Node02 | * | * | |
Node03 | * | ||
Node04 | * |
安装需要的组件包
CentOS-6.5-x86_64-minimal.iso
jdk-8u121-linux-x64.tar.gz
hadoop-2.6.5.tar.gz
zookeeper-3.4.6.tar.gz
配置JDK
将jdk压缩包移到 /usr/local/java目录下
执行命令:tar -zxvf jdk-8u121-linux-x64.tar.gz 解压jdk
配置环境变量,对/etc/profile 进行文件内容追加
配置环境变量
之后,执行命令:source /etc/profile 使得配置生效。
检验java安装成功
执行命令:java -version ,如下图,则为成功:
Java版本验证
关闭防火墙
永久性生效,重启后不会复原
开启: chkconfig iptables on
关闭: chkconfig iptables off
即时生效,重启后复原
开启: service iptables start
关闭: service iptables stop
关闭selinux
永久有效
修改/etc/sysconfig/selinux
将文本中的SELINUX=enforcing,改为SELINUX=disabled。然后重启 reboot
即时有效
setenforce 0
查看状态
getenforce, 如下图,则为关闭成功
Disabled
配置SSH免密
在每个节点上,运行ssh-keygen -t rsa,并一直回车,如下图:
rsa生成
把生成的密钥拷贝到指定节点上
执行命令:ssh-copy-id -i ~/.ssh/id_rsa.pub root@node02
验证ssh,在Node01 上
执行命令: ssh Node02,如下图,则为成功:
ssh
配置伪分布式
伪分布式只需要单台节点上部署,使用Node01即可。
解压hadoop
将hadoop包放到指定目录:/opt/hadoop/下,
执行命令:tar -zxvf hadoop-2.6.5.tar.gz
修改配置文件
进入到 /opt/hadoop/hadoop-2.6.5/etc/hadoop 下
修改.sh 文件
在所有*-env.sh 文件中,修改JDK配置,与/etc/profile 保持一致。
配置core-site.xml
在core-site.xml 中增加如下配置:
<property>
<name>fs.defaultFS</name>
<value>hdfs://Node01:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/var/hadoop/local</value>
</property>
配置hdfs-site.xml
在hdfs-site.xml中增加如下配置:
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>Node01:50090</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/var/hadoop/local/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/var/hadoop/local/dfs/data</value>
</property>
修改Slaves配置
修改Slaves,改成当前节点Host(Node01)
首次加载格式化NameNode
在/opt/hadoop/hadoop-2.6.5/bin 下,
执行命令:./hadoop namenode -format
执行效果如下:
format
启动hdfs
执行命令:./sbin/start-all.sh
验证集群
执行命令:jps,如下图,则为启动正常:
伪分布Jps
浏览器输入:192.168.135.128:50070,为web管理界面,如下:
web界面
简单命令
增加目录
./bin/hadoop dfs -mkdir -p /user/hadoop
./bin/hadoop dfs -mkdir /usr/
查看目录
./bin/hadoop dfs -ls /,如下:
dfs查看目录
web端查看hdfs目录
在导航栏"Utilities" -> Browse the file system,可以查看当前的目录,如下:
web查看目录
上传文件
./bin/hdfs dfs -D dfs.blocksize=1048 -put /root/test.text /user/hadoop (-D 代表限制block的大小)
put配置完全分布式
将伪分布式的hadoop包cp一份出来,用于搭建完全分布式,
执行命令:cp hadoop-2.6.5 hadoop-2.6.5-full
搭建完全分布式的包使用新的copy出来的包。
时钟同步
Date同步时钟
NTP同步时钟
ssh集群免密配置
根据伪分布式方式将Node01公钥传给其他节点上,保证Node01可以免密访问其余节点即可。
执行命令:ssh-copy-id -i ~/.ssh/id_rsa.pub root@node02
集群所有节点修改*.env.sh 中jdk 的路径
按照伪分布式的方法修改*.env.sh 中jdk路径即可。
修改hdfs-site.xml
重点修改路径为full,并且改副本数为2,sencondarynamenode 指定为Node02,代码如下:
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>Node02:50090</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/var/hadoop/full/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/var/hadoop/full/dfs/data</value>
</property>
修改core-site.xml
在伪分布式基础配置上,修改hadoop.tmp.dir,代码如下:
<property>
<name>fs.defaultFS</name>
<value>hdfs://Node01:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/var/hadoop/full</value>
</property>
修改slaves
slaves 为DataNode节点集合,改为Node02,Node03,Node04,如下:
Node02
Node03
Node04
文件同步
将Node01 配置好的节点文件,发送到其余节点(Node02,Node03,Node04)指定位置上。
执行命令:scp -r hadoop-2.6.5-full root@Node02:/opt/hadoop/
首次格式化
仅在Node01节点(NameNode)上进行,
执行命令:hdfs namenode -format (仅在第一次启动之前使用)
在主节点Node01上运行启动
执行命令:./sbin/start-dfs.sh
执行后,组件会在四台节点显示。
web端,可以看到3台DataNode,如下图:
DataNode
集群组件分布状态
目前完全分布式组件分布如下,
节点/功组件 | NN01 | NN02 | DN |
---|---|---|---|
Node01 | * | ||
Node02 | * | * | |
Node03 | * | ||
Node04 | * |
网友评论