1.准备工作
1.1 准备机器
准备若干台Linux的机器(1-n),物理机虚拟机均可
1.2 关闭selinux(每台机器)
sudo vim /etc/sysconfig/selinux
reboot
1.3 安装JDK(每台机器)
- 下载解压jdk
cd /software
tar -zxvf jdk-8u201-linux-x64.tar.gz
mv jdk1.8.0_201/ java
- 修改环境变量,在末尾添加如下内容
sudo vim /etc/profile
export JAVA_HOME=/software/java
export PATH="$JAVA_HOME/bin:$PATH"
source /etc/profile
- 验证(注意如果是openjdk版本的把openjdk版本的删除掉)
(base) [jupiter@centeros bin]$ java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)
2.搭建hadoop伪分布式(单节点)
2.1 下载并解压hadoop
cd /software
wget https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.3.1/hadoop-3.3.3.tar.gz
tar -xzvf hadoop-3.3.3.tar.gz
mv hadoop-3.3.3 hadoop
cd hadoop
- 配置相关环境变量
sudo vim /etc/profile
# 加入如下内容
#HADOOP_HOME
export HADOOP_HOME=/software/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
source /etc/profile
2.2 修改hadoop相关配置
主要需要配置四个文件,对应hadoop四大模块,均位于etc/hadoop
下面
hadoop四大模块
- common:
core-site.xml
common 及核心公共模块,默认配置(core-site.xml),主要包括Hadoop常用的工具类,由原来的Hadoopcore部分更名而来。
主要包括系统配置工具Configuration、远程过程调用RPC、序列化机制和Hadoop抽象文件系统FileSystem等。
它们为在通用硬件上搭建云计算环境提供基本的服务,并为运行在该平台上的软件开发提供了所需的API
- hdfs (hadoop distribute file system):
hdfs-site.xml
分布式文件系统,提供对应用程序数据的高吞吐量,高伸缩性,高容错性的访问。是Hadoop体系中数据存储管理的基础。它是一个高度容错的系统,能检测和应对硬件故障,用于在低成本的通用硬件上运行。通过流式数据访问,提供高吞吐量应用程序数据访问功能,适合带有大型数据集的应用程序。(namenode+datanode+secondarynode)
- mapreduce:
mapred-site.xml
mapreduce 是一种分而治之思想,是一种计算模型,用以进行大数据量的计算。Hadoop的MapReduce实现,和Common、HDFS一起,构成了Hadoop发展初期的三个组件。MapReduce将应用划分为Map和Reduce两个步骤,其中Map对数据集上的独立元素进行指定的操作,生成键-值对形式中间结果。mapreduce的运行流程 input->map->shuffle->reduce->output 。
input 数据输入文件分片,map负责就进数据处理,多个mapper之间并行处理,shuffle负责数据混淆分区、排序、拷贝、分组、压缩等操作,完成后将数据传给reduce进行处理,reduce负责对map阶段的数据进行汇总。
- yarn:
yarn-site.xml
Yarn是Hadoop集群的资源管理系统,由两部分功能组成资源管理和任务调度监控主要的组件,ResourceManager:Global(全局)的进程 ;
NodeManager:运行在每个节点上的进程,
ApplicationMaster:Application-specific(应用级别)的进程,向rm申请资源,对运行在datanode的应用进行监控;Scheduler:是ResourceManager的一个组件,
Container:节点上一组CPU和内存资源容器。
core-site.xml
<configuration>
<!-- 指定HDFS老大(namenode)的通信地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<!-- 指定hadoop运行时产生文件的存储路径 -->
<name>hadoop.tmp.dir</name>
<value>/software/hadoop/tmp</value>
</property>
</configuration>
hdfs-site.xml
<configuration>
<!--配置hdfs副本数量-->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
mapred-site.xml
<configuration>
<!-- 通知框架MR使用YARN -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
yarn-site.xml
<configuration>
<!-- 通知框架MR使用YARN -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
2.3 运行Hadoop
- 修改
etc/hadoop/hadoop-env.sh
export JAVA_HOME="/software/java"
- 初始化HDFS系统
hdfs namenode -format
- 启动hadoop
#先启动HDFS
sbin/start-dfs.sh
#再启动YARN
sbin/start-yarn.sh
- 查看进程信息
jps
(base) [jupiter@centeros hadoop]$ jps
32613 SecondaryNameNode
374 ResourceManager
903 Jps
521 NodeManager
32222 NameNode
- 4.验证
http://centeros.inat.top:9870/
:HDFS管理界面
http://centeros.inat.top:8088/
:MapReduce管理界面
评论 (0)