Hadoop安装部署
Hadoop安装部署
一、虚拟机配置
1、创建3台虚拟机:master、node1、node2
2、关闭防火墙
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
查看防火墙状态
firewall-cmd --state
systemctl status firewalld.service
启动防火墙
systemctl start firewalld.service
3、修改主机名
vim /etc/hostname
#3台虚拟机分别改为master,node1,node2
#查看主机名
hostnamectl status
4修改ip地址
vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static" ---改这个 改成statics
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="46bc9724-c761-4058-8cd7-97a675b41294"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.65.100" ---前3位根据自己的IP来配,后一位master,node1,node2分别为100,101,102
PREFIX="24"
GATEWAY="192.168.220.2"
DNS1="114.114.114.114"
IPV6_PRIVACY="no"
保存退出
#2、关闭NetworkManager,并取消开机自启
systemctl stop NetworkManager
systemctl disable NetworkManager
systemctl status NetworkManager
#3、重启网络服务
systemctl restart network
5、配置映射文件
vim /etc/hosts
192.168.65.100 master
192.168.65.101 node1
192.168.65.102 node2
6、配置免密
# 1、生成密钥
ssh-keygen -t rsa
# 2、配置免密登录
ssh-copy-id master
ssh-copy-id node1
ssh-copy-id node2
#每一台虚拟机都要重复以上步骤!!!!!
# 3、测试免密登录
ssh node1
7、给每台机器安装Java环境
#1、创建soft/package文件夹,将来package表示存放安装包以及解压目录
mkdir -p /usr/local/soft/package
#2、卸载自带jdk
rpm -qa |grep jdk ---查看自带jdk
rpm -e 自带jdk名称 --nodeps ---卸载
#3、上传jar包到package目录
#4、解压
tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local/soft/
配置环境变量
vim /etc/profile
# 插入以下内容
export JAVA_HOME=/usr/local/soft/jdk1.8.0_171
export PATH=.:$PATH:$JAVA_HOME/bin
#保存退出
#让shell脚本生效
source /etc/profile
8、将jdk与环境变量配置文件分发给node1,node2
cd /usr/local/soft/
scp -r /usr/local/soft/jdk1.8.0_171 node1:`pwd`
scp -r /usr/local/soft/jdk1.8.0_171 node2:`pwd`
scp -r /etc/profile node2:/etc/profile
二、搭建Hadoop集群
NameNode:接受客户端的读/写服务,收集 DataNode 汇报的
Block 列表信息
DataNode:真实数据存储的地方(block)
SecondaryNameNode:做持久化的时候用到
进程 | master(主) | node1(从) | node2(从) |
---|---|---|---|
NameNode | √ | ||
SecondaryNameNode | √ | ||
ResourceManager | √ | ||
DataNode | √ | √ | |
NodeManager | √ | √ |
1、上传解压配置环境变量
# 1、解压
tar -xvf hadoop-3.1.2.tar.gz.gz
# 2、配置环境变量
vim /etc/profile
# 3、在最后增加配置
export HADOOP_HOME=/usr/local/soft/hadoop-3.1.2
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
# 4、使环境变量剩下
source /etc/profile
2、修改配置文件
# 1、进入hadoop配置文件所在位置,修改hadoop配置文件
cd /usr/local/soft/hadoop-3.1.2/etc/hadoop
# 2、修改core-site.xml配置文件,在configuration中间增加配置
vim core-site.xml
# 增加配置
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/soft/hadoop-3.1.2/tmp</value>
</property>
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
</configuration>
# 3、修改hdfs-site.xml配置文件,在configuration中间增加配置
vim hdfs-site.xml
# 增加配置
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
# 4、修改yarn-site.xml配置文件,在configuration中间增加配置
vim yarn-site.xml
# 增加配置
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
> mapreduce.framework.name:用于执行MapReduce作业的运行时框架。
> mapreduce.jobhistory.address:Hadoop自带了一个历史服务器,可以通过历史服务器查看已经运行完的Mapreduce作业记录,比如用了多少个Map、用了多少个Reduce、作业提交时间、作业启动时间、作业完成时间等信息。默认情况下,Hadoop历史服务器是没有启动的,我们可以通过*mr-**jobhistory-daemon.sh start historyserver**命令来启动Hadoop历史服务器。我们可以通过Hadoop jar的命令来实现我们的程序jar包的运行,关于运行的日志,我们一般都需要通过启动一个服务来进行查看,就是我们的JobHistoryServer,我们可以启动一个进程,专门用于查看我们的任务提交的日志。mapreduce.jobhistory.address和mapreduce.jobhistory.webapp.address默认的值分别是0.0.0.0:10020和0.0.0.0:19888
vim mapred-site.xml
# 2、修改
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
# 5、修改hadoop-env.sh配置文件
vim hadoop-env.sh
# 增加配置
export JAVA_HOME=/usr/local/soft/jdk1.8.0_171
# 6、修改hadoop-env.sh配置文件
vim workers
# 增加配置
node1
node2
3、修改hadoop-env.sh的文件(推荐)
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
4、将hadoop文件夹分发到子节点中
cd /usr/local/soft/
scp -r hadoop-3.1.2 node1:`pwd`
scp -r hadoop-3.1.2 node2:`pwd`
5、初始化hdfs
# 初始化
hdfs namenode -format
6、启动hadoop
# 启动hadoop
start-all.sh
# 停止hadoop
stop-all.sh
# hdfs web ui
http://master:9870
# yarn web ui
http://master:8088