hdfs

118 阅读4分钟

1、Hadoop组成

1、Hadoop 2.x组成

  1. MapReduce(计算)
  2. Yarn(资源调度)
  3. HDFS(数据存储)
  4. Common(辅助工具)

2、HDFS

HDFS(Hadoop Distributed File System)

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

用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。

3、YARN

  1. ResourceManager(RM)

(1)处理客户端请求

(2)监控NodeManager

(3)启动或监控ApplicationMaster

(4)资源的分配与调度

  1. NodeManager(NM)

(1)管理单个节点上的资源

(2)处理来自ResourceManager的命令

(3)处理来自ApplicationMaster的命令

  1. ApplicationMaster(AM)

(1)负责数据的切分

(2)为应用程序申请资源并分配给内部的任务

(3)任务的监控与容错

  1. 4)Container

Container是YARN中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等。

4、大数据技术生态体系

1、Sqoop:主要用于在Hadoop、Hive与传统的数据库(MySql)间进行数据的传递,可以将一个关系型数据库(例如 :MySQL,Oracle 等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。

2、Flume:Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。

3、3)Kafka:Kafka是一种高吞吐量的分布式发布订阅消息系统,有如下特性:

(1)通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能。

(2)高吞吐量:即使是非常普通的硬件Kafka也可以支持每秒数百万的消息。

(3)支持通过Kafka服务器和消费机集群来分区消息。

(4)支持Hadoop并行数据加载。

4)Storm:Storm用于“连续计算”,对数据流做连续查询,在计算时就将结果以流的形式输出给用户。

5)Spark:Spark是当前最流行的开源大数据内存计算框架。可以基于Hadoop上存储的大数据进行计算。

6)Oozie:Oozie是一个管理Hdoop作业(job)的工作流程调度管理系统。

7)Hbase:HBase是一个分布式的、面向列的开源数据库。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。

8)Hive:Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

10)R语言:R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。

11)Mahout:Apache Mahout是个可扩展的机器学习和数据挖掘库。

12)ZooKeeper:Zookeeper是Google的Chubby一个开源的实现。它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、 分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

安装java

1、tar -zxvf jdk-8u181-linux-x64.tar.gz

2、sudo mkdir /opt/apps

3、sudo gedit /etc/profile

# 追加信息
export JAVA_HOME=/opt/java/jdk1.8.0_231
export PATH=${JAVA_HOME}/bin:${PATH}

4、source /etc/profile

查询是否安装Java软件:

rpm -qa | grep java

卸载

sudo rpm -e 软件包

看JDK安装路径:

which java

在profile文件末尾添加JDK路径:(shitf+g) ##HADOOP_HOME export HADOOP_HOME=/opt/module/hadoop-2.7.2 export PATH=PATH:PATH:HADOOP_HOME/bin

HADOOPHOME/bin:{HADOOP_HOME}/bin:{PATH}

export PATH=PATH:PATH:HADOOP_HOME/sbin

Hadoop目录结构

(1)bin目录:存放对Hadoop相关服务(HDFS,YARN)进行操作的脚本

(2)etc目录:Hadoop的配置文件目录,存放Hadoop的配置文件

(3)lib目录:存放Hadoop的本地库(对数据进行压缩解压缩功能)

(4)sbin目录:存放启动或停止Hadoop相关服务的脚本

(5)share目录:存放Hadoop的依赖jar包、文档、和官方案例

Hadoop运行模式

Hadoop运行模式包括:本地模式、伪分布式模式以及完全分布式模式。