Java Apache项目和大数据世界

Java Apache项目和大数据世界,java,hadoop,cassandra,apache-spark,bigdata,Java,Hadoop,Cassandra,Apache Spark,Bigdata,我是一名经验丰富的LAMP开发人员,对php、nginx、haproxy、redis、mongodb和aws服务有丰富的经验。每当出现大数据需求时,我都会使用AWSWeb服务,最近我开始阅读有关大数据的文章,希望自己使用这项技术,而不是使用托管服务进行大数据处理、流处理等 然而,它不像learning LAMP一样,因为用例的性质,很难为新手找到好的资源。特别是那些没有使用过Java生态系统的人。(据我所知,Java软件几乎涵盖了流行的大数据栈)。当谈到大数据时,下面列出的软件几乎随处可见,但很

我是一名经验丰富的LAMP开发人员,对php、nginx、haproxy、redis、mongodb和aws服务有丰富的经验。每当出现大数据需求时,我都会使用AWSWeb服务,最近我开始阅读有关大数据的文章,希望自己使用这项技术,而不是使用托管服务进行大数据处理、流处理等

然而,它不像learning LAMP一样,因为用例的性质,很难为新手找到好的资源。特别是那些没有使用过Java生态系统的人。(据我所知,Java软件几乎涵盖了流行的大数据栈)。当谈到大数据时,下面列出的软件几乎随处可见,但很难理解每个软件的概念,每个项目主页上的描述也很模糊

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

  • 卡桑德拉
  • 弗林克
  • 水槽
  • Hadoop
  • 糖化血红蛋白
  • 蜂巢
  • 卡夫卡
  • 火花
  • 动物园管理员

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

至于hadoop,你必须理解,hadoop可能意味着两件事,具体取决于上下文。有点像“Linux”,如果你熟悉的话

  • 只有核心:真正的“Hadoop”只是一个文件系统,用于分散存储非常大的文件+通过Map/Reduce向这些文件请求框架
  • 整个生态系统:这包括核心和所有其他用于hadoop数据分析的工具。Flume、Hbase、Hive、Kafka、Spark、Zookeeper都属于这一类。弗林克也可能是,我不确定
卡桑德拉也可能属于第二类,因为

为了更好地了解整个生态系统,您必须:

自下而上:

  • 底层:这里有您的分布式文件系统和Map/Reduce请求框架。HDFS是文件系统的名称,您也会经常看到这个术语。在HDFS之上,您可以使用HBase,它是HDFSª之上的一个面向列的数据库
  • 中间层,执行引擎:中间有几个不同的引擎,可以查询Hadoop文件系统的信息。实际上,有些人把Map/Reduce放在第二层,因为Hadoop环境现在也包括了Tez和Spark。我认为,Tez通过使用图来映射/减少执行来加速查询。Spark是一个内存引擎
  • 顶层,用户抽象:在执行引擎之上,您有用户API/抽象。这包括ApacheHive(类似SQL的查询)和Pig(在我看来是SQL和编程语言的混合体)。但也有一些更专业的抽象,比如MLlib,它是一个在hadoop系统上使用Spark作为中间层的机器学习库
除此之外,我们还为整个生态系统提供了管理工具。管理服务器、管理任务执行顺序(作业调度)等等。这就是卡夫卡和动物园管理员的所在地


我目前不了解HBase与ORC文件或拼花地板之间的关系。

在stackoverflow中,要求书籍或离线资源被视为离题