hadoop是一个由Apache基金会所发布的用于大规模集群上的分布式系统并行编程基础框架。目前已经是大数据领域最流行的开发架构。并且已经从HDFS、MapReduce、Hbase三大核心组件成长为一个具有60多个组件构成的庞大生态,可以满足大数据采集、存储、开发、分析、算法、建模等方方面面。

在hadoop的使用版本中,目前除Apache的版本,hadoop还有Cloudera与Hortonworks公司的两大发行版,并且两家公司还有各自的开分的相关生态组件、管理工具。便于Hadoop集群的供应、管理和监控。

一.          两开发行版

1.     Cloudera

1) Cloudera Manager管理工具:收费,稳定性高、集成性差、hadoop版本更新慢、不支持二次开发、安装复杂。,

2)    CDH发行版:部分开源,基本上支持所有组件,只依赖cdh自已的版本

2.     Hortonworks

1)  Ambari管理工具:免费,稳定性相对不高,集成性好,hadoop版本更新快,支持二次开发、安装简便。

2) HDP发行版:完全开源,基本上支持所有组件,直接依赖apache hadoop版

两个发行版,在个别组件是不兼容的,比如安全组件等。另外,现在这两个公司已经合并了,意味着将来在组件等方面会有所融合。

二.          Hadoop常用组件简介

1.      核心组件

1) HDFS:分布式文件系统(Hadoop Distributed File System),是一个高度容错性的系统,适合部署在廉价的机器上。能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS 允许您连接多个集群中包含的节点 ,那些集群上分布着一些数据文件。然后可以将那些数据文件作为一个无缝文件系统来进行访问和存储。

2) Yarn:(Yet Another Resource Negotiator)也被称为MapReduce2.0是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,为集群在利用率、资源统一管理和数据共享等方面提供支持。

3) MapReduce:是面向大数据并行处理的计算模型、框架和平台,用于大规模数据集(大于1TB)的并行运算。"Map(映射)"和"Reduce(归约)",是其主要思想。其实现是指定一个Map函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce函数,用来保证所有映射的键值对中的每一个共享相同的键组。

2.      数据采集组件

1) Apache Flume:是一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,支持在日志系统中定制各类数据发送方,用于收集数据;并提供对数据进行简单处理,写到各种数据存储系统中,如HDFS、HBase、kafka。

2) Apache Sqoop:是一个用来将Hadoop和RDBMS中的数据相互转移的工具,可以将一个关系型数据库中的数据导进到HDFS中,也可以将HDFS的数据导进到关系型数据库中。Sqoop底层是通过MapReduce作业并行读取数据库的。

3) Apache Kafka:是一个流处理平台,为处理实时数据提供一个统一、高吞吐、低延迟的平台。其持久化层本质上是一个“按照分布式事务日志架构的大规模发布/订阅消息队列”,这使它作为企业级基础设施来处理流式数据非常有价值。

4) Apache Nifi:是为了实现系统间数据流的自动化而构建的数据对接的集成框架。但我们在此处使用它来表示系统之间的自动和管理信息流。这个问题空间一直存在,因为企业有多个系统,其中一些系统创建数据,一些系统消耗数据。

3.      数据安全组件

1)    Apache Sentry:是一个针对存储在 Hadoop 集群中的数据和元数据提供加强的细粒度的基于角色的授权系统,可以通过验证的用户提供数据访问权限。

2)    Apache Ranger:是一个集中式框架,提供操作、监控、管理复杂的数据权限,它提供一个集中的管理机制,管理基于 Apache Hadoop 生态圈的所有数据权限。可以支持hive的列级授权,支持审计。

4.     数据存储

1) Apache HBase:是一个参考了谷歌的BigTable建模的运行在HDFS文件系统上的面向列存储的开源非关系型分布式存储系统(NoSQL),可以容错地存储海量稀疏的数据。

2) Apache Kudu:是一个面向列存储的存储系统,可以同时提供低延迟的随机读写和高效的数据分析能力,支持水平扩展,使用Raft协议进行一致性保证。是对HBase能力的补充。

3) Apache Parquet:是面向分析型业务的列式存储格式,具有更高的存储性能和资源利用率,可以适配多种计算框架。

5.     服务协作

1) Apache Zoomkeeper:是一种分布式协调服务,为大型分布式计算提供分布式配置服务、同步服务和命名注册。

6.     工作流与调度

1)Apache Oozie:是一个基于服务器的工作流程 调度系统,用于管理Hadoop作业, MapReduce和Pig Jobs的任务调度与协调。

2) Linkedin Azkaban:是一个分布式工作流管理器,运行Hadoop作业用以解决Hadoop作业依赖性问题。并提供易于使用的Web用户界面来维护和跟踪工作流程。

3) Apache Falcon:是一个在Hadoop中数据生命周期的管理框架,提供了一个用于治理和编排 Hadoop 内部和周边数据流的数据处理框架。该框架为获取和处理数据集、复制与保留数据集、重新定向位于非Hadoop扩展中的数据集、维护审核跟踪与沿袭提供了关键性的管控框架。

7.     分布式计算

1)Apache Flink:是一个分布式大数据处理引擎,具有强大的流和批处理功能,可对无穷数据集和无限数据流进行有状态计算。可部署在各种集群环境,对各种大小的数据规模进行快速计算。

2) Apache Tez:是一个针对Hadoop数据处理应用程序的、支持 DAG 作业的分布式执行框架,可以将多个有依赖的作业转换为一个作业从而大幅提升 DAG 作业的性能。

3) Apache Pig:是一个基于Hadoop的大规模数据分析平台,用于分析较大的数据集,并将它们表示为数据流。提供的SQL-LIKE语言Pig Latin,会把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算。Pig为复杂的海量数据并行计算提供了一个简单的操作和编程接口。

4) Apache Spark:是一种用于大数据和机器学习的复杂分析构建的大数据处理框架。其特点是:速度快、便于使用、统一的引擎。

5)Apache Storm:是一个分布式数据流实时计算系统。可以可靠地处理无限数据流。

8.     数据分析:

1)Apache Hive:是基于Hadoop的一个数据仓库工具,提供数据的精炼,查询和分析能力。可以将结构化的数据文件映射为一张数据库表,并提供HSQL查询功能,SQL语句转换为MapReduce任务运行。

2)Cloudera Impala:是一个高性能、低延迟的SQL查询引擎。提供了访问存储在Hadoop分布式文件系统中的数据的最快方法。

3) Apache Phoenix:是构建在HBase上的一个SQL层,可以用标准的JDBC APIs来创建表,插入数据和对HBase数据进行查询,实现OLTP事务能力。

4)Apache Kylin:是一个分布式分析引擎,提供Hadoop/Spark上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,能在亚秒内查询巨大的Hive表。

9.     系统部署

1) Apache Mesos:是一个集群管理软件,支持Hadoop、ElasticSearch、Spark、Storm 和Kafka等应用架构,可以将CPU,内存,存储和其他计算资源从机器(物理或虚拟)中抽象出来,使容错和弹性分布式系统能够轻松构建并有效运行。

2) Cloudera HUE:是一个开源的Apache Hadoop UI系统,可以通过浏览器访问Web控制台与Hadoop集群进行交互来分析处理数据,可以操作HDFS上的数据,运行MapReduce Job,执行Hive的SQL语句,浏览HBase数据库等等

3) Apache Helix:是一个通用的集群管理框架,用于自动管理节点集群上的分区,复制和分布式资源。在面对节点故障和恢复,集群扩展和重新配置时自动重新分配资源。

10.  数据可视化

1) Apache Zeppelin:是一个web版的notebook,用于做数据分析和可视化。可以接入不同的数据处理引擎,包括spark, hive等,原生支持scala, java, shell, markdown等。

11.  机器学习

1) Apache Mahout:是一个算法库,提供一些可扩展的机器学习领域经典算法的实现,主要集中在协同过滤,聚类和分类领域。可以有效地扩展到Hadoop集群上。

Deeplearning4j:是一套基于Java语言的神经网络工具包,可以构建、定型和部署神经网络。并与Hadoop和Spark集成,支持分布式CPU和GPU,为商业环境所设计。包括了分布式、多线程的深度学习框架,以及普通的单线程深度学习框架。定型过程以集群进行,也就是说,Deeplearning4j可以快速处理大量数据。神经网络可通过[迭代化简]平行定型,与 Java、 Scala 和 Clojure 均兼容。Deeplearning4j在开放堆栈中作为模块组件的功能,使之成为首个为微服务架构打造的深度学习框架。

初识大数据(二. Hadoop是什么)的更多相关文章

  1. hadoop(一)之初识大数据与Hadoop

    前言 从今天起,我将一步一步的分享大数据相关的知识,其实很多程序员感觉大数据很难学,其实并不是你想象的这样,只要自己想学,还有什么难得呢? 学习Hadoop有一个8020原则,80%都是在不断的配置配 ...

  2. Hadoop基础之初识大数据与Hadoop

    前言 从今天起,我将一步一步的分享大数据相关的知识,其实很多程序员感觉大数据很难学,其实并不是你想象的这样,只要自己想学,还有什么难得呢? 学习Hadoop有一个8020原则,80%都是在不断的配置配 ...

  3. 大数据和Hadoop生态圈

    大数据和Hadoop生态圈 一.前言: 非常感谢Hadoop专业解决方案群:313702010,兄弟们的大力支持,在此说一声辛苦了,经过两周的努力,已经有啦初步的成果,目前第1章 大数据和Hadoop ...

  4. 大数据测试之hadoop集群配置和测试

    大数据测试之hadoop集群配置和测试   一.准备(所有节点都需要做):系统:Ubuntu12.04java版本:JDK1.7SSH(ubuntu自带)三台在同一ip段的机器,设置为静态IP机器分配 ...

  5. 大数据:Hadoop入门

    大数据:Hadoop入门 一:什么是大数据 什么是大数据: (1.)大数据是指在一定时间内无法用常规软件对其内容进行抓取,管理和处理的数据集合,简而言之就是数据量非常大,大到无法用常规工具进行处理,如 ...

  6. Hadoop专业解决方案-第1章 大数据和Hadoop生态圈

    一.前言: 非常感谢Hadoop专业解决方案群:313702010,兄弟们的大力支持,在此说一声辛苦了,经过两周的努力,已经有啦初步的成果,目前第1章 大数据和Hadoop生态圈小组已经翻译完成,在此 ...

  7. 分享知识-快乐自己:大数据(hadoop)环境搭建

    大数据 hadoop 环境搭建: 一):大数据(hadoop)初始化环境搭建 二):大数据(hadoop)环境搭建 三):运行wordcount案例 四):揭秘HDFS 五):揭秘MapReduce ...

  8. 大数据技术Hadoop入门理论系列之一----hadoop生态圈介绍

    Technorati 标记: hadoop,生态圈,ecosystem,yarn,spark,入门 1. hadoop 生态概况 Hadoop是一个由Apache基金会所开发的分布式系统基础架构. 用 ...

  9. [Hadoop 周边] 浅谈大数据(hadoop)和移动开发(Android、IOS)开发前景【转】

    原文链接:http://www.d1net.com/bigdata/news/345893.html 先简单的做个自我介绍,我是云6期的,黑马相比其它培训机构的好偶就不在这里说,想比大家都比我清楚: ...

  10. 老李分享:大数据框架Hadoop和Spark的异同 1

    老李分享:大数据框架Hadoop和Spark的异同   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨 ...

随机推荐

  1. hibernate的开始

    1.1对象的持久化 对象持久化是指将内存中的对象保存到可永久保存的存储设备中(如磁盘)的一种技术.(hibernate是通过id来管理对象) 1.2怎样实现持久化 1 对象序列化 2 JDBC 3 O ...

  2. Android判断一个点是否在矩形区域内

    个人遇到的问题判断按钮的点击事件还是滑动事件 private boolean button1Down = false; private boolean button2Down = false; pri ...

  3. 网络通信实验(2)TCP/IP LWIP 简介

    TCP/IP 简介 TCP/IP 中文名为传输控制协议/因特网互联协议,又名网络通讯协议,是 Internet 最基本的协议. Internet 国际互联网络的基础,由网络层的 IP 协议和传输层的 ...

  4. 使用FFmpeg解码并用swscale将YUV转为RGB

    #include <stdio.h> #include <libavcodec/avcodec.h> #include <libavformat/avformat.h&g ...

  5. ROS零门槛学渣教程系列(二)——Linux常用指令:mkdir、tar、 unzip、cp、scp、mv、rm、find、apt、ssh

    Linux常用指令通过上一教程,我们获得了ubuntu系统.Linux是一个很大的领域.但不要紧张,我们一步步来就是了,跟着教程,需要能用到新知识,会提前介绍给大家.下面学习几个常用的Linux指令. ...

  6. Linux驱动之平台设备驱动模型简析(驱动分离分层概念的建立)

    Linux设备模型的目的:为内核建立一个统一的设备模型,从而有一个对系统结构的一般性抽象描述.换句话说,Linux设备模型提取了设备操作的共同属性,进行抽象,并将这部分共同的属性在内核中实现,而为需要 ...

  7. scrapy 爬取斗罗大陆漫画

    # -*- coding: utf-8 -*- import scrapy import json import os import urllib import time from scrapy.ht ...

  8. php JS 导出表格特殊处理

    但是这样导出身份证号会变为科学计数: 解决方法就是: 我们了解一下excel从web页面上导出的原理.当我们把这些数据发送到客户端时,我们想让客户端程序(浏览器)以excel的格式读取 它,所以把mi ...

  9. linux 7安装telnet,设置telnet自启动,使用root telnet登录

    1.安装启动服务 # yum install telnet-server # yum install xinetd # systemctl enable xinetd.service # system ...

  10. vue项目中编写一个图片预览的公用组件

    今天产品提出了一个查看影像的功能需求. 在查看单据的列表中,有一列是影像字段,一开始根据单据号调用接口查看是否有图片附件,如果有则弹出一个全屏的弹出层,如果没有给出提示.而且,从列表进入详情之后,附件 ...