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. angular1时间控件之时间比较大小,比如入住日期和离店日期,入住不能晚于离店时间

    功能可能是大家有时遇到的,不过angluar1现在用的人很少了,希望帮上和我一样掉坑里的朋友吧,之前自己也在网上找过几乎没找到angluar1和我代码需求一样的控件,没办法自己造 了,看代码图 就差不 ...

  2. Java 中的日志

    参考:https://www.cnblogs.com/gavanwanggw/p/7305218.html 日志框架: 提供日志调用的接口,实际的日志输出托付给日志系统实现 JCL:比较流行的日志框架 ...

  3. Exp3 免杀原理与实践 20165110

    Exp3 免杀原理与实践 20165110 一.. 实践内容 1.正确使用msf编码器(0.5分),msfvenom生成如jar之类的其他文件(0.5分),veil-evasion(0.5分),加壳工 ...

  4. stark组件开发之组合搜索高级显示和扩展

    上一篇,我只是做了. 默认的显示. def __iter__(self): '''默认显示. 用户可以自定制''' if isinstance(self.queryset_or_tuple, list ...

  5. 关于webservlet 请求异步处理,链接未关闭出现的bug

    webservlet  +redis 的消息发布订阅 ,挺好的 当请求到来,向redis server申请一个频道 ,然后等着另一端架设是B 处理完毕获得到处理信息调用redis ,使用redis 往 ...

  6. “无法将“Enable-Migrations”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。”的一种解决方式

    通过以下几个步骤解决: 1.install-package entityFramework: 2.更新 nuget: 3.更新 visual studio: 我是通过第三个步骤解决的.

  7. python 微信轰炸

    from __future__ import unicode_literals import requests import itchat import time def get_news(): ur ...

  8. Web自动化附件上传

    在进行web界面自动化编写时,可以根据定位元素的方式进行编写,但是如果某一个功能涉及到有附件上传功能,那么该如何解决呢? 继续往下看>>>>> 场景:登录系统后,进行新增 ...

  9. MAC使用超级终端

    其实很简单. 先用ls看看/dev/tty.*哪个是具体的串口,我这里使用的edison的板子,所以插到macos上后可以看到的设备节点为: 只需要使用screen 命令即可,具体的命令格式如下: s ...

  10. HDU2035

    #include <bits/stdc++.h> using namespace std; int fastpow(int a,int b,int k) { ; while(b) { ) ...