java—apache项目和大数据世界

6qqygrtg  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(369)

我是一个经验丰富的lamp开发人员,对php、nginx、haproxy、redis、mongodb和aws服务有丰富的经验。每当有大数据需求出现时,我都会使用awsweb服务,最近我开始阅读有关大数据的文章,希望自己使用这项技术,而不是使用托管服务来处理大数据、流处理等。
然而,它不像学习灯一样的旅程,而且由于用例的性质,很难为新手找到好的资源。特别是那些没有使用过java生态系统的人(据我所知,java软件几乎涵盖了流行的大数据栈)。当谈到大数据时,下面列出的软件几乎随处可见,但很难理解每个软件的概念,每个项目的主页上的描述也很模糊。
例如“cassandra”,表面上看它是一个很好的存储时间序列数据的数据库,但是当阅读更多关于分析的内容时,其他的栈就会出现,hadoop,pig,zookeeper等等。
Cassandra
Flink
渡槽
hadoop软件
数据库
Hive
Kafka
Spark
Zookeeper
简而言之,这些软件是做什么的?在大数据的背景下,这些项目中的一些共享相同的方面,为什么它们会共存呢?有什么好处?什么时候用什么?

ibps3vxo

ibps3vxo1#

至于hadoop,你必须明白,hadoop可能意味着两件事,这取决于上下文。有点像术语“linux”,如果你熟悉的话。
只有核心:真正的“hadoop”只是一个文件系统,用于分散存储非常大的文件+通过map/reduce向这些文件请求框架。
整个生态系统:这包括核心和所有其他工具,这些工具已经被放到hadoop上用于数据分析。flume、hbase、hive、kafka、spark、zookeeper都属于这一类。Flink也可能是,我不确定。
cassandra也可能属于第二类,因为“hadoop集成是在cassandra的0.6版本中添加的”。
为了更好地了解整个生态系统,您必须了解其结构:
从下到上:
底层:这里有您的分布式文件系统和map/reduce请求框架。hdfs是文件系统的名称,您也会看到这个术语很多。在hdfs之上,您可以使用hbase,它是hdfs之上的一个面向列的数据库¹.
中间层,执行引擎:在中间我们有几个不同的引擎,可以查询hadoop文件系统的信息。实际上,有些人把map/reduce放在第二层,因为hadoop环境现在还包括tez和spark。我认为,tez通过使用图来Map/减少执行来加速查询。spark是一个内存引擎。
顶层,用户抽象:在执行引擎的顶部有用户api/抽象。这包括apachehive(类似sql的查询)和pig(在我看来是sql和编程语言的混合体)。但是也有一些更专业的抽象,比如mllib,它是一个基于hadoop系统的机器学习库,使用spark作为中间层。
除此之外,我们还为整个生态系统提供了管理工具。管理服务器、管理任务执行顺序(作业调度)等等。Kafka和Zookeeper就属于这里。
¹ 我目前不了解hbase与orc文件或parquet之间的关系。

相关问题