Hadoop 技术让我很困惑(Hbase、flume、oozie、scoop、zookeeper、Hive、hue、Bigtop、pig),现在它的 impala。有人可以定义它们的集成方式吗?(我是一名 informatica 开发人员,对 Java 知之甚少)至少在数据件外壳方面!
1 回答
最好尝试并了解每个项目分别是什么。大多数人不需要使用所有这些。
HDFS:分布式文件系统。它获取文件,将它们分成块,然后将它们分布在集群中。它复制这些块以实现冗余,并使数据靠近可能在作业中被分析的位置。它通常直接用于存储非结构化数据,如日志和文本。
MapReduce:用于运行并行程序的编程模型和软件工具集。“YARN”是一个较新的想法,它允许跨 Hadoop 集群执行其他程序,以及“MapReduce”的最新版本或在此“YARN”集群上运行的程序。这里有很多要解释的东西,你可能基本熟悉它,所以我会继续......
HBase:一种非关系型数据库,将其数据持久化到 HDFS,其结构类似于 Google 的 BigTable。它将数据存储在内存中,以提供近乎实时的查找和实时服务。它通常用于而不是直接将 HDFS 用于结构化数据,例如网站的用户。
Flume:一种用于管理数据(例如日志)的工具,因为它不断地输入 HDFS。
Oozie:一种从 MapReduce 作业序列中构建更复杂作业的工具。
Sqoop:用于在 HDFS 和关系数据库之间导入/导出数据的工具。它通过将要执行的作业编译成 MapReduce 作业来实现这一点。
Zookeeper:一个“集群协调服务”。我认为这是一个分层文件系统(用于相对较小的数据块),可让您构建集群范围的互斥锁、获取更改通知等。这可能很难解释,但它基本上为您提供了一组操作可以用来在集群中构建相当复杂的协调机制。HBase 为此目的使用 Zookeeper。
Hive:一种将类似 SQL 的查询转换为 MapReduce 作业的工具。(Pig 是一个类似的想法——它是一种编译成 MapReduce 作业的编程语言)。
Hue:“Hue 用户体验”——它是一个基于浏览器的 UI,用于使用 Hue 等 Hadoop 工具。它也是由 Cloudera 制作的,但与 Cloudera Manager 等旨在管理集群而不是使用服务本身的工具不同。
Bigtop:以各种方式打包 hadoop 生态系统的许多组件和类似工具(例如,用于 Linux 的 DEB 和 RPM、用于部署 Hadoop 的 Puppet 代码,甚至是 Live CD)。它实际上是为了开始简化和标准化您所指的“集成”。
Pig:与 Hive 类似的想法 - 一种编译成 MapReduce 作业的编程语言。
Impala:使用类似 SQL 的查询来探索 Hadoop 中的数据的工具。作为支持比 Hive 更简单的查询语言并且不使用 MapReduce(用于大型批处理作业)的交换,它应该使查询足够快以交互地探索大型数据集。