大数据第二次作业


Hadoop演进与Hadoop生态

目录
  • Hadoop演进与Hadoop生态
    • 一、了解对比Hadoop不同版本的特性,可以用图表的形式呈现。
    • 二、Hadoop生态的组成、每个组件的作用、组件之间的相互关系,以图例加文字描述呈现。
      • 1. Hadoop核心组成
        • 1.1 HDFS
        • 1.2 MapReduce
        • 1.3 YARN
      • 2. Hadoop生态系统
        • 2.1 Ambari
        • 2.2 Hbase
        • 2.3 Hive
        • 2.4 Mahout
        • 2.5 Pig
        • 2.6 ZooKeeper
    • 三、官网学习Hadoop的安装与使用,用文档的方式列出步骤与注意事项。
      • 设置单节点群集
        • 1. 如果你的集群上没有安装必要的软件,则你需要安装它。
        • 2. 下载Hadoop
        • 3. 准备启动Hadoop集群
    • 四、评估华为hadoop发行版本的特点与可用性。
      • 安全
      • 可靠
      • 易用

一、了解对比Hadoop不同版本的特性,可以用图表的形式呈现。

目前Hadoop的发行版除了Apache的开源版本之外,还有华为发行版、Intel发行版、Cloudera发行版(CDH)、Hortonworks发行版(HDP)、MapR等,所有这些发行版均是基于Apache Hadoop衍生出来的,因为Apache Hadoop的开源协议允许任何人对其进行修改并作为开源或者商业产品发布。

不收费的Hadoop版本主要有三个(均是国外厂商),分别是:

  1. Apache(最原始的版本,所有发行版均基于这个版本进行改进)
  2. Cloudera版本(Cloudera’s Distribution Including Apache Hadoop,简称CDH)
  3. Hortonworks版本(Hortonworks Data Platform,简称“HDP”)

二、Hadoop生态的组成、每个组件的作用、组件之间的相互关系,以图例加文字描述呈现。

1. Hadoop核心组成

Hadoop主要由三个部分组成,HDFS、MapReduce和YARN。

1.1 HDFS

HDFS全称Hadoop Distributed File System,即分布式文件系统。HDFS具有高容错能力,可以部署到低成本的硬件上。它适用于大数据应用,对数据可以实现高吞吐量访问,并且可以实现流式的数据访问。
HDFS 图片

1.2 MapReduce

MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Reduce(归约)",是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。 当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。
MapReduce 图片

1.3 YARN

YARN (Yet Another Resource Negotiator,另一种资源协调者)是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。
YARN 图片

2. Hadoop生态系统

发展到现在,Hadoop已经形成了自己的生态圈,下图展示了其部分面貌:
Hadoop 图片

2.1 Ambari

Apache Ambari设计的目的就是为了使Hadoop集群的管理更加简单,比如创建、管理、监视。
Hadoop 的集群,当然这里的 Hadoop 是广义,指的是 Hadoop 整个生态圈。
Ambari 现在所支持的平台组件也越来越多,例如流行的 Spark,Storm 等计算框架,以及资源调度平台 YARN 等,我们都能轻松地通过 Ambari 来进行部署。
Ambari 图片

2.2 Hbase

前面我们提到了HDFS,我们可以认为它是为计算框架服务的存储层。因此不管是Spark 还是 MapReduce,都需要使用 HDFS 作为默认的持久化存储层。而HBase 是一种类似于数据库的存储层,也就是说 HBase 适用于结构化的存储和大数据的实时查询。并且 HBase 是一种列式的分布式数据库,是由当年的Google 公布的 BigTable 的论文而生。不过这里也要注意 HBase 底层依旧依赖 HDFS 来作为其物理存储,这点类似于 Hive。
HBase 图片

2.3 Hive

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
Hive是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在 Hadoop中的大规模数据的机制。Hive 定义了简单的类 SQL 查询语言,称为 HQL,它允许熟悉 SQL 的用户查询数据。同时,这个语言也允许熟悉MapReduce 开发者的开发自定义的 mapper 和 reducer 来处理内建的 mapper 和 reducer 无法完成的复杂的分析工作。
Hive 图片

2.4 Mahout

Mahout 是 Apache Software Foundation(ASF) 旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。Mahout包含许多实现,包括聚类、分类、推荐过滤、频繁子项挖掘。此外,通过使用 Apache Hadoop 库,Mahout 可以有效地扩展到云中。
Mahout 图片

2.5 Pig

Hadoop 不断进步的一个特殊领域是 Hadoop 应用程序的编写。虽然编写 Map 和 Reduce 应用程序并不十分复杂,但这些编程确实需要一些软件开发经验。Apache Pig 改变了这种状况,它在 MapReduce的基础上创建了更简单的过程语言抽象,为 Hadoop 应用程序提供了一种更加接近结构化查询语言 (SQL) 的接口。因此,我们不需要编写一个单独的MapReduce 应用程序,可以用 Pig Latin 语言写一个脚本,在集群中自动并行处理与分发该脚本。
Pig 图片

2.6 ZooKeeper

ZooKeeper是一种为分布式应用所设计的高可用、高性能且一致的开源协调服务,它提供了一项基本服务:分布式锁服务。由于ZooKeeper的开源特性,后来我们的开发者在分布式锁的基础上,摸索了出了其他的使用方法:配置维护、组服务、分布式消息队列、分布式通知/协调等。
ZooKeeper 图片

三、官网学习Hadoop的安装与使用,用文档的方式列出步骤与注意事项。

设置单节点群集

1. 如果你的集群上没有安装必要的软件,则你需要安装它。

例如在Ubuntu Linux上:

  $ sudo apt-get install ssh
  $ sudo apt-get install pdsh

2. 下载Hadoop

要获取Hadoop发行版,请从Apache下载镜像中下载最新的稳定版本。

3. 准备启动Hadoop集群

解压下载的Hadoop发行版。在发行版中,编辑文件etc/hadoop/hadoop-env.sh以定义一些参数,如下所示:

  # set to the root of your Java installation
  export JAVA_HOME=/usr/java/latest

尝试运行以下命令:

  $ bin/hadoop

这将显示hadoop脚本的用法文档。

现在,你可以从三种支持的模式中选其一启动Hadoop集群:

  • Local (Standalone) Mode
  • Pseudo-Distributed Mode
  • Fully-Distributed Mode

四、评估华为hadoop发行版本的特点与可用性。

华为FusionInsight HD发行版紧随开源社区的最新技术,快速集成最新组件,并在可靠性、安全性、管理性等方面做企业级的增强,持续改进,持续保持技术领先。

FusionInsight HD的企业级增强主要表现在以下几个方面:

安全

  • 架构安全
    FusionInsight HD基于开源组件实现功能增强,保持100%的开放性,不使用私有架构和组件。

  • 认证安全

    • 基于用户和角色的认证统一体系,遵从帐户/角色RBAC(Role-Based Access Control)模型,实现通过角色进行权限管理,对用户进行批量授权管理。
    • 支持安全协议Kerberos,FusionInsight HD使用LDAP作为帐户管理系统,并通过Kerberos对帐户信息进行安全认证。
    • 提供单点登录,统一了Manager系统用户和组件用户的管理及认证。
    • 对登录FusionInsight Manager的用户进行审计。
  • 文件系统层加密
    Hive、HBase可以对表、字段加密,集群内部用户信息禁止明文存储。

    • 加密灵活:加密算法插件化,可进行扩充,亦可自行开发。非敏感数据可不加密,不影响性能(加密约有5%性能开销)。
    • 业务透明:上层业务只需指定敏感数据(Hive表级、HBase列族级加密),加解密过程业务完全不感知。

可靠

  • 所有管理节点组件均实现HA(High Availability)
    业界第一个实现所有组件HA的产品,确保数据的可靠性、一致性。NameNode、Hive Server、HMaster、Resources Manager等管理节点均实现HA。

  • 集群异地灾备
    业界第一个支持超过1000公里异地容灾的大数据平台,为日志详单类存储提供了迄今为止可靠性最佳实践。

  • 数据备份恢复
    表级别全量备份、增量备份,数据恢复(对本地存储的业务数据进行完整性校验,在发现数据遭破坏或丢失时进行自恢复)。

易用

  • 统一运维管理
    Manager作为FusionInsight HD的运维管理系统,提供界面化的统一安装、告警、监控和集群管理。

  • 易集成
    提供北向接口,实现与企业现有网管系统集成;当前支持Syslog接口,接口消息可通过配置适配现有系统;整个集群采用统一的集中管理,未来北向接口可根据需求灵活扩展。

  • 易开发
    提供自动化的二次开发助手和开发样例,帮助软件开发人员快速上手。