首页 文章

Apache项目和大数据世界

提问于
浏览
-2

我是一名经验丰富的LAMP开发人员,在php,nginx,haproxy,redis,mongodb和aws服务方面拥有不错的经验 . 每当大数据需求出现在桌面上时,我都会使用aws web服务,并且最近开始阅读有关希望自己使用该技术而不是使用托管服务进行大数据处理,流处理等的大数据 .

然而,与学习LAMP不同,并且由于用例的性质,很难为新手找到好的资源 . 特别适用于没有使用Java生态系统的人 . (据我所知,Java软件几乎涵盖了流行的大数据堆栈) . 在谈论大数据时,下面的软件列表几乎随处可见,但是很难掌握每个软件的概念,每个项目主页上的描述都很模糊 .

例如“Cassandra”,表面上它是存储时间序列数据的一个很好的数据库,但是当阅读更多关于分析的信息时,其他堆栈会出现,hadoop,pig,zookeeper等 .

  • 卡珊德拉

  • Flink

  • 水槽

  • Hadoop

  • Hbase

  • 蜂巢

  • Kafka

  • 火花

  • 动物园管理员

简而言之,这些软件的作用是什么?在大数据的背景下,这些项目中的一些共享相同的方面,为什么它们共存呢?有什么好处?什么时候用?

1 回答

  • 2

    至于hadoop,您必须了解,Hadoop可能意味着两件事,具体取决于上下文 . 有点像“Linux”一词,如果您熟悉它 .

    • 只有核心:真正的"Hadoop"只是一个文件系统,用于通过Map / Reduce将非常大的文件请求框架分散存储到这些文件中 .

    • 整个生态系统:这包括已用于数据分析的hadoop的核心和所有其他工具 . Flume,Hbase,Hive,Kafka,Spark,Zookeeper属于此类别 . Flink也可能,我不确定 .

    Cassandra也可能属于第二类,因为"Hadoop integration was added way back in version 0.6 of Cassandra" .

    要更好地了解整个生态系统,您必须understand how this is all structured

    从下到上:

    • 底层:这里有分布式文件系统和Map / Reduce请求框架 . HDFS是文件系统的名称,您也会看到很多这个术语 . 在HDFS之上,您可以使用HBase,这是一个基于列的数据库,位于HDFS¹之上 .

    • 中间层,执行引擎:在中间我们有几个不同的引擎,可以查询hadoop文件系统的信息 . 实际上,有些人将Map / Reduce放在第二层,因为Hadoop环境现在还包括Tez和Spark . 我认为Tez通过使用图表来加速查询/减少执行 . Spark是一个内存引擎 .

    • 顶层,用户抽象:在执行引擎之上,您拥有用户API /抽象 . 这包括apache Hive(类似SQL的查询)和Pig(在我看来是SQL和编程语言的混合) . 但也有更多专门的抽象,如MLlib,这是一个机器学习库,在一个使用Spark作为中间层的hadoop系统之上 .

    除此之外,我们还为整个生态系统提供管理工具 . 管理服务器,管理任务执行顺序(作业调度)等 . 这是Kafka和Zookeeper所属的地方 .

    ¹我目前不了解HBase与ORC文件或Parquet之间的关系 .

相关问题