【大数据实验】01:Hadoop3伪分布部署

Hadoop3伪分布部署


OVERVIEW

  • Hadoop3伪分布部署
      • 实验环境:
      • Hadoop3环境搭建(本地模式)
          • 1.实验原理:
          • 2.实验步骤:
            • (1)安装JDK8
            • (2)安装Hadoop3
            • (3)在Hadoop3上执行MR程序
      • Hadoop3环境搭建(伪分布模式)
          • 1.实验原理:
          • 2.实验步骤
            • (1)安装JDK8
            • (2)配置SSH免密登录
            • (3)安装Hadoop3
            • (4)Hadoop伪分布式配置
            • (5)格式化文件系统
            • (6)在Hadoop集群上执行MapReduce程序
            • (7)实验记录

实验环境:

硬件:Ubuntu16.04

软件:JDK1.8、Hadoop3.3.0

数据存放路径:~/dataset

tar包路径:~/software

tar包压缩路径:~/bigdata

软件安装路径:/opt

实验设计创建文件:~/resource

Hadoop3环境搭建(本地模式)

1.实验原理:

Hadoop运行模式分为本地运行模式、伪分布运行模式、集群运行模式。

Hadoop3的本地模式,指的是Hadoop各组件程序都运行在同一个JVM上,不需要单独启动任何Hadoop进程。这种模式适宜用在开发阶段。

2.实验步骤:
(1)安装JDK8

Hadoop3的运行需要JDK8的支持,必须先安装JDK8环境

# 1.JDK安装包解压
tar -zxvf ./jdk-8u162-linux-x64.tar.gz -C /usr/lib/jvm/
# 2.配置环境变量
vim /etc/profile
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_162
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
source /etc/profile
# 3.测试JDK安装
java -version

在这里插入图片描述

(2)安装Hadoop3
# 1.Hadoop3安装包解压
tar -zxvf hadoop-3.1.3.tar.gz -C ~/bigdata/
mv hadoop-3.1.3 hadoop
# 2.配置环境变量
vim /etc/profile
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_162
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export HADOOP_HOME=/root/bigdata/hadoop
export PATH=${JAVA_HOME}/bin:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
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
# 3.测试Hadoop3安装
hadoop version

【大数据实验】01:Hadoop3伪分布部署_第1张图片

(3)在Hadoop3上执行MR程序
# 运行pi程序,先进入到程序示例.jar包所在的目录,然后运行MR程序
cd ~/bigdata/hadoop/share/hadoop/mapreduce
hadoop jar hadoop-mapreduce-examples-3.1.3.jar pi 10 20 #在输出内容中,可以找到计算出的PI值

【大数据实验】01:Hadoop3伪分布部署_第2张图片

Hadoop3环境搭建(伪分布模式)

掌握Hadoop3伪分布模式环境的搭建、文件配置和环境测试。

1.实验原理:

Hadoop的运行模式分为3种:本地运行模式,伪分布运行模式,集群运行模式。

伪分布模式是将守护程序运行在本地主机,模拟一个小规模集群。这里不但需要本地模式的操作过程,需要对配置文件进行配置

2.实验步骤
(1)安装JDK8
# 1.JDK安装包解压
tar -zxvf ./jdk-8u162-linux-x64.tar.gz -C /usr/lib/jvm/
# 2.配置环境变量
vim /etc/profile
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_162
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
source /etc/profile
# 3.测试JDK安装
java -version
(2)配置SSH免密登录

Hadoop在启动过程中是通过SSH远程操作的,所以在不做特殊配置下每次启动到相关节点时都要输入密码。

如果想避免每次都输入密码,需要设置免密登录。

# 1.生成密钥
rm -rf ~/.ssh #若设备已经提前配置需要先删除
ssh-keygen #在目录~/.ssh/下会生成两个文件:id rsa私钥、id_rsa.pub公钥
# 2.将公钥写入认证文件中,则下次登录可以实现免密登录
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

【大数据实验】01:Hadoop3伪分布部署_第3张图片

(3)安装Hadoop3
# 1.Hadoop3安装包解压
tar -zxvf hadoop-3.1.3.tar.gz -C ~/bigdata/
mv hadoop-3.1.3 hadoop
# 2.配置环境变量
vim /etc/profile
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_162
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export HADOOP_HOME=/root/bigdata/hadoop
export PATH=${JAVA_HOME}/bin:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
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
# 3.测试Hadoop3安装
hadoop version
(4)Hadoop伪分布式配置

Hadoop共需要配置5个文件(可选地配置workers文件)均位于Hadoop安装目录下的etc/hadoop/子目录下

cd ~/bigdata/hadoop/etc/hadoop
# 1.配置hadoop-env.sh文件
vim hadoop-env.sh #找到并修改JAVA_HOME属性的值
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_162

# 2.配置core-site.xml文件
vim core-site.xml
<configuration>
	<property>
		<name>fs.defaultFS</name>
		<value>hdfs://192.168.172.129:9000</value>
	</property>
	<property>
		<name>hadoop.tmp.dir</name>
		<value>file:/root/bigdata/hadoop/tmp</value>
	</property>
</configuration>

# 3.配置hdfs-site.xml文件
vim hdfs-site.xml
<configuration>
	<property>
		<name>dfs.namenode.name.dir</name>
		<value>file:/root/bigdata/hadoop/tmp/dfs/name</value>
		<description>为了保证元数据的安全一般配置多个不同目录</description>
	</property>
	<property>
		<name>dfs.datanode.data.dir</name>
		<value>file:/root/bigdata/hadoop/tmp/dfs/data</value>
		<description>datanode的数据存储目录</description>
	</property>
	<property>
		<name>dfs.replication</name>
		<value>1</value>
		<description>HDFS的数据块的副本存储个数,默认是3</description>
	</property>
	<property>
		<name>dfs.permissions.enabled</name>
		<value>false</value>
	</property>
</configuration>

# 4.配置mapred-site.xml文件
vim mapred-site.xml
<configuration>
	<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
	</property>
	<property>
		<name>mapreduce.application.classpath</name>
		<value>$HADOOP_HOME/share/hadoop/mapreduce/*:$HADOOP_HOME/share/hadoop/mapreduce/lib/*</value>
	</property>	
</configuration>

# 5.配置yarn-site.xml文件
vim yarn-site.xml
<configuration>
	<!-- Site specific YARN configuration properties -->
	<!-- 指定ResourceManager的地址-->
	<property>
		<name>yarn.resourcemanager.hostname</name>
		<value>192.168.172.129</value>
	</property>
	<!-- 指定reducer获取数据的方式-->
	<property>
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</value>
	</property>
	<property>
		<name>yarn.nodemanager.local-dirs</name>
		<value>file:/root/bigdata/hadoop/yarn/nm</value>
	</property>
</configuration>
(5)格式化文件系统

格式化HDFS(仅需执行格式化一次),在终端窗口执行下面的命令

cd ~/bigdata/hadoop/bin/
./hdfs namenode -format

如果因为某些原因需要从头重新配置集群,那么在重新格式化HDFS之前,先把Haoop下的tmp目录删除。

tmp目录是在hdfs-site.xml文件中自己指定的,其下有两个子目录name和data,重新格式化之前必须删除它们。

格式化namenode,实际上就是在namenode上创建一块命名空间。在创建过程中会加载所配置的文件,检验是否配置正确。

如何检验hdfs格式化是否成功?

(6)在Hadoop集群上执行MapReduce程序
# 1.修该配置文件/etc/profile
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_162
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export HADOOP_HOME=/root/bigdata/hadoop
export PATH=${JAVA_HOME}/bin:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

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

# 2.启动启动HDFS集群
cd ~/bigdata/hadoop/sbin
./start-dfs.sh
jps #使用jps命令查看当前节点上运行的服务
# 3.成功启动后,可以通过Web界面查看NameNode和Datanode信息和HDFS文件系统。NameNode Web接口:http://localhost:9870
# 4.启动yarn:
cd ~/bigdata/hadoop/sbin
./start-yarn.sh
jps
# 5.启动historyserver历史服务器和timelineserver时间线服务器
cd ../bin/
./mapred --daemon start historyserver
./yarn --daemon start timelineserver
# 6.运行pi程序,先进入到程序示例.jar包所在的目录,然后运行MR程序
cd ~/bigdata/hadoop/share/hadoop/mapreduce
hadoop jar hadoop-mapreduce-examples-3.1.3.jar pi 1 2 #在输出内容中,可以找到计算出的PI值
# 7.可以通过 Web 界面查看
打开浏览器,在地址栏输入:http://localhost:8088
查看任务进度:http://localhost:8088/cluster 
在 Web 界面点击 “Tracking UI” 这一列的 History 连接,可以看到任务的运行信息。
同样,URL中的cda是我的机器名,请替换为你自己的机器名。
# 8.关闭集群
cd ~/bigdata/hadoop/sbin
./stop-yarn.sh
./stop-dfs.sh
cd ../bin
./mapred --daemon stop historyserver
./yarn --daemon stop timeline
(7)实验记录

step2:首先启动HDFS集群,使用jps命令查看当前节点上运行的服务

【大数据实验】01:Hadoop3伪分布部署_第4张图片

step3:成功启动后,通过Web界面查看NameNode和Datanode信息和HDFS文件系统。NameNode Web接口:http://localhost:9870

【大数据实验】01:Hadoop3伪分布部署_第5张图片

【大数据实验】01:Hadoop3伪分布部署_第6张图片

【大数据实验】01:Hadoop3伪分布部署_第7张图片

step7:运行pi程序,先进入到程序示例.jar包所在的目录,然后运行MR程序

【大数据实验】01:Hadoop3伪分布部署_第8张图片

step8:在浏览器地址栏输入http://localhost:8088/cluster 查看任务进度:

【大数据实验】01:Hadoop3伪分布部署_第9张图片

【大数据实验】01:Hadoop3伪分布部署_第10张图片

你可能感兴趣的