Kha*_*efa 181 hadoop hbase hive apache-pig
使用Hadoop或HBase或Hive有什么好处?
根据我的理解,HBase避免使用map-reduce,并且在HDFS之上具有面向列的存储.Hive是Hadoop和HBase的类似sql的接口.
我也想知道Hive与Pig的比较.
Tar*_*riq 341
MapReduce只是一个计算框架.HBase与它无关.也就是说,您可以通过编写MapReduce作业来有效地向/从HBase提取数据或从中获取数据.或者,您可以使用其他HBase API(例如Java)编写顺序程序来放置或获取数据.但我们使用Hadoop,HBase等来处理大量数据,因此这没有多大意义.当数据太大时,使用正常的顺序程序效率非常低.
回到问题的第一部分,Hadoop基本上是两件事:分布式文件系统(HDFS) + 计算或处理框架(MapReduce).与所有其他FS一样,HDFS也为我们提供存储,但是以容错的方式提供高吞吐量和较低的数据丢失风险(因为复制).但是,作为FS,HDFS缺乏随机读写访问.这是HBase进入画面的地方.它是一个分布式,可扩展的大数据存储,以Google的BigTable为蓝本.它将数据存储为键/值对.
来到Hive.它为现有Hadoop集群提供数据仓库设施.除此之外,它提供了一个类似SQL的界面,使您的工作更轻松,以防您来自SQL背景.您可以在Hive中创建表并在那里存储数据.除此之外,您甚至可以将现有的HBase表映射到Hive并对其进行操作.
虽然Pig基本上是一种数据流语言,它允许我们非常容易和快速地处理大量数据.猪基本上有两部分:猪翻译和语言,猪拉丁.你在PigLatin中编写Pig脚本并使用Pig解释器处理它们.猪让我们的生活变得更轻松,否则编写MapReduce总是不容易.事实上,在某些情况下,它真的会变成一种痛苦.
我曾写过一篇关于Hadoop生态系统不同工具的简短比较的文章.这不是深度比较,而是对这些工具的简短介绍,可以帮助您入门.(只是为了补充我的答案.不打算自我推销)
Hive和Pig查询都会被转换为MapReduce作业.
HTH
小智 52
我最近在我的公司实施了一个Hive数据平台,因为我是一个单独的团队,所以我可以用第一人称对话.
我对以下选项进行了基准测试:
HBase就像一张地图.如果您知道密钥,您可以立即获得价值.但是如果你想知道Hbase中有多少整数键在1000000到2000000之间,那么它不适合单独使用Hbase.
如果要汇总,汇总,跨行分析数据,请考虑Hive.
希望这会有所帮助.
Hive实际上非常好......我知道,我现在已经活了12个月...... HBase也是 ......
Rav*_*abu 27
Hadoop是一个框架,允许使用简单的编程模型跨计算机集群分布式处理大型数据集.
Hadoop中有四个主要模块.
Hadoop Common:支持其他Hadoop模块的常用实用程序.
Hadoop分布式文件系统(HDFS™):一种分布式文件系统,可提供对应用程序数据的高吞吐量访问.
Hadoop YARN:作业调度和集群资源管理的框架.
Hadoop MapReduce:基于YARN的系统,用于并行处理大型数据集.
在进一步说明之前,让我们注意我们有三种不同类型的数据.
结构化:结构化数据具有强大的架构,并且在写入和读取操作期间将检查架构.例如,Oracle,MySQL Server等RDBMS系统中的数据.
非结构化:数据没有任何结构,可以是任何形式 - Web服务器日志,电子邮件,图像等.
半结构化:数据没有严格的结构,但有一些结构.例如XML文件.
根据要处理的数据类型,我们必须选择正确的技术.
还有一些项目,它们是Hadoop的一部分:
HBase™:可扩展的分布式数据库,支持大型表的结构化数据存储.
Hive ™:一种数据仓库基础架构,可提供数据汇总和临时查询.
Pig™:用于并行计算的高级数据流语言和执行框架.
Hive Vs PIG比较可以在本文和我在SE 问题的其他帖子中找到.
HBASE不会取代Map Reduce.HBase是可扩展的分布式数据库,Map Reduce是用于分布式数据处理的编程模型.Map Reduce可以在处理过程中对HBASE中的数据起作用.
您可以将HIVE/HBASE用于结构化/半结构化数据,并使用Hadoop Map Reduce进行处理
您可以使用SQOOP从传统的RDBMS数据库Oracle,SQL Server等导入结构化数据,并使用Hadoop Map Reduce进行处理
您可以使用FLUME处理非结构化数据并使用Hadoop Map Reduce进行处理
看看:Hadoop用例.
应该使用Hive对一段时间内收集的数据进行分析查询.例如,计算趋势,汇总网站日志,但不能用于实时查询.
HBase适用于大数据的实时查询.Facebook将其用于消息传递和实时分析.
PIG可用于构建数据流,运行预定作业,处理大量数据,汇总/汇总数据并存储到关系数据库系统中.适用于临时分析.
Hive可用于临时数据分析,但它不支持与PIG不同的所有非结构化数据格式.
小智 6
深入了解
Hadoop
Hadoop是Apache基金会的一个开源项目。它是一个用 编写的框架Java,最初由 Doug Cutting 在 2005 年开发。创建它是为了支持Nutch文本搜索引擎的分发。Hadoop使用谷歌的Map Reduce和谷歌文件系统技术为基础。
Hadoop的特点
Hadoop是为了高吞吐量而不是低延迟。它是处理大量数据的批处理操作;因此响应时间不是即时的。RDBMS.Hadoop 的版本
有两个Hadoop可用版本:
Hadoop 1.0
它有两个主要部分:
1. 数据存储框架
它是一种称为 Hadoop 分布式文件系统 ( HDFS)的通用文件系统。
HDFS 是无模式的
它只是存储数据文件,这些数据文件几乎可以是任何格式。
这个想法是尽可能接近其原始形式存储文件。
这反过来为业务部门和组织提供了急需的灵活性和敏捷性,而不必过度担心它可以实施的内容。
2. 数据处理框架
这是一个简单的函数式编程模型,最初由 Google 作为MapReduce.
它本质上使用两个功能:MAP和REDUCE处理数据。
“映射器”接收一组键值对并生成中间数据(这是另一个键值对列表)。
“Reducers”然后作用于这个输入以产生输出数据。
这两个功能似乎彼此隔离地工作,从而使处理能够以高度并行、容错和可扩展的方式高度分布。
Hadoop 1.0 的局限性
第一个限制是对MapReduce编程专业知识的要求。
它只支持批处理,虽然适用于日志分析、大型数据挖掘项目等任务,但几乎不适合其他类型的项目。
一个主要限制是它Hadoop 1.0与 紧密计算耦合MapReduce,这意味着成熟的数据管理供应商留下了两种意见:
要么重写它们的功能,MapReduce以便它可以在Hadoop或
从中提取数据HDFS或在Hadoop.
所有选项都不可行,因为它会导致由于数据移入和移出Hadoop集群而导致流程效率低下。
Hadoop 2.0
在Hadoop 2.0,HDFS仍然是数据存储框架。
然而,被称为新的和独立的资源管理框架ý等甲诺特尔ř esource Ñ egotiater(YARN已添加)。
YARN 支持任何能够将自身划分为并行任务的应用程序。
YARN 协调提交的应用程序的子任务分配,从而进一步增强应用程序的灵活性、可扩展性和效率。
它的工作原理是使用Application Master代替Job Tracker,在由新节点管理器管理的资源上运行应用程序。
ApplicationMaster 能够运行任何应用程序,而不仅仅是MapReduce.
这意味着它不仅支持批处理,还支持实时处理。MapReduce不再是唯一的数据处理选项。
Hadoop的优势
它将数据存储在其本机中。在键入数据或存储数据时没有强加任何结构。HDFS是模式较少。只有在稍后需要处理数据时,才会将结构强加于原始数据。
它是可扩展的。Hadoop可以在数百个并行运行的廉价服务器上存储和分发非常大的数据集。
它对失败具有弹性。Hadoop是容错。它勤奋地进行数据复制,这意味着每当数据发送到任何节点时,相同的数据也会复制到集群中的其他节点,从而确保在节点发生故障时,始终有另一个数据副本可供使用。
它是灵活的。的主要优势之一Hadoop是它可以处理任何类型的数据:结构化、非结构化或半结构化。此外,Hadoop由于“将代码移动到数据”范例,处理速度非常快。
Hadoop生态系统
以下是Hadoop生态系统的组成部分:
HDFS:Hadoop分布式文件系统。它只是存储尽可能接近原始形式的数据文件。
HBase:它是 Hadoop 的数据库,与RDBMS. 它支持大表的结构化数据存储。
Hive:它可以使用与标准非常相似的语言分析大型数据集ANSI SQL,这意味着任何熟悉的人都SQL应该能够访问Hadoop集群上的数据。
Pig:它是一种易于理解的数据流语言。它有助于分析大型数据集,这与Hadoop. Pig脚本会MapReduce被Pig解释器自动转换为作业。
ZooKeeper:它是分布式应用程序的协调服务。
Oozie:它是一个schedular管理 ApacheHadoop作业的工作流系统。
Mahout:它是一个可扩展的机器学习和数据挖掘库。
Chukwa:它是用于管理大型分布式系统的数据收集系统。
Sqoop:用于在Hadoop关系数据库等结构化数据存储之间传输批量数据。
Ambari:它是一个基于 Web 的工具,用于配置、管理和监控Hadoop集群。
蜂巢
Hive是一种数据仓库基础设施工具,用于处理Hadoop. 它位于Hadoop总结大数据之上,使查询和分析变得容易。
蜂巢不是
关系型数据库
在线事务处理的设计 ( OLTP)。
一种用于实时查询和行级更新的语言。
蜂巢的特点
它将模式存储在数据库中并将处理后的数据存储到HDFS.
它专为OLAP.
它提供了SQL用于查询调用HiveQL或的类型语言HQL。
它更家庭、更快速、可扩展和可扩展。
蜂巢架构
Hive 架构中包含以下组件:
用户界面:Hive是一种data warehouse可以在用户和HDFS. Hive支持的用户界面是 Hive Web UI、Hive 命令行和 Hive HD Insight(在 Windows Server 中)。
MetaStore:Hive选择各自database servers存储模式或Metadata表、数据库、表中的列、它们的数据类型和HDFS映射。
HiveQL 流程引擎:HiveQL类似于SQL查询Metastore. 它是传统MapReduce程序方法的替代品之一。而不是写的MapReduce中Java,我们可以写一个查询MapReduce并处理它。
执行引擎:HiveQL流程引擎的结合部分,MapReduce是Hive执行引擎。执行引擎处理查询并生成与MapReduce results. 它使用MapReduce.
HDFS 或 HBase:Hadoop分布式文件系统或者HBase是将数据存储到文件系统中的数据存储技术。
我从事Lambda架构处理实时和批量加载.如果在传感器发送火警或在银行交易的情况下进行欺诈检测,则需要进行快速决策,需要实时处理.需要批处理来汇总可以提供给BI系统的数据.
我们将Hadoop生态系统技术用于上述应用.
实时处理
Apache Storm:流数据处理,规则应用
HBase:用于提供实时仪表板的数据存储区
批处理 Hadoop:处理大量数据.360度概览或向事件添加上下文.Pig,MR,Spark,Hive,Shark等接口或框架有助于计算.这一层需要调度程序,Oozie是不错的选择.
事件处理层
Apache Kafka是第一层消耗来自传感器的高速事件.Kafka通过Linkedin连接器提供实时和批量分析数据流.
| 归档时间: |
|
| 查看次数: |
134683 次 |
| 最近记录: |