Linux搭建搭建Hadoop环境

jupiter
2022-06-17 / 0 评论 / 969 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2022年06月17日,已超过760天没有更新,若内容或图片失效,请留言反馈。

1.准备工作

1.1 准备机器

准备若干台Linux的机器(1-n),物理机虚拟机均可

1.2 关闭selinux(每台机器)

sudo vim /etc/sysconfig/selinux

image-20220616201831571

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四大模块

  1. common:core-site.xml

common 及核心公共模块,默认配置(core-site.xml),主要包括Hadoop常用的工具类,由原来的Hadoopcore部分更名而来。
主要包括系统配置工具Configuration、远程过程调用RPC、序列化机制和Hadoop抽象文件系统FileSystem等。
它们为在通用硬件上搭建云计算环境提供基本的服务,并为运行在该平台上的软件开发提供了所需的API

  1. hdfs (hadoop distribute file system):hdfs-site.xml

分布式文件系统,提供对应用程序数据的高吞吐量,高伸缩性,高容错性的访问。是Hadoop体系中数据存储管理的基础。它是一个高度容错的系统,能检测和应对硬件故障,用于在低成本的通用硬件上运行。通过流式数据访问,提供高吞吐量应用程序数据访问功能,适合带有大型数据集的应用程序。(namenode+datanode+secondarynode)

  1. 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阶段的数据进行汇总。

  1. 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管理界面

image-20220617135705920

http://centeros.inat.top:8088/:MapReduce管理界面

image-20220617141231029

3.搭建hadoop分布式(集群)

参考:https://github.com/AdamJupiter/BigData/blob/master/hadoop%E9%9B%86%E7%BE%A4%E6%90%AD%E5%BB%BA/hadoop2.0%E9%9B%86%E7%BE%A4%E6%90%AD%E5%BB%BA.md

参考资料

  1. centeros安装java8
  2. hadoop伪分布式环境搭建,完整的详细步骤
  3. Hadoop-单节点配置
  4. hadoop常用配置文件
  5. https://github.com/AdamJupiter/hadoop-guide
0

评论 (0)

打卡
取消