文章目录

  • 前言
  • 一、Hadoop是什么?
  • 二、使用步骤
  • 1.所需环境及软件
  • 2.测试集群服务器规划
  • 3.前置软件安装或者准备工作
  • 4.安装Hadoop
  • 总结



前言

`最近大数据又兴起了,我们公司也入了大数据的项目,大数据这玩意范围广,涉及到的知识也不局限一个方面,国内的大数据平台,基本上都是基于Hadoop的这框架而衍生来的,所以Hadoop是基础


提示:以下是本篇文章正文内容,下面案例可供参考

一、Hadoop是什么?

Hadoop是由java语言编写的,在分布式服务器集群上存储海量数据并运行分布式分析应用的开源框架,其核心部件是HDFS与MapReduce。

HDFS是一个分布式文件系统:引入存放文件元数据信息的服务器Namenode和实际存放数据的服务器Datanode,对数据进行分布式储存和读取。  

MapReduce是一个计算框架:MapReduce的核心思想是把计算任务分配给集群内的服务器里执行。通过对计算任务的拆分(Map计算/Reduce计算)再根据任务调度器(JobTracker)对任务进行分布式计算。

Hadoop集群中各个角色的名称如下:

hadoop的平台搭建 hadoop平台搭建与编程学什么_hadoop的平台搭建


还有个SecondaryNameNode,其实是NameNode的备用节点,定时合并和处理日志并且反馈到NameNode上。一般NameNode和SecondaryNameNode尽量不要放在同一个节点。

具体也不详细多说,网上多的是

二、使用步骤

1.所需环境及软件

操作系统:Windows 10
虚拟机:VMware 15.5
集群系统:Centos 7 64位
Hadoop版本:hadoop-3.3.1

2.测试集群服务器规划

代码如下(示例):

master  192.168.74.88 CentOS7 NameNode,DataNode,NodeManager
slave1  192.168.74.89 CentOS7 DataNode,NodeManager
slave2  192.168.74.90 CentOS7 SecondaryNameNode,DataNode,	ResourceManager,NodeManager

3.前置软件安装或者准备工作

代码如下(示例):

1.关闭防火墙(为了避免出现部分端口无法访问,内网环境下每台虚拟机都可以直接关闭防火墙)
2.JDK安装
3.修改主机名
# 节点192.168.74.88
hostnamectl set-hostname hadoop01
reboot
# 节点192.168.74.89
hostnamectl set-hostname hadoop02
reboot
# 节点192.168.74.90
hostnamectl set-hostname hadoop03
reboot
4.修改hosts文件
192.168.74.88   hadoop01
192.168.74.89   hadoop02
192.168.74.90   hadoop03
5.设置集群机器SSH免登
5.1使用ssh-keygen -t rsa命令
5.2把master机器的公钥文件放入授权文件中 cat id_rsa.pub >> authorized_keys
5.3收集集群中所有节点的/home/hadoop/.ssh/id_rsa.pub内容,汇总合并成一个authorized_keys文件,再拷贝该文件到所有集群节点的/home/hadoop/.ssh/目录下

hadoop的平台搭建 hadoop平台搭建与编程学什么_Hadoop_02

4.安装Hadoop

主要在hadoop01节点中安装即可,安装完毕可以通过scp命令直接拷贝文件分发到不同的节点中

代码如下(示例):

1.解压安装
2.环境变量配置
vim ~/.bashrc
gedit ~/.bashrc

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-1.el7_9.x86_64/jre
export PATH=$JAVA_HOME/bin:$PATH
export HADOOP_HOME=/data/hadoop/app
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

source ~/.bashrc
3.Hadoop配置
配置core-site.xml
gedit /data/hadoop/app/etc/hadoop/core-site.xml
<configuration>
    <property>
            <name>fs.defaultFS</name>
            <value>hdfs://hadoop01:9000</value>
    </property>
    <property>
            <name>hadoop.tmp.dir</name>
            <value>/data/hadoop/temp</value>
    </property>
</configuration>
配置hdfs-site.xml
gedit /data/hadoop/app/etc/hadoop/hdfs-site.xml
<configuration>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/data/hadoop/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/data/hadoop/dfs/data</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <property>
        <name>dfs.secondary.http.address</name>
        <value>hadoop03:50090</value>
    </property>
    <property>
        <name>dfs.http.address</name>
        <value>192.168.74.88:50070</value>
    </property>
</configuration>
配置mapred-site.xml
gedit /data/hadoop/app/etc/hadoop/mapred-site.xml
<configuration>
    <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>
配置yarn-site.xml
gedit /data/hadoop/app/etc/hadoop/yarn-site.xml
<configuration>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop02</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>
配置workers文件
gedit /data/hadoop/app/etc/hadoop/workers
hadoop01
hadoop02
hadoop03
4.分发Hadoop安装包到其他节点
## 分发节点2
scp -r /data/hadoop/app hadoop@hadoop02:/data/hadoop
 
## 分发节点3
scp -r /data/hadoop/app hadoop@hadoop03:/data/hadoop
5.格式化NameNode
规划中是hadoop01作为NameNode,在该机器下进行格式化:

hadoop namenode -format

格式化NameNode成功的控制台日志如下:
2022-03-19 10:08:39,844 INFO common.Storage: Storage directory /data/hadoop/dfs/name has been successfully formatted.
6.启动和停止HDFS
可以在任意一个节点中启动和停止HDFS,为了简单起见还是在hadoop01节点中操作:
启动:start-dfs.sh
停止:stop-dfs.sh

hadoop的平台搭建 hadoop平台搭建与编程学什么_Hadoop_03

7.启动和停止YARN
YARN集群的启动命令必须在ResourceManager节点中调用,规划中的对应角色的节点为hadoop03,在该机器执行YARN相关命令:
启动:start-yarn.sh
停止:stop-yarn.sh

hadoop的平台搭建 hadoop平台搭建与编程学什么_xml_04

8.查看所有节点的进程状态
[hadoop@hadoop01 hadoop]$ jps
8673 NameNode
8823 DataNode
9383 NodeManager
9498 Jps
 
[hadoop@hadoop02 hadoop]$ jps
4305 DataNode
4849 Jps
4734 NodeManager
 
[hadoop@hadoop03 data]$ jps
9888 Jps
9554 NodeManager
5011 DataNode
9427 ResourceManager
5125 SecondaryNameNode

9.通过WEB管理界面查看集群状态
HDFS入口:http://192.168.74.88:50070(来自于hdfs-site.xml的dfs.http.address配置项)

YARN入口:http://192.168.74.90:8088/cluster(ResourceManager所在节点的8088端口)

hadoop的平台搭建 hadoop平台搭建与编程学什么_hadoop_05


hadoop的平台搭建 hadoop平台搭建与编程学什么_Hadoop_06

总结

记录每天的点点滴滴,中途出现好些问题,反反复复装了好几遍,通过找问题加深理解