Apache Pig教程 https://www.w3cschool.cn/apache_pig/index.html
Hadoop教程 https://www.w3cschool.cn/hadoop/?
Zookeeper教程 https://www.w3cschool.cn/zookeeper/index.html
Kafka下的生产消费者模式与订阅发布模式 https://blog.csdn.net/zwgdft/article/details/54633105
Hadoop Hive HBase Spark Storm概念解释
Hadoop
Hadoop是什么?
答:一个分布式系统基础架构。
Hadoop解决了什么问题?
答:解决了大数据(大到一台计算机无法进行存储,一台计算机无法在要求的时间内进行处理)的可靠存储(HDFS)和处理(MapReduce)。
Hive
Hive是什么?
答:Hive是建立在Hadoop之上的,使用Hadoop作为底层存储的批处理系统。(可以理解为MapReduce的一层壳)
Hive解决了什么问题?
答:Hive是为了减少MapReduce jobs的编写工作。
HBase
HBase是什么?
答:HBase是一种Key/Value系统,它运行在HDFS之上。
HBase解决了什么问题?
答:Hbase是为了解决Hadoop的实时性需求。
Spark和Storm
是什么?
答:Spark和Storm都是通用的并行计算框架。
解决了什么问题?
答:解决Hadoop只适用于离线数据处理,而不能提供实时数据处理能力的问题。
区别:
- Spark基于这样的理念,当数据庞大时,把计算过程传递给数据要比把数据传递给计算过程要更富效率。而Storm是把数据传递给计算过程。
基于设计理念的不同,其应用领域也不同。Spark工作于现有的数据全集(如Hadoop数据)已经被导入Spark集群,Spark基于in-memory管理可以进行快讯扫描,并最小化迭代算法的全局I/O操作。Storm在动态处理大量生成的“小数据块”上要更好(比如在Twitter数据流上实时计算一些汇聚功能或分析)。
Hadoop,HBase,Storm,Spark到底是什么?
Hadoop=HDFS+Hive+Pig+…
HDFS: 存储系统
MapReduce:计算系统
Hive:提供给SQL开发人员(通过HiveQL)的MapReduce,基于Hadoop的数据仓库框架
Pig:基于Hadoop的语言开发的
HBase:NoSQL数据库
Flume:一个收集处理Hadoop数据的框架
Oozie:一个让用户以多种语言(如MapReduce,Pig和Hive)定义一系列作业的工作流处理系统
Ambari:一个基于web的部署/管理/监控Hadoop集群的工具集
Avro:允许编码Hadoop文件的schema的一种数据序列化系统
Mahout:一个数据挖掘库,它包含了最流行的一些数据挖据算法,并且以MapReduce模型来实现他们
Sqoop:一个从非Hadoop数据存储(如关系数据库和数据仓库)进来的移动数据到Hadoop中的连接工具
HCatalog:一个中心化的元数据管理以及Apache Hadoop共享服务,它允许在Hadoop集群中的所有数据的统一视图,并允许不同的工具,包括Pig和Hive,处理任何数据元素,而无需知道身体在集群中的数据存储。
BigTop:为了创造一个更正式的程序或框架Hadoop的子项目及相关组件的目标提高Hadoop的平台,作为一个整体的包装和互操作性测试。
Apache Storm:一个分布式实时计算系统,Storm是一个任务并行连续计算引擎。 Storm本身并不典型在Hadoop集群上运行,它使用Apache ZooKeeper的和自己的主/从工作进程,协调拓扑,主机和工作者状态,保证信息的语义。无论如何, Storm必定还是可以从HDFS文件消费或者从文件写入到HDFS。
Apache Spark:一种快速,通用引擎用于大规模数据处理,Spark是一个数据并行通用批量处理引擎。工作流中在一个类似的和怀旧风格的MapReduce中定义,但是,比传统Hadoop MapReduce的更能干。Apache Spark有其流API项目,该项目通过短间隔批次允许连续处理。Apache Spark本身并不需要Hadoop操作。但是,它的数据并行模式,需要稳定的数据优化使用共享文件系统。该稳定源的范围可以从S3,NFS或更典型地,HDFS。执行Spark应用程序并不需要Hadoop YARN。Spark有自己独立的主/服务器进程。然而,这是共同的运行使用YARN容器Spark的应用程序。此外,Spark还可以在Mesos集群上运行。
原文:https://blog.csdn.net/yangzhenping/article/details/41826163
接触Hadoop技 术的朋友肯定会对它体系下寄生的个个开源项目糊涂了,我敢保证Hive,Pig,HBase这些开源技术会把你搞的有些糊涂,不要紧糊涂的不止你一个,如 某个菜鸟的帖子的疑问,when to use Hbase and when to use Hive?…请教了_没关系这里我帮大家理清每个技术的原理和思路。
Pig
一种操作hadoop的轻量级脚本语言,最初又雅虎公司推出,不过现在正在走下坡路了。当初雅虎自己慢慢退出pig的维护之后将它开源贡献到开源社区由所有爱好者来维护。不过现在还是有些公司在用,不过我认为与其使用pig不如使用hive。:)
Pig是一种数据流语言,用来快速轻松的处理巨大的数据。
Pig包含两个部分:Pig Interface,Pig Latin。
Pig可以非常方便的处理HDFS和HBase的数据,和Hive一样,Pig可以非常高效的处理其需要做的,通过直接操作Pig查询可以节省大量的劳动和时间。当你想在你的数据上做一些转换,并且不想编写MapReduce jobs就可以用Pig.
Hive
不想用程序语言开发MapReduce的朋友比如DB们,熟悉SQL的朋友可以使用Hive开离线的进行数据处理与分析工作。
注意Hive现在适合在离线下进行数据的操作,就是说不适合在挂在真实的生产环境中进行实时的在线查询或操作,因为一个字“慢”。相反
起源于FaceBook,Hive在Hadoop中扮演数据仓库的角色。建立在Hadoop集群的最顶层,对存储在Hadoop群上的数据提供类SQL的接口进行操作。你可以用 HiveQL进行select,join,等等操作。
如果你有数据仓库的需求并且你擅长写SQL并且不想写MapReduce jobs就可以用Hive代替。
HBase
HBase作为面向列的数据库运行在HDFS之上,HDFS缺乏随即读写操作,HBase正是为此而出现。HBase以Google BigTable为蓝本,以键值对的形式存储。项目的目标就是快速在主机内数十亿行数据中定位所需的数据并访问它。
HBase是一个数据库,一个NoSql的数据库,像其他数据库一样提供随即读写功能,Hadoop不能满足实时需要,HBase正可以满足。如果你需要实时访问一些数据,就把它存入HBase。
你可以用Hadoop作为静态数据仓库,HBase作为数据存储,放那些进行一些操作会改变的数据。
Pig VS Hive
Hive更适合于数据仓库的任务,Hive主要用于静态的结构以及需要经常分析的工作。Hive与SQL相似促使 其成为Hadoop与其他BI工具结合的理想交集。
Pig赋予开发人员在大数据集领域更多的灵活性,并允许开发简洁的脚本用于转换数据流以便嵌入到较大的 应用程序。
Pig相比Hive相对轻量,它主要的优势是相比于直接使用Hadoop Java APIs可大幅削减代码量。正因为如此,Pig仍然是吸引大量的软件开发人员。
Hive和Pig都可以与HBase组合使用,Hive和Pig还为HBase提供了高层语言支持,使得在HBase上进行数据统计处理变的非常简单
Hive VS HBase
Hive是建立在Hadoop之上为了减少MapReduce jobs编写工作的批处理系统,HBase是为了支持弥补Hadoop对实时操作的缺陷的项目 。
想象你在操作RMDB数据库,如果是全表扫描,就用Hive+Hadoop,如果是索引访问,就用HBase+Hadoop 。
Hive query就是MapReduce jobs可以从5分钟到数小时不止,HBase是非常高效的,肯定比Hive高效的多。