学习目标:
能够通过步骤提醒,完成 hadoop3.1.3 的伪分布式安装
安装前提准备:
- master,slave1,slave2 已经安装jdk,并配置好环境变量(/etc/profile)
- 三台虚拟机已经配置 ssh 免密登录(目的:集群的整体启停不需要输入密码)
- 准备好 hadoop-3.1.3.tar.gz 安装包在/opt/software目录下
集群规划:
主机 | 角色 |
master | nanenode datanode resourcemanager nodemanager |
slave1 | sencondarynamenode datanode nodemanager |
slave2 | datanode nodemanager |
安装正文部分:
(注:三台配置一样可以单独配,也可以配好master传到slave1,slave2)
1.解压安装包在/opt/module目录下(这里我是习惯将安装包放/opt/software目录下,将解压后的软件文件放/opt/module目录下)
tar -zxvf /opt/software/hadoop-3.1.3.tar.gz -C /opt/module/
2.改个名字因为方便一点,把后面版本号改掉
mv /opt/module/hadoop-3.1.3/ /opt/module/hadoop
3.配置系统环境变量
vim /etc/profile
4.设置几个配置文件
- core-site.xml
<property>
<name>hadoop.tmp.dir</name>
<value>file:/opt/module/hadoop/tmp</value>
<description>location to store temporary files</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
- hdfs-site.xml
<property>
<name>dfs.namenode.http-address</name>
<value>master:9870</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>slave1:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/tmp/dfs/data</value>
</property>
- yarn-site.xml
<property>
<name>yarn.resourcemanager.hostsname</name>
<value>master</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>106800</value>
</property>
<property>
<name>yarn.nodemanager.remote-app-log-dir</name>
<value>/user/hadoopcontainer/logs</value>
</property>
- mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>slave2:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>slave2:19888</value>
</property>
<property>
<name>mapreduce.jobhistory.intermediate-done-dir</name>
<value>${hadoop.tmp.dir}/mr-history/tmp</value>
</property>
<property>
<name>mapreduce.jobhistory.done-dir</name>
<value>${hadoop.tmp.dir}/mr-history/done</value>
</property>
- hadoop-env.sh
vim /opt/module/hadoop/etc/hadoop/hadoop-env.sh
# 修改这句代码
export JAVA_HOME=/opt/module/jdk1.8.0_152
- yarn-env.sh
vim /opt/module/hadoop/etc/hadoop/yan-env.sh
# 添加java路径进去
export JAVA_HOME=/opt/module/jdk1.8.0_152
- 配置workers文件
vim /opt/module/hadoop/etc/hadoop/workers
5.检查文件hadoop目录有没写入权限(没用用chmod命令添加),并格式化namenode只在master主节点上格式化(没有Error就成功了,有的话查看具体报错原因并找寻解决方法)
hdfs namenode -format
6. 启停集群
# 启动集群
start-all.sh
报错:
这是因为hadoop这个软件想到一些安全问题就会限制 root,而我们又没有定义,出现权限问题,解决方法:
vim /etc/profile
# 加入以下代码
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
# 刷新环境变量,刷新环境变量,刷新环境变量,这很!!!!!!!重要
source /etc/profile
启动成功,并查看各节点进程:
停止集群命令,并查看进程是否停止:
结束啦!!祝你好运