当前位置:   article > 正文

【Hadoop】_hadoop平台

hadoop平台

目录

1、大数据

1.1、大数据技术生态系统

1.2、什么是大数据?

1.3、原理流程

1.4、名词科普

2、Hadoop概述

2.1、Hadoop是什么?

2.2 Hadoop 优势

2.3、Hadoop三大组件

3、Hadoop分布式搭建

   3.1、准备三台客户机  ( 关闭防火墙、静态 IP、主机名称)

 3.2、修改内存  

 3.3、配置免密登录

 3.4 、安装Hadoop

 3.5、配置环境变量   

3. 6、Hadoop配置集群

3.7、core-site.xml : hadoop核心配置文件

3.8、hdfs-site.xml : hdfs配置文件

3.9、yarn-site.xml:yarn配置文件

3.10、mapred-site.xml: mapreduce配置文件

3.11、将hadoop安装文件同步到子节点

3.12、格式化namenode

3.13、启动hadoop

4、Hadoop组件介绍

4.1、分布式存储

4.2、HDFS架构

4.3、YARN架构

4.4、mapreduce架构

5、Hadoop命令

5.1、详细启动脚本介绍

5.2、HDFS shell命令介绍


1、大数据

1.1、大数据技术生态系统

在这里插入图片描述

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

(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:它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。
 

1.2、什么是大数据?

大数据指高速 涌现的大量多样化 具有一定价值并且真实的数据,其特性可简单概括为 

高速:数据产生的速度非常快,一般来说这些数据会先保存至内存缓存,之后再去写入磁盘

大量 :对于中型企业数据量一般在百TB级,对于不同量级的数据处理的方式会不一样

多样化 :数据种类多,半结构化,结构化数据,非结构化数据(视频,图片)需要转换成结构化数据进行分析

价值: 数据挖掘,大数据分析-> 对数据做关联统计分析

真实:在历史的某个阶段真实产生过

1.3、原理流程

1.数据采集 大数据首先需要将来自不同来源和应用的数据汇集在一起。需要导入和处理数据、执行格式化操作,以符合业务分析所要求的形式。

2. 数据存储 大数据对存储要求较高。存储解决方案可以部署在本地,也可以部署在云端。可以采用任何形式存储数据,根据需要为数据集设置处理要求,引入必要的处理引擎。

3.数据分析  数据分析是根据数据内容及业务要求对数据进行处理的过程,在该过程中需要根据不同的数据量和业务形式选择合适的处理引擎,大数据开发过程有时也会涉及到机器学习相关算法

1.4、名词科普

Apache基金会 :是专门为支持开源软件项目而办的一个非盈利性组织

服务器(节点) :可以理解为我们的一台笔记本/台式机 在这里可以认为是我们的一台虚拟机 后面学习中,我们会把一台服务器称为一个节点

机架: 负责存放服务器的架子 可以理解为鞋架

2、Hadoop概述

2.1、Hadoop是什么?

  • Hadoop是一个由Apache基金会所开发的分布式系统基础架构
  • Hadoop是一个适合海量数据的分布式存储分布式计算的平台。

2.2 Hadoop 优势

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

2.3、Hadoop三大组件

  1. HDFS:是一个分布式存储框架,适合海量数据存储
  2. MapReduce:是一个分布式计算框架,适合海量数据计算
  3. Yarn:是一个资源调度平台,负责给计算框架分配计算资源

3、Hadoop分布式搭建

   3.1、准备三台客户机  ( 关闭防火墙、静态 IP、主机名称)

克隆虚拟机,并修改IP和主机名   

 创建node1节点   

 vim /etc/hostname  ->   修改master为node1  

   vim /etc/sysconfig/network-scripts/ifcfg-ens33 将IP修改为 101   

 同样操作生成一个node2节点   

 3.2、修改内存  

       16 / 5 => 3.2   

 3.3、配置免密登录

在master中生成密钥文件 ssh-keygen -t rsa 一直回车

将密钥文件同步到所有节点

( 注意需要在/etc/hosts中配置映射关系配置步骤如下:

添加如下内容:

192.168.253.100 master

192.168.253.101 node1

192.168.253.102 node2

添加完成之后

通过ping node1 测试是否通畅

之后同步到其他两个节点

scp /etc/hosts root@node1:/etc/hosts

scp /etc/hosts root@node2:/etc/hosts )

ssh-copy-id master

ssh-copy-id node1

ssh-copy-id node2 上述命令 需要输入密码 回车

完成后 可以通过 ssh node1 验证免密登录  并且通过 Ctrl + D 退出   

 3.4 、安装Hadoop

上传Jar包并解压     tar -xvf hadoop-2.7.6.tar.gz

Hadoop目录结构  

(1) bin目录:存放对 Hadoop相关服务( hdfs yarn mapred)进行操作的执行命令
(2)etc目录: Hadoop的配置文件目录,存放 Hadoop的配置文件
(3) lib目录:存放 Hadoop的本地库(对数据进行压缩解压缩功能)
(4) sbin目录:存放启动或停止 Hadoop相关服务的脚本
(5) share目录:存放 Hadoop的依赖 jar包 、文档和官方案例

 3.5、配置环境变量   

 vim /etc/profile 增加hadoop环境变量,将bin和sbin都配置到PATh中

#HADOOP_HOME

export HADOOP_HOME=/usr/local/soft/hadoop-2.7.6 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin source /etc/profile   

 注意:当前Linux中需要JDK环境 如果没有配置请参考Linux阶段学习   

3. 6、Hadoop配置集群

由于Hadoop是一个主从结构,由一个主节点领导整个集群,其他的节点称为从节点   

 cd /usr/local/soft/hadoop-2.7.6/etc/hadoop   

 vim slaves

 增加node1, node2

vim hadoop-env.sh

修改JAVA_HOME export JAVA_HOME=/usr/local/soft/jdk1.8.0_171

3.7、core-site.xml : hadoop核心配置文件

vim core-site.xml 在configuration中间增加以下内容

<property>

<name>fs.defaultFS</name>

<value>hdfs://master:9000</value>

</property>

<property> <name>hadoop.tmp.dir</name>

<value>/usr/local/soft/hadoop-2.7.6/tmp</value>

</property>

<property> <name>fs.trash.interval</name> <value>1440</value>

</property>

——————————————————————————————————

master:9000 表示 HDFS对应API的端口

hadoop.tmp.dir 表示对应NameNode和SecondaryNameNode保存数据的位置

fs.trash.interval 表示一天的时间 ————————————————————————————————

3.8、hdfs-site.xml : hdfs配置文件

vim hdfs-site.xml 在configuration中间增加以下内容

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

<property>

<name>dfs.permissions</name>

<value>false</value>

</property>

————————————————————————————————————

dfs.replication 副本的保存数量 默认为3 dfs.permissions HDFS权限 ————————————————————————————————————

3.9、yarn-site.xml:yarn配置文件

vim yarn-site.xml 在configuration中间增加以下内容

<property>

<name>yarn.resourcemanager.hostname</name>

<value>master</value>

</property>

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

<property>

<name>yarn.log-aggregation-enable</name>

<value>true</value>

</property>

<property>

<name>yarn.log-aggregation.retain-seconds</name>

<value>604800</value>

</property>

<property>  

<name>yarn.nodemanager.resource.memory-mb</name>

  <value>20480</value>  

</property>  

<property>  

<name>yarn.scheduler.minimum-allocation-mb</name>  

<value>2048</value>  

</property>  

<property>

  <name>yarn.nodemanager.vmem-pmem-ratio</name>  

<value>2.1</value>

  </property>  

——————————————————————————

yarn.resourcemanager.hostname 设置yarn主节点

yarn.nodemanager.resource.memory-mb  设置从节点中的内存大小

yarn.nodemanager.vmem-pmem-ratio  设置物理内存和虚拟内存的比率 ——————————————————————————

3.10、mapred-site.xml: mapreduce配置文件

重命名 mv  mapred-site.xml.template mapred-site.xml vim mapred-site.xml

在configuration中间增加以下内容

<property>

<name>mapreduce.framework.name</name> <value>yarn</value>

</property>

<property>  

<name>mapreduce.jobhistory.address</name>  

<value>master:10020</value>  

</property>

  <property>  

<name>mapreduce.jobhistory.webapp.address</name>  

<value>master:19888</value>   </property>

—————————————————————————————— mapreduce.jobhistory.webapp.address 历史服务器的ip及端口 ——————————————————————————————

3.11、将hadoop安装文件同步到子节点

scp -r /usr/local/soft/hadoop-2.7.6/ node1:/usr/local/soft/

scp -r /usr/local/soft/hadoop-2.7.6/ node2:/usr/local/soft/

3.12、格式化namenode

在master节点中执行如下命令  对namenode进行格式化操作

hdfs namenode -format

3.13、启动hadoop

start-all.sh

启动成功后,通过jps命令查看相应的进程 。 jps命令主要查看Java相关的进程

在Master节点中出现如下进程:

4341 SecondaryNameNode

4486 ResourceManager

4155


 

4、Hadoop组件介绍

4.1、分布式存储
 

1、在分布式存储系统中,分散在不同节点中的数据可能属于同一个文件。(一个文件分为多个block,这些块存储在不同的node中)

2、为了组织众多的文件,把文件可以放到不同的文件夹中,文件夹可以一级一级的包含。我们把这种组织形式称为命名空间(namespace)。命名空间管理着整个服务器集群中的所有文件。     

3、集群中不同的节点承担不同的职责。

  • 负责命名空间职责的节点称为主节点(master node)
  • 负责存储真实数据职责的节点称为从节点(slave node)。
  • 主节点负责管理文件系统的文件结构,从节点负责存储真实的数据,称为主从式结构(master-slaves)。
  • 用户操作时,应该先和主节点打交道,查询数据在哪些从节点上存储,然后再到从节点读取。
  • 在主节点上,为了加快用户访问的速度,会把整个命名空间信息都放在内存中,当存储的文件越多时,那么主节点就需要越多的内存空间。
  • 在从节点存储数据时,有的原始数据文件可能很大,有的可能很小,大小不一的文件不容易管理,那么可以抽象出一个独立的存储文件单位,称为块(block)128
  • 数据存放在集群中,可能因为网络原因或者节点硬件原因造成访问失败,最好采用副本(replication)机制,把数据同时备份到多台节点中,这样数据就安全了,数据丢失或者访问失败的概率就小了。

4.2、HDFS架构

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

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

4.3、YARN架构

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

1、ReasourManager主节点
负责资源管理的,整个系统有且只有一个 RM ,来负责资源的调度。它也包含了两个主要的组件:定时调用器(Scheduler)以及应用管理器(ApplicationManager)

2、ApplicationMaster
每当 Client 提交一个 Application 时候,就会新建一个 ApplicationMaster 。由这个 ApplicationMaster 去与 ResourceManager 申请容器contatiner资源,获得资源后会将要运行的程序发送到容器上启动,然后进行分布式计算。
3、NodeManager从节点
NodeManager 是 ResourceManager 在每台机器的上代理,负责容器的管理,并监控他们的资源使用情况(cpu,内存,磁盘及网络等),以及向ResourceManager/Scheduler 提供这些资源使用报告。
4、Container
Container是YARN集群中资源的抽象,将NM上的资源进行量化,根据需要组装成一个个Container,然后服务于已授权资源的计算任务。计算任务在完成计算后,系统会回收资源,以供后续计算任务申请使用。Container包含两种资源:内存和CPU,后续Hadoop版本可能会增加硬盘、网络等资源。
 

说明:
(1)客户端可以有多个
(2)集群上可以运行多个ApplicationMaster
(3)每个NodeManager上可以有多个Container
 

4.4、mapreduce架构

依赖磁盘IO的批处理计算模型

MapReduce 将计算过程分为两个阶段:Map 和Reduce
1)Map 阶段并行处理输入数据
2)Reduce 阶段对Map 结果进行汇总

5、Hadoop命令

详细启动脚本介绍

第一种:全部启动集群所有进程

启动:start-all.sh

停止:stop-all.sh

第二种:单独启动hdfs【web端口50070】和yarn【web端口8088】的相关进程

启动:start-dfs.sh  sbin/start-yarn.sh

停止:stop-dfs.sh  sbin/stop-yarn.sh

每次重新启动集群的时候使用

第三种:单独启动某一个进程

启动hdfs:hadoop-daemon.sh start (namenode | datanode)

停止hdfs:hadoop-daemon.sh stop (namenode | datanode)

启动yarn:yarn-daemon.sh start (resourcemanager | nodemanager)

停止yarn:yarn-daemon.sh stop(resourcemanager | nodemanager)

用于当某个进程启动失败或者异常down掉的时候,重启进程

    
 

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
  

闽ICP备14008679号