Hadoop_简介_01

1. Apache Hadoop

  1.1 Hadoop介绍

    Hadoop是Apache旗下的一个用java语言实现的开源软件框架, 是一个开发和运行处理大规模数据的软件平台. 允许使用简单的编程模型在大量计算机集群上对大型数据集进行分布式处理. Hadoop不会跟某种具体的行业或者某个具体的业务挂钩, 他只是一种用来做海量数据分析处理的工具.

    

    狭义上说, Hadoop指Apache这款开源框架, 其核心组件有:

      HDFS (分布式文件系统) : 解决海量数据存储

      YARN (作业调度和集群资源管理的框架) : 解决资源任务调度

      MAPREDUCE (分布式运算编程框架) : 解决海量数据计算

    广义上说, Hadoop通常是指一个更广泛的概念 -- Hadoop生态圈.

    

    当下的Hadoop已经成长为一个庞大的体系.

    HDFS: 分布式文件系统

    MAPREDUCE: 分布式运算程序开发框架

    HIVE: 基于Hadoop的分布式数据仓库, 提供基于SQL的查询数据操作

    HBASE: 基于Hadoop的分布式海量数据数据库

    ZOOKEEPER: 分布式协调服务基础组件

    Mahout: 基于MR / Spark / Flink等分布式运算框架的机器学习算法库

    OOZIE: 工作流调度框架

    SQOOP: 数据导入导出工具 (比如用于mysql和HDFS之间)

    FLUME: 日志数据采集框架

    IMPALA: 基于Hive的实时sql查询分析

  1.2 Hadoop发展简史

    三篇Google论文:

    1) 2003年Google发表的第一篇论文: GFS (Google分布式文件系统)

    2) 2004年Google发表的第二篇论文: Google的MapReduce解决海量数据计算

      同一时期,Doug Cutting基于Google的两篇论文开发出: HDFS (Hadoop的分布式文件系统) , MapReduce (基于Hadoop的分布式计算平台) 成为Apache的顶级项目.

    3) 2006年Google发表的第三篇论文: BigTable, 开源界根据论文开发了HBase (基于Hadoop的分布式数据库) .

  1.3 Hadoop特性优点

    1) 扩容能力: Hadoop是在可用的计算机集群间分配数据并完成计算任务的, 这些集群可用方便的扩展到数以千计的节点中.

    2) 成本低: Hadoop通过廉价的机器组成服务器集群来分发以及处理数据, 以至于成本很低.

    3) 高效率: 通过并发数据,Hadoop可以在节点之间动态并行的移动数据, 使得速度非常快.

    4) 可靠性: 能自动维护数据的多份复制, 并且在任务失败后自动的重新部署计算任务. 所以Hadoop的按位存储和处理数据的能力值得信赖.

2. Hadoop集群

  2.1 发行版本

    分为开源社区版商业版

    社区版: 由Apache软件基金会维护的版本, 是官方维护的版本体系.

      优点: 功能最新, 免费.

      缺点: 稳定性差, 兼容性差.

    商业版: 由第三方商业公司在社区版基础上进行一些修改, 整合以及各个服务组件兼容性测试而发行的版本, 比如著名的cloudera的CDH, mapR, hortonWorks等.

      优点: 稳定性好, 软件兼容性好.

      缺点: 收费, 暂时不能使用最新的Hadoop版本.

    Hadoop版本特殊, 是由多条分支并行的发展, 大的来看分为3个大的系列版本: 1.x, 2.x, 3.x.

    Hadoop1.x由一个分布式文件系统HDFS和一个离线计算框架MR组成.

    Hadoop2.x包含一个支持NameNode横向扩展的HDFS, 一个资源管理系统YARN和一个运行在YARN上的离线计算框架MR. 相比于Hadoop1.x, Hadoop2.x功能更加强大, 且具有更好的扩展性, 性能, 并支持多种计算框架. 现在是企业主流版本.

    Hadoop3.x相比之前的Hadoop2.x有一系列的功能增强. 目前已经趋于稳定, 但是整个生态圈体系升级整合还未完毕, 所以商用还值得商榷.

  2.2 集群简介

    Hadoop集群具体来说包含两个集群: HDFS集群, YARN集群, 两者逻辑上分离, 但物理上常在一起.

      1) HDFS集群负责海量数据的存储, 集群中的角色主要有: NameNode, DataNode, SecondaryNameNode.

      2) YARN集群负责海量数据运算时的资源调度, 集群中的角色主要有: ResourceManager, NodeManager.

      其中MR其实是一个分布式运算编程框架, 是应用程序开发包, 由用户按照编程规范进行程序开发, 后打包运行在HDFS集群上, 并且受到YARN集群的资源调度管理.

    Hadoop部署方式分四种: Standalone mode (独立模式) , Pseudo-Distributed mode (伪分布式模式) , Cluster mode (集群模式) , HA high availability (高可用集群模式) 其中前两种都是在单机部署.

      1) 独立模式又称为单机模式, 仅1个机器运行1个Java进程, 主要用于调试.

      2) 伪分布模式也是在1个机器运行HDFS的NameNode和DataNode, YARN的ResourceManager和NodeManager, 但分别启动单独的Java进程, 主要用于调试.

      3) 集群模式主要用于生产环境部署. 会使用N台主机组成一个集群, 这种部署模式下, 主节点和从节点会分开部署在不同的机器上.

      4) 高可用集群模式主要解决单点故障, 保证集群的高可用, 提高可靠性

    HDFS集群 (主从架构) :

      主角色: NameNode (nn)

      从角色: DataNode (dn)

      主角色的辅助角色: SecondaryNameNode (snn)

    YARN集群 (主从架构) :

      主角色: ResourceManager (rm)

      从角色: NodeManager (nm)

    MR需要开发的程序组件:

      Map组件

      Reduce组件

    Hadoop角色分布图:

    

    HDFS原理图简单分析:

    

  2.3 为什么CDH版本Hadoop要重新编译?

    由于CDH的所有安装包版本都给出了对应的软件版本, 一般情况下是不需要自己进行编译的, 但是由于CDH给出的Hadoop的安装包没有提供带C程序访问的借口, 所有我们在使用本地库的时候就会出现问题. (本地库: 可以用来做压缩, 以及支持C程序等等) 

    1) Hadoop是使用Java语言开发的, 但是有一些需求和操作并不适合使用java, 所以就引入了本地库 (Native Libraries) 的概念. 说白了, 就是Hadoop的某些功能, 必须通过JNT来协调Java类文件和Native代码生成的库文件一起才能工作.

    2) linux系统要运行Native代码, 首先要将Native编译成目标CPU架构的 [.so] 文件. 而不同的处理器架构, 需要编译出相应平台的动态库 [.so] 文件, 才能被正确的执行, 所以最好重新编译一次hadoop源码, 让 [.so] 文件与自己处理器相对应. 注意: windows平台是动态库 [.dll] 文件

    总结: 主要是要重新编译本地库 (Native Libraries) 代码 (Linux下对应 [.so] 文件,window下对应 [.dlI] 文件) , 也就是编译生成linux下的 [.so] 文件.

    源码编译后压缩包路径:

    

    源码编译后结果:

    

  2.4 Hadoop安装包目录结构

    目录结构如下:

    bin: Hadoop最基本的管理脚本和使用脚本的目录.

    etc: Hadoop配置文件所在的目录.

    include: 对外提供的编程库头文件 (具体动态库和静态库在lib目录中) .

    lib: 包含了Hadoop对外提供的编程动态库和静态库, 与include目录中的头文件结合使用.

    libexec: 各个服务对用的shell配置文件所在的目录, 可用于配置日志输出, 启动参数等基本信息.

    sbin: Hadoop管理脚本所在的目录, 主要包括HDFS和YARN中各类服务的启动 / 关闭脚本.

    share: Hadoop各个模块编译后的jar包所在的目录, 官方自带实例.

  2.5 集群规划 

    集群规划: 在我们准备的三台服务器上如何搭建hadoop集群
    原则:
      1) 优先满足软件需要的硬件资源
      2) 尽量避免有冲突的软件不要在一起
      3) 有依赖的软件尽量部署在一起

    规划安排:
      hadoop01: NameNode DataNode | ResourceManager NodeManager
      hadoop02: DataNode SecondaryNameNode | NodeManager
      hadoop03: DataNode | NodeManager

    未来扩展:
      hadoop04: DataNode NodeManager
      hadoop05: DataNode NodeManager
      hadoop06: DataNode NodeManager
      ......

  2.6 启动, Web-UI

    要启动Hadoop集群, 需要启动HDFS和YARN两个集群, 首次启动HDFS时, 必须对其进行格式化操作. 本质上是一些清理和准备工作, 因此此时的HDFS在物理上还是不存在的.

    Hadoop集群启动并允许, 可以通过web-ui进行查看

    NameNode: http://nn_host:port/ 默认50070.

    ResourceManager: http://rm_host:port/ 默认8088.

  2.7 MapReduce JobHistory

    JobHistory用来记录已经finished的MR运行日志, 日志信息存放于HDFS目录中, 默认情况下没有开启此功能, 需要在mapred-site.xml中配置并手动启动.

    可以通过web-ui进行查看

    http://nn_host:port/ 默认19888.

3. HDFS的垃圾桶机制

  3.1 垃圾桶机制解析

    每一个文件系统都会有垃圾桶机制, 便于将删除的数据回收到垃圾桶里, 避免某些误操作删除一些重要文件. 回收到垃圾桶里的资料数据, 都可以进行恢复.

  3.2 垃圾桶机制配置

    HDFS的垃圾回收的默认配置属性为0, 也就是说, 如果不小心误删了, 那么这个操作是不可恢复的. 修改core-site.xml , 那么可以按照生产上的需求设置回收站的保存时间, 这个时间以分钟为单位, 例如1440 = 24h = 1天.

  3.3 垃圾桶机制验证

    如果启用垃圾桶配置, dfs命令删除的文件不会立即从HDFS中删除. 相反, HDFS将其移动到垃圾目录 (每个用户在 /user/<username>/.Trash 下都有自己的垃圾目录). 只要文件保留在垃圾箱中, 文件可以快速回复.

    使用skipTrash选项删除文件, 该选项不会将文件发送到垃圾桶, 它将从HDFS中完全删除. 

(0)

相关推荐

  • HDFS的知识整理

    HDFS概述 HDFS产生背景 随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文 ...

  • 大数据快速入门干货

    大数据时代 "大数据"这个人造词汇其实很容易产生不少误解,尤其是这个"大"字,很容易让人感觉,数据量必须大,而且特别大,越大越能形成产业,也越有价值. 做个假设 ...

  • Hadoop 入门

    Hadoop 入门

  • 我这里整理了一个关于中药剂量的一个常识的简介,分享给各位朋友。

    关于度量:秦始皇统一六国,统一度量衡,但是通过中医的学习会发现度量衡还是很混乱,半斤八两,那么一两是多少呢?还有论钱论厘的,有的说一小勺,有的说一小杯,有的说一小碗,你怎么弄?我这里整理了一个关于中药 ...

  • 趋势丨蔗糖理想替代品——阿洛酮糖简介

    导语 作为蔗糖的理想替代品,阿洛酮糖是什么?有何特点? 文:中国食品报网丨欣文 图:Stockfood 我们曾分享过一篇关于甜味剂的解读文章,对甜味剂的优点及工业应用进行了介绍,指出世界范围内无糖和低 ...

  • 李默飞个人简介

    易学是我国劳动人民智慧的结晶,是一门古老的学科,自古就充满了无限的神秘,一直是人们不断探索和研究的学科.古往今来有无数名人都在易学上有突出成就,如谷鬼子.诸葛亮.袁天罡等名人.近当代更是涌现出数不胜数 ...

  • 冉龙清老师个人简介

    国际易学联盟副主席 四川易经协会名誉会长 中华易经风水学院常务院长 中国易经协会会员 四川周易研究院副院长 本人于五十年代中期出生于寺庙林立的大巴山中麓,其间多有大贤隐士深隐于此.上小学初中适逢&qu ...

  • 人MTHFR基因多态性检测试剂盒(荧光PCR法)简介

    产品介绍 [注册证编号]:国械注准20173403239 [产品规格]:30人份/盒 [存储条件]:1.-20±3℃避光保存,有效期10个月 2.试剂盒在-16℃~8℃的温度范围内运输,运输时间不超过 ...

  • 迁移学习——入门简介

    一.简介 背景:现如今数据爆炸: 对机器学习模型来说要求快速构建,强泛化 对于数据来说,大部分数据没有标签 所以收集标签数据和从头开始构建一个模型都是代价高昂的,需要对模型和带有标签的数据进行重用 传 ...

  • 馆藏 明代著名画家,传世山水画作及个人生平简介

    明 沈周 纵193.8X横98厘米 台北故宫博物院藏 沈周(1427-1509)吴门四家之首.字启南,号石田,更号白石翁.长州人.世代隐居吴门.他凭借想象描绘庐山为他的老师陈宽作寿.在画法上宗学王蒙, ...

  • 木醋杆菌简介

    醋杆菌属(学名:Acetobacter)是乙酸细菌的一个属,其特点是能够在有空气的条件下将乙醇转化为乙酸.醋酸杆菌属包含有多个种.很多其它的细菌也能在不同的条件下产生乙酸,但醋酸杆菌属中的细菌只在这一 ...

  • SunnyUI 学习1.1——简介与界面布局的使用

    SunnyUI 学习1.1--简介与界面布局的使用 炎黄子孙__ 2021-01-01 14:59:26  3015  收藏 12 分类专栏: SunnyUI C# winform 文章标签: c# ...