Hadoop完全分布式搭建
1.环境准备
1.1准备三台客户机
1)关闭防火墙
查看防火墙状态
- systemctl status firewalld.service
关闭防火墙并关闭防火墙开机自启
2)设置静态ip
- vim /etc/sysconfig/network-scripts/ifcfg-ens33
- TYPE="Ethernet"
- PROXY_METHOD="none"
- BROWSER_ONLY="no"
- BOOTPROTO="static" #设置为静态ip
- DEFROUTE="yes"
- IPV4_FAILURE_FATAL="no"
- IPV6INIT="yes"
- IPV6_AUTOCONF="yes"
- IPV6_DEFROUTE="yes"
- IPV6_FAILURE_FATAL="no"
- IPV6_ADDR_GEN_MODE="stable-privacy"
- NAME="ens33"
- UUID="bbc612ba-5365-42a5-9794-38baddacc898"
- DEVICE="ens33"
- ONBOOT="yes"
- #IP 地址
- IPADDR=192.168.44.101
- #网关
- GATEWAY=192.168.44.2
- #域名解析器
- DNS1=192.168.44.2
3)配置主机与主机间的映射关系
- vim /etc/hosts
1.2安装JDK
1)卸载现有JDK
- 查询是否安装java软件
- rpm -qa | grep jdk
- 卸载JDK
- rpm -e --nodeps java-1.8.0-openjdk-1.8.0.322.b06-1.el7_9.x86_64
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.322.b06-1.el7_9.x86_64
2)安装JDK
- 将已下载的JDK包拖入/opt/software目录下
- 将导入的JDK解压到/opt/module目录下
- tar -zxvf jdk-8u144-linux-x64.tar.gz -C /opt/module/
- 配置环境变量,在profile文件末尾添加JDK路径
- vim /etc/profile
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin
- 让文件生效
- source /etc/profile
- 查看JDK是否安装成功(控制台输出java version “1.8.0_144″则安装成功)
- java -version
1.3设置ssh免密登录
1.4安装Hadoop
1)Hadoop下载地址
https://archive.apache.org/dist/hadoop/common/hadoop-2.7.2/
2)将安装包放入/opt/software目录下
3)解压安装包到/opt/module目录下
- tar -zxvf hadoop-2.7.2.tar.gz -C /opt/module/
4)将Hadoop添加到环境变量
- vim /etc/profile
将以下内容添加到文件末尾
- #HADOOP_HOME
- export HADOOP_HOME=/opt/module/hadoop-2.7.2
- export PATH=$PATH:$HADOOP_HOME/bin
- export PATH=$PATH:$HADOOP_HOME/sbin
让文件生效
- source /etc/profile
5)查看是否安装成功
- hadoop version
2.集群配置
2.1 集群部署规划
2.2 配置集群(进入到Hadoop安装目录下的/etc/hadoop/)
1)核心配置文件
配置core-site.xml
- vim core-site.xml
在文件中编写如下配置
- <!-- 指定HDFS中NameNode的地址 -->
- <property>
- <name>fs.defaultFS</name>
- <value>hdfs://hadoop102:9000</value>
- </property>
- <!-- 指定Hadoop运行时产生文件的存储目录 -->
- <property>
- <name>hadoop.tmp.dir</name>
- <value>/opt/module/hadoop-2.7.2/data/tmp</value>
- </property>
2)HDFS配置文件
配置hdfs-site.xml
- vim hdfs-site.xml
在文件中编写如下配置
- <!-- 指定Hadoop辅助名称节点主机配置 -->
- <property>
- <name>dfs.namenode.secondary.http-address</name>
- <value>hadoop104:50090</value>
- </property>
3)YARN配置文件
配置yarn-site.xml
- vim yarn-site.xml
在文件中编写如下配置
- <!-- Reducer获取数据的方式 -->
- <property>
- <name>yarn.nodemanager.aux-services</name>
- <value>mapreduce_shuffle</value>
- </property>
- <!-- 指定YARN的ResourceManager的地址 -->
- <property>
- <name>yarn.resourcemanager.hostname</name>
- <value>hadoop103</value>
- </property>
4)MapReduce配置文件
配置mapred-site.xml
- vim mapred-site.xml
在文件中编写如下配置
- <!-- 指定MR运行在Yarn上 -->
- <property>
- <name>mapreduce.framework.name</name>
- <value>yarn</value>
- </property>
5)配置slaves
- vim slaves
在文件中增加如下内容:
注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行。
- hadoop102
- hadoop103
- hadoop104
2.3 分发配置文件
- xsync /opt/module/hadoop-2.7.2/
3.集群启动
- 集群第一次启动需要格式化NameNode
- hadoop namenode -format
- 集群启动
- 在namenode节点主机上启动hdfs
start-dfs.sh
在ResourceManager节点主机上启动yarn
start-yarn.sh
- 查看是否成功启动
- [root@hadoop102 hadoop-2.7.2]$ jps
- 4166 NameNode
- 4482 Jps
- 4263 DataNode
4520 NodeManager
- [root@hadoop103 hadoop-2.7.2]$ jps
- 3218 DataNode
- 3288 Jps
3674 ResourceManager
3567 NodeManager
- [root@hadoop104 hadoop-2.7.2]$ jps
- 3221 DataNode
- 3283 SecondaryNameNode
- 3364 Jps
3258 NodeManager
- web端查看
浏览器中输入:http://hadoop102:50070