环境准备:
准备3台虚拟机(CentOS 7),一台 master,两台 slaver。master 作为NameNode、DataNode、ResourceManager、NodeManager,slave 均作为DataNode、NodeManager。
master:10.0.83.71
slave1: 10.0.83.72
slave2:10.0.83.73
在每台机器上执行:
关闭防火墙:
systemctl stop firewalld.service
systemctl disable firewalld.service
修改每个ip对应的主机名并修改hosts文件
vi /etc/hosts
10.0.83.71 node1
10.0.83.72 node2
10.0.83.73 node3
设置3台虚拟机互相免密登录
分别在71,72,73上执行:ssh-keygen -t rsa
分别在每台机器上执行copy to其他2个机器地址:
ssh-copy-id 10.0.83.71
ssh-copy-id 10.0.83.72
ssh-copy-id 10.0.83.73
创建数据存储和其他需要的目录
mkdir -p /data/hdfs/name
mkdir -p /data/hdfs/data
mkdir -p /data/hdfs/tmp
mkdir -p /opt/
同步时间:
yum -y install ntp
systemctl enable ntpd
systemctl start ntpd
timedatectl set-timezone Asia/Shanghai
timedatectl set-ntp yes
在master上执行:
cd /opt/
wget https://apache.mirrors.nublue.co.uk/hadoop/common/hadoop-3.1.4/hadoop-3.1.4.tar.gz
tar zxvf hadoop-3.1.4.tar.gz
mv hadoop-3.1.4 hadoop
scp -r hadoop root@node2:/opt/
scp -r hadoop root@node3:/opt/
为hadoop组件建立单独的用户组hadoop, 创建用户hdfs, yarn, mapred
groupadd hadoop
useradd hdfs -g hadoop
useradd yarn -g hadoop
useradd mapred -g hadoop
创建相关目录
数据存放目录
NameNode 数据存放目录: /data/hadoop/namenode
DataNode 数据存放目录: /data/hadoop/datanode
临时数据存放目录: /data/hadoop/tmp
HADOOP_MAPRED_HOME :
mkdir -p /data/hadoop/namenode
mkdir -p /data/hadoop/datanode
mkdir -p /data/hadoop/tmp
chown -R hdfs:hadoop /opt/hadoop
chown -R hdfs:hadoop /data/hadoop
新建日志目录
mkdir /var/log/hadoop
chown hdfs:hadoop /var/log/hadoop
chmod -R 770 /var/log/hadoop
新建pid目录
mkdir /var/run/hadoop
chown hdfs:hadoop /var/run/hadoop
chmod -R 770 /var/run/hadoop
source /etc/profile
3. 集群操作测试
3.1 启动集群
格式化namenode
su hdfs -c 'hdfs namenode -format'
2.启动namenode
su hdfs -c 'hdfs --daemon start namenode'
分别启动每个datanode结点
su hdfs -c 'hdfs --daemon start datanode'
启动resourcemanager
su yarn -c 'yarn --daemon start resourcemanager'
分别启动每个nodemanager节点
su yarn -c 'yarn --daemon start nodemanager'
启动historyserver
su mapred -c 'mr-jobhistory-daemon.sh start historyserver'
3.2 WebUI访问
HDFS UI http://10.0.83.71:50070/
![Hadoop3集群部署](https://i-blog.csdnimg.cn/blog_migrate/28cafe995f8ea397651bfd3bce4e62a8.png)
YARN UI http://10.0.83.71:8088/
![Hadoop3集群部署](https://i-blog.csdnimg.cn/blog_migrate/332e2f88c53b5e566b814c8d10a45521.png)
3.3 停止集群
1.停止namenode
su hdfs -c 'hdfs --daemon stop namenode'
停止datanode结点
su hdfs -c 'hdfs --daemon stop datanode'
停止resourcemanager
su yarn -c 'yarn --daemon stop resourcemanager'
停止nodemanager节点
su yarn -c 'yarn --daemon stop nodemanager'
停止historyserver
su mapred -c 'mr-jobhistory-daemon.sh stop historyserver'
3.4 其他操作指令
查看hdfs目录
su hdfs -c 'hdfs dfs -ls /'
新建hdfs目录
su hdfs -c 'hdfs dfs -mkdir PATH'
修改文件所有者
su hdfs -c 'hdfs dfs -chown OWNER:GROUP PATH'
修改文件权限
su hdfs -c 'hdfs dfs -chmod 644 PATH'
webhdfs 操作
curl -i "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=LISTSTATUS"
curl -i -X DELETE "http://<host>:<port>/webhdfs/v1/<path>?op=DELETE
[&recursive=<true |false>]"
curl -i -X PUT "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=CREATE
[&overwrite=<true |false>][&blocksize=<LONG>][&replication=<SHORT>]
[&permission=<OCTAL>][&buffersize=<INT>][&noredirect=<true|false>]"
curl -i -X PUT "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=SETOWNER
[&owner=<USER>][&group=<GROUP>]"
curl -i -X PUT "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=SETPERMISSION
[&permission=<OCTAL>]"