0


大数据平台运维(hadoop入门(保姆篇))----概述及基本环境配置(HA-1)

2022.12.4 大数据运维基础篇 本章主要是基础坏境配置


前言

适用于大数据平台运维 1+x证书等

一、hadoop是什么?

1.1 Hadoop 是什么

(1)Hadoop是一个由Apache基金会所开发的分布式系统基础架构
(2)主要解决海量数据的存储和海量数据的分析计算问题
(3)广义上来说,Hadoop通常是指一个更广泛的概念——Hadoop生态圈

1.2 Hadoop 优势

(1)高可靠性:Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失。
(2)高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点。
(3)高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度。
(4)高容错性:能够自动将失败的任务重新分配。

1.3 Hadoop 组成

在这里插入图片描述

版权声明:本文为CSDN博主「@从一到无穷大」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/huxili2020/article/details/117809913

二、大数据技术体系

在这里插入图片描述

图中涉及的技术名词解释如下:

(1)Sqoop:Sqoop 是一款开源的工具,主要用于在Hadoop、Hive 与传统的数据库(MySQL)间进行数据的传递,可以将一个关系型数据库(例如 :MySQL,Oracle 等)中的数据导进到Hadoop 的HDFS 中,也可以将HDFS 的数据导进到关系型数据库中。
(2)Flume:Flume 是一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume 支持在日志系统中定制各类数据发送方,用于收集数据。
(3)Kafka:Kafka 是一种高吞吐量的分布式发布订阅消息系统。
(4)Spark:Spark 是当前最流行的开源大数据内存计算框架。可以基于Hadoop 上存储的大数据进行计算。
(5)Flink:Flink 是当前最流行的开源大数据内存计算框架。用于实时计算的场景较多。
(6)Oozie:Oozie 是一个管理Hadoop 作业(job)的工作流程调度管理系统。
(7)Hbase:HBase 是一个分布式的、面向列的开源数据库。HBase 不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。
(8)Hive:Hive 是基于Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的SQL 查询功能,可以将SQL 语句转换为MapReduce 任务进行运行。其优点是学习成本低,可以通过类SQL 语句快速实现简单的MapReduce 统计,不必开发专门的MapReduce 应用,十分适合数据仓库的统计分析。
(9)ZooKeeper:它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。

### 重点:HDFS Yarn MapReduce

2.1 HDFS 架构概述

Hadoop Distributed File System,简称HDFS,是一个分布式文件系统。

(1)NameNode(nn):存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。
(2)DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和。
(3)Secondary NameNode(2nn):每隔一段时间对NameNode元数据备份。

2.2 YARN 架构概述

Yet Another Resource Negotiator 简称YARN ,另一种资源协调者,是Hadoop 的资源管理器。

ResourceManager(RM):整个集群资源(内存、CPU等)的管理者
NodeManager(NM):单个节点服务器资源的管理者。
ApplicationMaster(AM):单个任务运行的管理者。
Container:容器,相当于一台独立的服务器,里面封装了任务运行所需要的资源,如内存、CPU、磁盘、网络等。

2.3 MapReduce 架构概述

MapReduce 将计算过程分为两个阶段:Map 和 Reduce

1)Map 阶段并行处理输入数据
2)Reduce 阶段对Map 结果进行汇总

三. 推荐系统框架图

四. 实操 Hadoop集群基础环境的配置 (重点!!!)

master slave1 slave2 三台主机以单链路连接为例 (理论+实操相结合以便更好理解,单理论或者单实操都是不可取的)

1.配置ip

之前博客教程如下:

linux网络配置(超简单,一看就会)_北神树的博客-CSDN博客

命令:ip a 查看网络

确定linux系统vim等工具能够正常使用,不能则需下载(下载命令 yum -y install “xx”)

2.设置主机名(三台都需要)

[root@localhost ~]# hostnamectl set-hostname master

[root@localhost ~]# bash

[root@localhost ~]# hostnamectl set-hostname slave1

[root@localhost ~]# bash

[root@localhost ~]# hostnamectl set-hostname slave2

[root@localhost ~]# bash

三台主机名修改完成

主机名修改方法二,永久保存

[root@localhost ~]# vi /etc/profile/hostname #将master节点的主机名修改为master

.....

3.集群ip地址和主机名的映射

映射文件地址: /etc/hosts

[root@master ~]# vi /etc/hosts

[root@slave1 ~]# vi /etc/hosts

[root@slave2 ~]# vi /etc/hosts

配置完毕后使用 reboot命令重启系统 使配置生效

或者使用source命令 格式 : source 配置文件 如:#source /etc/profile,可以使配置的profile文件立刻生效

4.创建hadoop用户

#useradd hadoop

#passwd (hadoop) 密码自设

5.关闭防火墙

5.1 步骤一:关闭防火墙(三台都要关闭)

[root@master ~]# systemctl stop firewalld.service

[root@slave1 ~]# systemctl stop firewalld.service

[root@slave2 ~]# systemctl stop firewalld.service

5.2 步骤二:关闭防火墙自启

[root@master ~]# systemctl disable firewalld.service

[root@slave1 ~]# systemctl disable firewalld.service

[root@slave2 ~]# systemctl disable firewalld.service

5.3 步骤三:查看防火墙状态

[root@master ~]# systemctl status firewalld.service

[root@slave1 ~]# systemctl status firewalld.service

[root@slave2~]# systemctl status firewalld.service

6.配置集群主机之间的时钟同步(避免集群中主机连接超时)

NTP同步方式分为直接同步和平滑同步两种

6.1 直接同步(集群中所有的节点都可以访问互联网)

1.查看ntp服务是否安装

[root@master ~]#rpm -qa | grep ntp

安装成功会有版本信息

若无则安装

[root@master ~]# yum -y install ntp

2.直接同步时间

[root@master ~]# ntpd

6.2平滑时间同步

适用于一个节点可以联网或者所有节点都不能联网,则可以在集群中选择一个节点,将其搭建成一个内网的NTP时间服务器,然后让集群中的各个节点与这个NTP服务器进行时间同步

1.同步时间

[root@master ~]# vi /etc/sysconfig/ntpdate

在ntpd文档中添加一行内容

SYS_HWLOCK=yes

2.启动服务

启动ntp服务

[root@master ~]# service ntpd start

设置ntpd为开机自启动状态

[root@master ~]# chkconfig ntpd on

3.编辑 /etc/ntp.conf

[root@master ~]# vi /etc/ntp.conf

(1)在文件中添加

restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

#设置始终同步的广播地址

(2)并注释下方四行内容

#service 0.ccentos.pool.ntp.org

#service 1.ccentos.pool.ntp.org

#service 2.ccentos.pool.ntp.org

#service 3.ccentos.pool.ntp.org

(3)去掉以下内容的注释(如果没有就加上)

server 127.127.1.0 # local -e

fudge 127.127.127.1.0 stratum 10

4.slave节点与master节点时间同步

[root@master ~]# crontab -e

添加以下任务

/ 1 * * */usr/sbin/ntpdate 192.168.1.6

查看时间

data命令

7. SSH免密(重要!)

问 :为什么需要免密? 答:hadoop运行过程中需要管理远端

7.1 生成ssh密钥

7.1.1 切换用户

[root@master ~]#su - hadoop

[root@slave1 ~]#su - hadoop

[root@slave2 ~]#su - hadoop

7.1.2 在每个节点上生成密钥对

[hadoop@master ~]$ ssh-keygen -t rsa -P " "

[hadoop@slave1 ~]$ ssh-keygen -t rsa -P ""

[hadoop@slave2 ~]$ ssh-keygen -t rsa -P ""

在每个节点上均使用ssh-keygen命令生成密钥对,使用-t他参数设定加密类型,本次用rsa加密方式,并使用-P 参数设定密钥保护密码,本次未设定密钥保护类型,传递空符串作为参数

7.1.3 在master节点上创建公钥

[hadoop@master ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

可以查看密钥文件和授权文件

[hadoop@master ~]$ ls ~/.ssh/

authorized_keys id_rsa i d_rsa.pub

[hadoop@master ~]$ chmod 700 ~/.ssh/authorized_keys #赋予权限

通过重定向的方式将id_rsa.pub文件中的内容写入授权的authorized_keys文件中

7.2 交换ssh密钥

7.2.1 交换密钥

1.将master节点上的公钥分发给slave1节点

[hadoop@master ]$ scp ~/.ssh/authorized_keys hadoop@slave1:/.ssh/

#输入yes #输入hadoop用户密码

2.在slave1节点追加公钥

[hadoop@slave1 ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

3.将slave1节点上的公钥分发给slave2和master节点

[hadoop@slave1 ]$ scp ~/.ssh/authorized_keys hadoop@slave2:/.ssh/

[hadoop@slave1 ]$ scp ~/.ssh/authorized_keys hadoop@master:/.ssh/

4.在slave2节点追加公钥

[hadoop@slave2 ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

5.将slave1节点上的公钥分发给slave1和master节点

[hadoop@slave1 ]$ scp ~/.ssh/authorized_keys hadoop@slave1:/.ssh/

[hadoop@slave1 ]$ scp ~/.ssh/authorized_keys hadoop@master:/.ssh/

#总体而言,就是主节点master创建公钥 每个节点都追加公钥,并把公钥分发给另外的两个节点,让每个节点都有其他节点包括自己的钥匙

7.2.2 验证ssh无密码登录

1.查看master/slave1/slave2 节点的authorized_keys 文件

[hadoop@master ~]$ cat ~/.ssh/authorizded_keys #或用vim命令

2.ssh验证

[hadoop@slave1 ~]$ ssh slave2

........

总结

实践参考大数据平台运维(中级)课本所编写

仅供学习使用


本文转载自: https://blog.csdn.net/weixin_62875153/article/details/127941019
版权归原作者 北神树 所有, 如有侵权,请联系我们删除。

“大数据平台运维(hadoop入门(保姆篇))----概述及基本环境配置(HA-1)”的评论:

还没有评论