一、环境准备
节点名称【主机名】IPmaster170.158.10.101slave1170.158.10.102slave2170.158.10.103
关闭防火墙
# 在root用户下执行
systemctl stop firewalld
systemctl disable firewalld.service
修改主机配置文件
vim /etc/hosts
# 添加以下内容
170.158.10.101 master
170.158.10.102 slave1
170.158.10.103 slave2
修改主机名
# 使用以下的命令
vim /etc/hostname
创建用户
# 2、创建用户,在root用户下
useradd hadoop
passwd hadoop
创建目录
cd /usr/local
# 存放安装好的软件
mkdir server
# 存放安装包
mkdir software
# 给server和software授权
chown -R hadoop:hadoop ./server
chown -R hadoop:hadoop ./software
# 其他两个节点做以上相同的操作
配置当前非root用户具有root的权限
# vim /etc/sudoers
# 在这%whell这一行下面添加hadoop
#Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
hadoop ALL=(ALL) NOPASSWD:ALL
ssh免密登录
# 在命令行输入,根据提示输入密码即可
ssh localhost
# 切换到~/.ssh目录下
cd ~/.ssh
# 输入以下命令,期间连续按三次回车
ssh-keygen -t rsa
# 分发密钥,期间在输入密码即可免密登录
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2
# 三个节点依次按照以上命令操作,再次输入ssh 相应的主机名,已经不需要密码登录master、slave1、slave2节点了
二、JDK的安装
卸载系统自带的JDK
# 查看系统自带的jdk
rpm -qa | grep jdk
# 卸载找到的jdk
yum -y remove 找到的jdk
# 或者使用以下的命令删除
rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps
# 安装jdk,安装包可以到官网进行下载
三、安装haddoop
下载hadoop-3.1.3
链接:Index of /dist/hadoop/core/hadoop-3.1.3http://archive.apache.org/dist/hadoop/core/hadoop-3.1.3/hadoop-3.1.3.tar.gzIndex of /dist/hadoop/core/hadoop-3.1.3
解压下载好的安装包
tar -zxvf hadoop-3.1.3/hadoop-3.1.3.tar.gz -C /usr/local
四、配置hadoop配置文件
core-site.xml
<configuration>
<!-- 指定NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:8020</value>
</property>
<!-- 指定hadoop数据的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop-3.1.3/data</value>
</property>
<!-- 配置HDFS网页登录使用的静态用户为hadoop -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>hadoop</value>
</property>
</configuration>
hdfs-site.xml
<configuration>
<!-- NameNode web端访问地址-->
<property>
<name>dfs.namenode.http-address</name>
<value>master:9870</value>
</property>
<!-- SecondNameNode web端访问地址-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9868</value>
</property>
</configuration>
mapred-site.xml
<configuration>
<!-- 指定MapReduce程序运行在Yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>slave1:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>salve1:19888</value>
</property>
</configuration>
yarn-site.xml
<configuration>
<!-- 指定MR走shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定ResourceManager的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>slave2</value>
</property>
<!-- 环境变量的继承 -->
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
<!-- 开启日志聚集功能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 设置日志聚集服务器地址 -->
<property>
<name>yarn.log.server.url</name>
<value>http://slave1:19888/jobhistory/logs</value>
</property>
<!-- 设置日志保留时间为7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
</configuration>
workers
master
slave1
slave2
五、将jdk、hadoop分发到slave1、slave2节点
scp -r /usr/local/server/jdk1.8.0_301 hadoop@slave1:/usr/local/server
scp -r /usr/local/server/jdk1.8.0_301 hadoop@slave2:/usr/local/server
scp -r /usr/local/server/hadoop-3.1.3 hadoop@slave1:/usr/local/server
scp -r /usr/local/server/hadoop-3.1.3 hadoop@slave2:/usr/local/server
六、hdfs格式化
# 切换到bin目录下
cd /usr/local/hadoop-3.1.3/bin
# 格式化namenode
./bin/hdfs namenode -format
七、环境变量配置
vim /etc/profile.d/my_env.sh
# 每台节点都添加以下内容
export JAVA_HOME=/usr/local/server/jdk1.8.0_301
export PATH=$PATH:$JAVA_HOME/bin
export HADOOP_HOME=/usr/local/server/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
八、集群启动
# master节点
start-dfs.sh
# slave1节点
mapred --daemon start historyserver
# slave2节点
start-yarn.sh
九、进程查看
# master节点有NameNode和SecondNameNode说明启动成功
# slave1和slave2有DataNode
# slave2有ResourceManager和NodeManager
十、WEB UI查看
# http://master:9870
# http://slave2:19888
版权归原作者 骑机车爱撩Java的富仔 所有, 如有侵权,请联系我们删除。