搭建完全分布式
1.什么是完全分布式?
将各个角色的进程在不同的节点启动
2.步骤
(1)划分角色 node01:Namenode
node02:SecondaryNamenode,DataNode
node03:DataNode
node04:DataNode
(2)时间同步
①各个节点安装ntp命令 yum install ntp
②上网查找最新的时间服务器 如:ntp1.aliyun.com
③同步时间ntpdate ntp1.aliyun.com
(3)配置免密登录
要实现这些节点之间的免密
node01->node01 node01->node02 node01->node03 node01->node04
①所有节点执行 ssh-keygen -t rsa -P ‘’ -f ~/.ssh/id_rsa
②在node01节点执行,将node01的公钥加入到其他节点的白名单中
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node01
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node02
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node03
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node04
(4)所有节点配置JDK
在/etc/profile文件中最后添加
①export JAVA_HOME=/opt/software/jdk/jdk1.8.0_151
②export PATH=
P
A
T
H
:
PATH:
PATH:JAVA_HOME/bin
(5)所有节点配置hadoop的环境变量
在/etc/profile文件中最后添加
export HADOOP_HOME=/opt/software/hadoop-2.6.5
export PATH=
P
A
T
H
:
PATH:
PATH:HADOOP_HOME/bin
修改完之后要执行 source /etc/profile
(6)修改hdfs-site.xml配置文件
dfs.replication
3
dfs.namenode.secondary.http-address
node02:50090
(7)修改core-site.xml配置文件
fs.defaultFS
hdfs://node01:9000
hadoop.tmp.dir
/var/abc/hadoop/cluster
(8)修改slaves配置文件
修改为
node02
node03
node04
注意:不要将三个节点写在一行,要一行一个,不然解析不了
(9)将配置好的安装包分发到其他节点上
scp -r hadoop-2.6.5 root@node02:/opt/software/hadoop/
(10)将所有的HDFS相关的进程关闭
(11)格式化NameNode(创建目录以及文件)
在node01节点执行 hdfs namenode -format
(12)启动HDFS
start-dfs.sh
3.遇到的问题
(1)JAVA_HOME有问题
解决办法:将/opt/software/hadoop/hadoop-2.6.5/etc/hadoop/hadoop-env.sh文件中
JAVA_HOME修改成/opt/software/jdk/jdk1.8.0
(2)hdfs命令不能用
解决办法:在.bashrc文件中添加 PATH=$PATH:/opt/software/hadoop/hadoop-2.6.5/sbin/
(3)所有节点的防火墙要关闭
(4)在格式化之前必须关闭所有节点的进程,如果在启动时遇到了问题,需要重新格式化时,要先将格式化生成的文件
删除
4.HDFS操作
(1)上传文件
hdfs dfs -put src… dest 可以同时上传多个文件
hdfs dfs -copyFromLocal src… dest 和put效果一样
hdfs dfs -moveFromLocal src… dest 将本地文件移动到HDFS中
(2)创建新目录
hdfs dfs -mkdir
级联创建 hdfs dfs -mkdir -p
(3)在文件中追加信息
hdfs dfs -appendToFile src… dest
(4)查看文件内容
hdfs dfs -cat
(5)更改文件的属组
hdfs dfs -chgrp grop /test
递归修改加-R
(6)更改文件的权限
hdfs dfs -chmod -R 777 /test
(7)更改文件的属主和属组
hdfs dfs -chown -R 属主:属组 /test
(8)将HDFS上的文件复制到本地
hdfs dfs -copyToLocal
(9)查看文件系统的磁盘空间
hdfs dfs -df -h /test