Java Apache项目和大数据世界
我是一名经验丰富的LAMP开发人员,对php、nginx、haproxy、redis、mongodb和aws服务有丰富的经验。每当出现大数据需求时,我都会使用AWSWeb服务,最近我开始阅读有关大数据的文章,希望自己使用这项技术,而不是使用托管服务进行大数据处理、流处理等 然而,它不像learning LAMP一样,因为用例的性质,很难为新手找到好的资源。特别是那些没有使用过Java生态系统的人。(据我所知,Java软件几乎涵盖了流行的大数据栈)。当谈到大数据时,下面列出的软件几乎随处可见,但很难理解每个软件的概念,每个项目主页上的描述也很模糊 例如“Cassandra”,表面上它是一个很好的存储时间序列数据的数据库,但当阅读更多关于分析的信息时,就会出现其他堆栈,如hadoop、pig、zookeeper等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软件几乎涵盖了流行的大数据栈)。当谈到大数据时,下面列出的软件几乎随处可见,但很
- 卡桑德拉
- 弗林克
- 水槽
- 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中,要求书籍或离线资源被视为离题