1分布式集群规划
ip | 131 | 132 | 133 |
---|---|---|---|
name | namenode.hay.com | worker1.hay.com | worker2.hay.com |
HDFS | NameNode | DataNode | DataNode SecondaryNamenode |
YARN | ResourceManager | NodeManager | NodeManager |
MR | JobHistoryServer |
2 配置
2.1 机器hostname及IP,以机器131为例
- 关闭防火墙
sudo systemctl stop firewalld.service
- 修改hostname,编辑 /etc/hostname
namenode.hay.com
- 修改IP,编辑 /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=namenode.hay.com
GATEWAY=192.168.176.2
编辑 /etc/sysconfig/network-scripts/ifcfg-ens33
#BOOTPROTO=dhcp
IPADDR=192.168.176.131
DNS1=192.168.176.2
其他两台机器按照上面步骤配置
- 主机名与IP地址映射,编辑 /etc/hosts
192.168.176.131 namenode.hay.com namenode
192.168.176.132 worker1.hay.com worker1
192.168.176.133 worker2.hay.com worker2
2.2 hadoop配置
- 配置namenode,编辑 etc/hadoop/core-site.xml
hadoop.tmp.dir
/opt/module/hadoop-3.1.2/data/tmp/hadoop-${user.name}
A base for other temporary directories.
fs.defaultFS
hdfs://namenode.hay.com:8020
- 配置secondarynamenode,编辑 etc/hadoop/hdfs-site.xml
dfs.replication
1
dfs.namenode.secondary.http-address
worker2.hay.com:9868
dfs.permissions.enabled
true
- 配置datanode和NodeManager, 编辑 etc/hadoop/workers
worker1.hay.com
worker2.hay.com
- 配置ResourceManager,编辑 etc/yarn-site.xml
yarn.resourcemanager.hostname
namenode.hay.com
yarn.log-aggregation-enable
true
yarn.log-aggregation.retain-seconds
604800
- 配置JobHistoryServer,编辑 etc/mapred-site.xml
mapreduce.framework.name
yarn
mapreduce.jobhistory.address
namenode.hay.com:10020
mapreduce.jobhistory.webapp.address
namenode.hay.com:19888
- 复制配置到另外两台机器
scp -rp etc/hadoop/* [email protected]:/opt/module/hadoop-3.1.2/etc/hadoop/
scp -rp etc/hadoop/* [email protected]:/opt/module/hadoop-3.1.2/etc/hadoop/
- 格式化namenode
bin/hdfs namenode -format
2.3 启动HDFS组件
方法一:
在namenode主机启动namenode
bin/hdfs --daemon start namenode
在各个worker主机启动datanode
bin/hdfs --daemon start datanode
在worker2主机启动secondarynamenode
bin/hdfs --daemon start secondarynamenode
方法二:
- 配置ssh无密登陆
在namenode主机中执行
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
按Enter默认选项,生成公私钥对。
- 复制公钥到各个主机,包括当前主机
ssh-copy-id -i ~/.ssh/id_rsa.pub hay@主机名
- 启动所有主机上hdfs组件,在namenode主机上执行
sbin/start-dfs.sh
- 查看namenode状态
http://namenode.hay.com:9870
2.4 启动yarn组件
方法一:
- 在namenode上启动ResourceManager
bin/yarn --daemon start resourcemanager
- 在各个worker主机上启动nodemanager
bin/yarn --daemon start nodemanager
方法二:
在namenode配置ssh无密登陆,包括当前主机
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub hay@主机名
在配置了workers和ssh免密登陆的情况下,在namenode主机使用启动yarn组件
sbin/start-yarn.sh
- web UI
http://namenode.hay.com:8088
2.5 启动historyserver
- 在namenode主机上启动JobHistoryServer
bin/mapred --daemon start historyserver
- web UI
http://namenode.hay.com:19888
3 运行实例
3.1 在HDFS上创建用户
bin/hdfs dfs -mkdir -p /user/hay
3.2 输入文件
bin/hdfs dfs -mkdir -p mr/test1
bin/hdfs dfs -put etc/hadoop/ mr/test1/input
3.3 运行
bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.2.jar grep mr/test1/input mr/test1/output 'dfs[ a-z.]+'
4 关闭
4.1 关闭mapred
bin/mapred --daemon stop historyserver
4.2关闭yarn
方法一
- 在worker1上关闭resourcemanager
bin/yarn --daemon stop resourcemanager
- 在各个worker上关闭nodemanager
bin/yarn --daemon stop nodemanager
方法二
在配置了worker和ssh免密登陆后,在worker1执行
sbin/stop-yarn.sh
即可关闭所有的nodemanager和resourcemanager
4.3关闭HDFS
方法一
- 关闭namenode
bin/hdfs --daemon stop namenode
- 在各个worker上关闭datanode
bin/hdfs --daemon stop datanode
方法二
在配置了worker和ssh免密登陆后,在namenode主机上执行
sbin/stop-dfs.sh