相关配置版本
组件 | 版本 | 提取码 |
---|---|---|
Hadoop | 2.9.2 | qtf9 |
jdk | 1.8.0_221 | yjwt |
centOS | 7.0 | bodr |
环境准备
1. 修改机器名称
机器名称映射
master: 192.168.5.139
slave1: 192.168.5.143
slave2: 192.168.5.145
修改机器名文件:vi /etc/hostname
执行:hostname 机器名
检查:hostname
2. 修改master的 hostname 与 ip 的映射
修改的文件:vi /etc/hosts
192.168.5.139 master
192.168.5.143 slave1
192.168.5.145 slave2
master 修改完成,把 hosts 发送到slave1、slave1节点
for i in {1..2};do scp /etc/hosts root@slave${i}:/etc;done
- 角色分配
机器名称 | 节点 | 节点 |
---|---|---|
master | DataNode / NameNode | NodeManager / ResourceManager |
slave1 | DataNode | NodeManager |
slave2 | DataNode | NodeManager |
前置配置
1. ssh免密码登录
每台机器执行:
ssh-keygen -t rsa
- 把 master 节点上的
authorized_keys
钥发送到其他节点
master 执行命令,生成 authorized_keys 文件:
ssh-copy-id -i /root/.ssh/id_rsa.pub master
把 authorized_keys 发送到 slave1 slave2 节点上
scp /root/.ssh/authorized_keys root@slave1:/root/.ssh/
scp /root/.ssh/authorized_keys root@slave2:/root/.ssh/
- 在 master 节点测试免密码登录 slave1、slave2
命令:ssh 机器名
2. 配置 master 的 jdk,后面与 hadoop 一起发送到 其他节点
Hadoop 集群的搭建
解压Hadoop安装包,配置环境变量
- 解压hadoop安装包到
/usr/local/src/hadoop
目录下,并配置HADOOP_HOME
到环境变量
修改配置文件
进入 hadoop
的hadoop-2.9.2/etc/hadoop
目录下
1. 修改 hadoop-env.sh 文件
第一处 # The java implementation to use. # export JAVA_HOME=${JAVA_HOME} (注释掉) export JAVA_HOME=/usr/local/src/jdk1.8.0_221 (添加上) 第二处 # export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-"/etc/hadoop"} (注释) export HADOOP_CONF_DIR=/usr/local/src/hadoop-2.9.2/etc/hadoop (添加上) 修改完记得 source hadoop-env.sh
2. 修改 core-site.xml 文件
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <!--临时目录--> <property> <name>hadoop.tmp.dir</name> <value>/usr/local/src/hadoop-2.9.2/tmp</value> </property> </configuration>
3. 修改 hdfs-site.xml 文件
- 添加到 hdfs-site.xml 文件
<configuration> <!--block 块的复制数量--> <property> <name>dfs.replication</name> <value>3</value> </property> <!-- namenode 的 http协议 地址和端口--> <property> <name>dfs.namenode.secondary.http-address</name> <value>master:50090</value> </property> <!-- namenode 的 https协议 地址和端口--> <property> <name>dfs.namenode.secondary.https-address</name> <value>master:50091</value> </property> </configuration>
4. 修改 yarn-site.xml 文件
<configuration> <!-- 用于存储本地化文件的目录列表 --> <!-- 创建目录 mkdir -p /usr/local/src/nm/localdir --> <property> <name>yarn.nodemanager.local-dirs</name> <value>/usr/local/src/nm/localdir</value> </property> <!-- reducer 获取数据的方式 --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!-- 指定 yarn 的 resourcemanager 的地址 --> <property> <name>yarn.resourcemanager.hostname</name> <value>node1</value> </property> <!-- 忽略虚拟内存的检查 虚拟机上设置有很大用处 --> <property> <name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value> <description>Whether virtual memory limits will be enforced for containers</description> </property> <!-- yarn 分配的内存大小 --> <property> <name>yarn.nodemanager.resource.memory-mb</name> <value>3276</value> </property> <!-- 每台机器最大分配内存,超过 报异常 --> <property> <name>yarn.scheduler.maximum-allocation-mb</name> <value>3276</value> </property> <!-- yarn 分配的 CPU 个数 --> <property> <name>yarn.nodemanager.resource.cpu-vcores</name> <value>4</value> </property> <!-- 每台机器最大分配CPU个数,超过 报异常 --> <property> <name>yarn.scheduler.maximum-allocation-vcores</name> <value>4</value> </property> </configuration>
5. 修改 mapred-site.xml 文件
- 首先拷贝一份:
cp mapred-site.xml.template mapred-site.xml
<configuration> <!-- mapreduce 运行时的框架,可以是 local, classic or yarn --> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <!-- mapreduce 历史任务的地址端口 --> <property> <name>mapreduce.jobhistory.address</name> <value>master:10020</value> </property> <!-- MapReduce JobHistory 服务器 Web UI 主机:端口 --> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>master:19888</value> </property> </configuration>
6. 修改 slaves 文件
- 这个文件就是规定
从节点运行
的机器
删除原本的 localhost
添加上
master
slave1
slave2
分发配置文件到 slave1,slave2
把 hadoop 、 java 分发到 slave1 、 slave2
scp -r /usr/local/src/ root@slave1:/usr/local/
scp -r /usr/local/src/ root@slave2:/usr/local/
把 环境变量 文件分发到 slave1、slave2
scp /etc/profile root@slave1:/etc/
scp /etc/profile root@slave2:/etc/
分发完记得去 slave1、slave2 source /etc/profile
启动 Hadoop 集群
1.格式化 namenode 节点
只需要在 master 机器上执行就好 hdfs namenode -format
2. 启动集群:在master上执行 start-all.sh
验证
jps 验证
master | slave1 | slave2 |
---|---|---|
Jps | Jps | Jps |
NodeManager | NodeManager | NodeManager |
DataNode | DataNode | DataNode |
NameNode | ||
SecondaryNameNode | ||
ResourceManager |
网页端验证
- 关闭防火墙
systemctl stop firewalld.service
master机器IP:50070
master机器IP:8088
版权声明:《 hadoop 2.9.2 完全分布式搭建 》为明妃原创文章,转载请注明出处!
最后编辑:2019-9-24 01:09:15