Hive本质1大数据和Hive概述
关系和NoSQL数据库与Hadoop
为了更好地理解关系数据库,NoSQL数据库和Hadoop之间的差异,让我们将它们与旅行方式进行比较。您会惊讶地发现它们有许多相似之处。当人们旅行时,他们要么乘坐汽车或飞机,这取决于旅行距离和费用。例如,当您从多伦多前往温哥华时,就旅行时间与成本而言,飞机始终是首选。当您从多伦多前往尼亚加拉瀑布时,一辆车总是一个不错的选择。当您从多伦多前往蒙特利尔时,有些人可能更喜欢乘车去飞机。这里的距离和成本就像大数据量和投资一样。传统的关系数据库就像汽车一样,Hadoop大数据工具就像飞机一样。当您处理少量数据(短距离)时,关系数据库(如汽车)始终是最佳选择,因为处理少量或中等数量的数据非常快捷灵活。当您处理大量数据(长距离)时,Hadoop(如飞机)是最佳选择,因为它更具线性可扩展性,快速且稳定,可处理大量数据。你可以从多伦多开车到温哥华,但需要花费太多时间。
您也可以从多伦多乘坐飞机前往尼亚加拉瀑布,但是前往机场需要更多时间,而且比开车旅行需要更多费用。
此外,您可以乘坐船只或火车。这就像NoSQL数据库,它提供了关系数据库和Hadoop在良好性能方面的特性和平衡,以及对中等到大量数据的各种数据格式支持。
批处理,实时和流处理
使用批处理批量处理数据。它从输入读取数据,处理它,并将其写入输出。 Apache Hadoop是使用MapReduce范例的分布式批处理系统中最着名和最流行的开源实现。数据存储在称为Hadoop分布式文件系统(HDFS)的共享和分布式文件系统中,并分为多个分区,这些分区是MapReduce处理的逻辑数据分区。
要使用MapReduce范例处理这些拆分,map任务会读取拆分并将其所有键/值对传递给map函数,并将结果写入中间文件。映射阶段完成后,reducer将读取通过shuffle进程发送的中间文件,并将它们传递给reduce函数。最后,reduce任务将结果写入最终输出文件。 MapReduce模型的优点包括使分布式编程更容易,接近线性加速,良好的可扩展性以及容错性。批处理模型的缺点是无法执行递归或迭代作业。此外,明显的批处理行为是在reduce作业启动之前所有输入必须通过map准备好,这使得MapReduce不适合在线和流处理用例。
实时处理用于处理数据并几乎立即获得结果。大数据实时即席查询领域的这一概念最初是由Google在Dremel中实现的。它使用一种新颖的柱状存储格式用于嵌套结构,具有快速索引和可伸缩聚合算法,用于并行计算查询结果而不是批处理序列。这两种技术是实时处理的主要特征,并且被类似的实现使用,例如Impala,Presto和Drill,由柱状存储数据格式提供支持,例如Parquet,ORC,CarbonData和Arrow。另一方面,内存计算无疑为实时处理提供了解决方案。与硬盘的200兆字节/秒相比,内存计算提供了非常高的带宽,超过10千兆字节/秒。此外,与硬盘相比,延迟相对较低,为纳秒与毫秒。随着RAM的价格每天越来越低,内存计算更实惠 ,例如Apache Spark(https://spark.apache.org/),这是一种流行的内存计算开源实现。
Spark可以轻松地与Hadoop集成,其内存数据结构Resilient Distributed Dataset(RDD)可以从数据源(如HDFS和HBase)生成,以实现高效的缓存。
流处理用于连续处理实时流数据并对其进行操作以获得结果。在流处理中,有两种常用的通用流处理框架:Storm(https://storm.apache.org/)和Flink(https://flink.apache.org/)。两个框架都在Java虚拟机(JVM)上运行,并且都处理密钥流。在编程模型方面,Storm为您提供了构建框架的基本工具,而Flink为您提供了一个定义明确且易于使用的框架。此外,Samza(http://samza.ap ache.org/)和Kafka Stream(https://kafka.apache.org/documentation/streams/)利用Kafka进行消息缓存和转换。最近,Spark还提供了一种类型的流处理。
Hadoop生态系统概述
Hadoop于2011年首次由Apache发布,版本为1.0.0,仅包含HDFS和MapReduce。 Hadoop从一开始就被设计为计算(MapReduce)和存储(HDFS)平台。随着对大数据分析的需求不断增加,Hadoop吸引了大量其他软件来解决大数据问题并融入以Hadoop为中心的大数据生态系统。
在当前的Hadoop生态系统中,HDFS仍然是使用硬盘存储时的主要选择,而Alluxio提供了几乎分布式的内存替代方案。在HDFS之上,Parquet,Avro和ORC数据格式可以与用于计算和存储优化的快速压缩算法一起使用。 Yarn作为第一个Hadoop通用资源管理器,旨在实现更好的资源管理和可扩展性。作为内存计算引擎,Spark和Ignite能够在Yarn上运行,以便与Hadoop紧密协作。
另一方面,Kafka,Flink和Storm主导着流处理。 HBase是一个领先的NoSQL数据库,尤其是在Hadoop集群上。对于机器学习,Spark MLlib和Madlib以及新的Mahout。 Sqoop仍然是在Hadoop和关系数据库之间交换数据的主要工具之一。 Flume是一种成熟,分布且可靠的日志收集工具,用于将数据移动或收集到HDFS。 Impala和Drill能够直接针对Hadoop上的数据启动交互式SQL查询。此外,Hive over Spark / Tez以及Live Long和Process(LLAP)为用户提供了在不同计算框架(而不是MapReduce)上使用内存数据缓存在长期流程中运行查询的能力。因此,Hive在生态系统中扮演着比以往更重要的角色。我们也很高兴看到Ambari成为新一代集群,除了Zookeeper之外,管理工具还提供更强大的集群管理和协调。对于计划和工作流程管理,我们可以使用Airflow或Oozie。最后,我们有一个开源治理和元数据服务,Altas,它支持生态系统中大数据的合规性和线条.
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
TalkingData的Spark On Kubernetes实践
众所周知,Spark是一个快速、通用的大规模数据处理平台,和Hadoop的MapReduce计算框架类似。但是相对于MapReduce,Spark凭借其可伸缩、基于内存计算等特点,以及可以直接读写Hadoop上任何格式数据的优势,使批处理更加高效,并有更低的延迟。实际上,Spark已经成为轻量级大数据快速处理的统一平台。Spark作为一个数据计算平台和框架,更多的是关注Spark Application的管理,而底层实际的资源调度和管理更多的是依靠外部平台的支持: Spark官方支持四种Cluster Manager:Spark standalone cluster manager、Mesos、YARN和Kubernetes。由于我们TalkingData是使用Kubernetes作为资源的调度和管理平台,所以Spark On Ku
- 下一篇
开发函数计算的正确姿势 —— Fun validate 语法校验排错指南 | 5月22日云栖夜读
点击订阅云栖夜读日刊,专业的技术干货,不容错过! 阿里专家原创好文 1.开发函数计算的正确姿势 —— Fun validate 语法校验排错指南 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。阅读更多》》 2.从HelloWorld看Knative Serving代码实现 本文讲述:Knative Serving以Kubernetes和Istio为基础,支持无服务器应用程序和函数的部署并提供服务。我们从部署一个HelloWorld示例入手来分析Knative Serving的代码细节。阅读更多》》 3.在加州最古老的监狱教课是种什么样的体验? 彼得·斯登(Peter Stern)是阿里巴巴战略投资部的一名洋小二,是办公室出了名的“空中飞人”。斯登一年中大部分时间都在各大洲飞来飞去——但无论多忙,每个月他都会去圣昆丁监狱上课。阅读更多》》 4.阿里五年晋升三次,这个程序员要聊聊他的选择 小二穆远是蚂蚁金服的一名程序员,五年晋升了三次,他要聊聊自己的五...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- MySQL8.0.19开启GTID主从同步CentOS8
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Hadoop3单机部署,实现最简伪集群