接上文大数据上课笔记之Hadoop完全分布模式的安装配置——上
如有不懂,可以去看一下上一篇文章。
目录
2.1 、将master虚拟机上的hadoop分发到slave1虚拟机
2.2 、将master虚拟机上环境配置文件分发到slave1虚拟机
3.1、将master虚拟机上的hadoop分发到slave2虚拟机
3.2、将master虚拟机上环境配置文件分发到slave2虚拟机
一、Hadoop安装
1、下载Hadoop压缩包
- adoop是Apache基金会面向全球开源的产品之一,任何用户都可以从Apache Hadoop官网下载使用。本次学习Hadoop,我们使用目前的最新版 -
hadoop-3.3.4
下载网址:
https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gzhttps://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz
2、上传Hadoop压缩包到虚拟机
- 将Hadoop压缩包上传到master虚拟机
/opt
目录并使用命令:ll 查看
3、将Hadoop压缩包解压到指定目录
- 执行命令:
tar -xzvf hadoop-3.3.4.tar.gz -C /usr/local
- 查看解压之后的hadoop目录
- 在配置Hadoop时,常用的就是
bin
、etc
与sbin
三个目录
- 查看
bin
目录
- 查看
etc/hadoop
目录,主要是hadoop配置文件
- 查看
sbin
目录
4、配置Hadoop环境变量
- 执行命令:
vim /etc/profile
-
说明:hadoop 2.x用不着配置用户,只需要前两行即可
export HADOOP_HOME=/usr/local/hadoop-3.3.4
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
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
,让配置生效
5、验证Hadoop环境
- 执行命令:
hadoop version
,检查Hadoop安装是否成功
二、配置Hadoop集群
1、在master虚拟机上配置hadoop
- 执行命令:
cd $HADOOP_HOME/etc/hadoop
,进入hadoop配置目录
- 执行命令:
vim hadoop-env.sh
,添加三条环境变量配置
export JAVA_HOME=/usr/local/jdk1.8.0_341
export HADOOP_HOME=/usr/local/hadoop-3.3.4
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
- 存盘退出后,执行命令
source hadoop-env.sh
,让配置生效
- 查看三个配置的三个环境变量
1.1、编辑Hadoop核心配置文件
- 执行命令:
vim core-site.xml
<configuration>
<!--用来指定hdfs的老大-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<!--用来指定hadoop运行时产生文件的存放目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop-3.3.4/tmp</value>
</property>
</configuration>
- 由于配置了IP地址主机名映射,因此配置HDFS老大节点可用
hdfs://master:9000
,否则必须用IP地址hdfs://192.168.1.101:9000
使用命令:cat /etc/hosts
1.2、编辑HDFS配置文件
- 执行命令:
vim hdfs-site.xml
- 可以不用设置名称节点的目录、数据节点的目录以及辅助名称节点
<configuration>
<!--设置名称节点的目录-->
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/hadoop-3.3.4/tmp/namenode</value>
</property>
<!--设置数据节点的目录-->
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/hadoop-3.3.4/tmp/datanode</value>
</property>
<!--设置辅助名称节点-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:50090</value>
</property>
<!--hdfs web的地址,默认为9870,可不配置-->
<!--注意如果使用hadoop2,默认为50070-->
<property>
<name>dfs.namenode.http-address</name>
<value>0.0.0.0:9870</value>
</property>
<!--副本数,默认为3,可不配置-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!--是否启用hdfs权限,当值为false时,代表关闭-->
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
</configuration>
1.3、编辑MapReduce配置文件
- 执行命令:
vim mapred-site.xml
<configuration>
<!--配置MR资源调度框架YARN-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
</configuration>
- 后三个属性如果不设置,在运行Hadoop自带示例的词频统计时,会报错:
Error: Could not find or load main class org.apache.hadoop.mapreduce.v2.app.MRAppMaster
1.4、编辑yarn配置文件
- 执行命令:
vim yarn-site.xml
<configuration>
<!--配置资源管理器:集群master-->
<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.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
</configuration>
1.5、编辑workers文件确定数据节点
-
hadoop-2.x里配置
slaves
文件,hadoop-3.x里配置workers
文件 -
通过workers文件定义数据节点,根据集群规划,三个节点都要作为数据节点
-
执行命令:
vim workers
2、在slave1虚拟机上安装配置hadoop
2.1 、将master虚拟机上的hadoop分发到slave1虚拟机
- 执行命令:
scp -r $HADOOP_HOME root@slave1:$HADOOP_HOME
- 在slave1虚拟机上查看分发的hadoop
2.2 、将master虚拟机上环境配置文件分发到slave1虚拟机
- 命令:
scp /etc/profile root@slave1:/etc/profile
2.3、在slave1虚拟机上让环境配置生效
切换到slave1虚拟机上,并执行命令:source /etc/profile
3、在slave2虚拟机上安装配置hadoop
3.1、将master虚拟机上的hadoop分发到slave2虚拟机
- 命令:
scp -r $HADOOP_HOME root@slave2:$HADOOP_HOME
- 在slave2虚拟机上查看分发的hadoop
3.2、将master虚拟机上环境配置文件分发到slave2虚拟机
- 命令:
scp /etc/profile root@slave2:/etc/profile
3.3、在slave2虚拟机上让环境配置生效
三、课后复习
- 回去后多看多练,特别要注意配置文件里的内容不要配置错误了