惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

月光博客
月光博客
罗磊的独立博客
The GitHub Blog
The GitHub Blog
V
V2EX
Last Week in AI
Last Week in AI
博客园 - 聂微东
MyScale Blog
MyScale Blog
美团技术团队
L
LangChain Blog
博客园 - Franky
腾讯CDC
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园_首页
S
SegmentFault 最新的问题
爱范儿
爱范儿
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Stack Overflow Blog
Stack Overflow Blog
量子位
小众软件
小众软件
宝玉的分享
宝玉的分享
J
Java Code Geeks
Google DeepMind News
Google DeepMind News
D
Docker
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报

博客园 - 小镇

初识大数据(五. 大数据平台基本架构) 初识大数据(四. 大数据与人工智能的关系) 初识大数据(三. Hadoop与MPP数据仓库) 初识大数据(一. 什么是大数据) 我的微博 微软官方中文新书《Windows Phone 7应用开发指南 》出版 wp7.1 联系人 wp7.1 VideoBrush WP7.1 应用程序发布到Marketplace windows phone 7.1 RC 版 SDK Background Agent and Scheduled Task 自定义控件库Daisy.WP7.Controls1.2版 wp7.1 使用本地数据库 Windows Phone 7.1 新增Task XNA绘制Silverlight控件 windows phone 7.1 XNA in Silverlight Wp7.1新增API windows phone 7.1 中两个新增控件 Windows Phone 7.1 发布了
初识大数据(二. Hadoop是什么)
小镇 · 2018-12-03 · via 博客园 - 小镇

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在开放堆栈中作为模块组件的功能,使之成为首个为微服务架构打造的深度学习框架。