hadoop生态圈各产品基本概念梳理

来源:互联网 发布:windows重置出现问题 编辑:程序博客网 时间:2024/06/05 11:43
  1. hbase:是一个适合于非结构化数据存储的数据库,是基于列的而不是基于行的模式,HBase利用Hadoop MapReduce来处理HBase中的海量数据。
  2. HDFS: 是GFS的一种实现,他的完整名字是分布式文件系统,类似于FAT32,NTFS,是一种文件格式,是底层的。
    Hive与Hbase的数据一般都存储在HDFS上。Hadoop HDFS为他们提供了高可靠性的底层存储支持。
  3. ==hive==:是一个数据仓库软件,可帮助读取,写入和管理使用SQL驻留在分布式存储中的大型数据集。结构可以投影到已经存储的数据上。提供了一个命令行工具和JDBC驱动程序,用于将用户连接到Hive。
  4. ==Sqoop==: 是一种用于在Hadoop和关系数据库或大型机之间传输数据的工具。 您可以使用Sqoop将数据从关系数据库管理系统(RDBMS)(如MySQL或Oracle)或主机导入到Hadoop分布式文件系统(HDFS)中,将数据转换为Hadoop MapReduce,然后将数据导出到RDBMS。
  5. pig:是分析大型数据集的平台,包括用于表达数据分析程序的高级语言,以及用于评估这些程序的基础设施。 Pig程序的显着特点在于它们的结构适用于大量并行化,从而使它们能够处理非常大的数据集。

Hadoop HDFS为HBase提供了高可靠性的底层存储支持,Hadoop MapReduce为HBase提供了高性能的计算能力,Zookeeper为HBase提供了稳定服务和failover机制。Pig和Hive还为HBase提供了高层语言支持,使得在HBase上进行数据统计处理变的非常简单。 Sqoop则为HBase提供了方便的RDBMS(关系型数据库)数据导入功能,使得传统数据库数据向HBase中迁移变的非常方便。

  1. ==flume-ng==:是一种分布式,可靠和可用的服务,用于高效收集,聚合和移动大量日志数据。它具有基于流数据流的简单灵活的架构。它具有可靠的可靠性机制和许多故障切换和恢复机制的鲁棒性和容错能力。它使用一个简单的可扩展数据模型,允许在线分析应用程序。

  2. Oozie:是一个管理Apache Hadoop作业的工作流程调度程序。
    工作流作业是定向循环图(DAG)的动作。
    协调员工作是由时间(频率)和数据可用性触发的经常性Oozie工作流作业。
    与其余的Hadoop堆栈集成,支持几种类型的Hadoop作业(例如Java map-reduce,Streaming map-reduce,Pig,Hive,Sqoop和Distcp)以及系统特定的作业(例如Java程序和shell脚本)

  3. avro:允许编码Hadoop文件的schema的一种数据序列化系统
  4. Mahout:一个数据挖掘库,它包含了最流行的一些数据挖据算法,并且以MapReduce模型来实现他们,它有以下三个特征:

    • A simple and extensible programming environment and framework for building scalable algorithms
    • A wide variety of premade algorithms for Scala + Apache Spark, H2O, Apache Flink
    • Samsara, a vector math experimentation environment with R-like syntax which works at scale
  5. HCatalog:是用于Hadoop的表和存储管理层,使用户可以使用不同的数据处理工具(Pig,MapReduce)来更轻松地在网格上读取和写入数据。

  6. bigtop:是一个工程的系统开发包,对Hadoop生态系统的测试,主要目标就是构建一个Apache Hadoop生态系统的包和交互式测试的社区。这个包括对各类不同级别工程进行测试(包,平台,运行时间,升级等…),它由社区以关注系统作为一个整体开发而来。
  7. storm:一个分布式实时计算系统,Storm是一个任务并行连续计算引擎。 Storm本身并不典型在Hadoop集群上运行,它使用Apache ZooKeeper的和自己的主/从工作进程,协调拓扑,主机和工作者状态,保证信息的语义。无论如何, Storm必定还是可以从HDFS文件消费或者从文件写入到HDFS。
  8. spark:一种快速,通用引擎用于大规模数据处理,Spark是一个数据并行通用批量处理引擎。工作流中在一个类似的和怀旧风格的MapReduce中定义,但是,比传统Hadoop MapReduce的更能干。apache spark有其流API项目,该项目通过短间隔批次允许连续处理。Apache Spark本身并不需要Hadoop操作。但是,它的数据并行模式,需要稳定的数据优化使用共享文件系统。该稳定源的范围可以从S3,NFS或更典型地,HDFS。执行Spark应用程序并不需要Hadoop YARN。Spark有自己独立的主/服务器进程。然而,这是共同的运行使用YARN容器Spark的应用程序。此外,Spark还可以在Mesos集群上运行。
  9. cdk:Cloudera开发人员工具包(CDK)是一个新的开源项目,旨在帮助开发人员开始运行,在CDH上构建应用程序,Cloudera的开源分发(包括Hadoop)比以前更快更容易
  10. crunch:一个简单的Java API,运行在Hadoop MapReduce和Apache Spark之上,用于加载和数据聚合等任务,在简单的MapReduce上实现繁琐。 当处理不适合关系模型的数据(例如时间序列,序列化对象格式,如协议缓冲区或Avro记录)和HBase行和列时,API尤其有用。 对于Scala用户,还有Scrunch API,它构建在Java API之上,并包含一个用于创建MapReduce管道的REPL(读取 - 评估 - 打印循环)。
  11. datafu:用于在Hadoop中处理大规模数据的库的集合,它由两部分组成:
    • Apache DataFu Pig: a collection of user-defined functions for Apache Pig
    • Apache DataFu Hourglass: an incremental processing framework for Apache Hadoop in MapReduce
  12. hue:Hadoop User Experience,是一个开源的Apache Hadoop UI系统,由Cloudera Desktop演化而来,最后Cloudera公司将其贡献给Apache基金会的Hadoop社区,它是基于Python Web框架Django实现的
  13. impala:提高了Apache Hadoop上的SQL查询性能,同时保留了熟悉的用户体验。 使用Impala,您可以实时查询数据,无论是存储在HDFS还是Apache HBase中,包括SELECT,JOIN和聚合函数。 此外,Impala使用相同的元数据,SQL语法(Hive SQL),ODBC驱动程序和用户界面(Hue Beeswax)作为Apache Hive,为面向批量或实时查询提供了一个熟悉和统一的平台。
  14. kite:是Hadoop的高级数据层。 它是一个API和一套加速开发的工具。 您可以配置Kite如何将数据存储在Hadoop中,而不是自己构建和维护该基础架构。
  15. kudu:Cloudera开源的新型列式存储系统,是Apache Hadoop生态圈的新成员之一(incubating),专门为了对快速变化的数据进行快速的分析,填补了以往Hadoop存储层的空缺。
  16. llama:Llama (Low Latency Application MAster) 是一个 Yarn 的 Application Master,用于协调 Impala 和 Yarn 之间的集群资源的管理和监控。Llama 使 Impala 能够获取、使用和释放资源配额,而不需要 Impala 使用 Yarn 管理的 container 进程。Llama 提供了 Thrift API 来和 Yarn 交互。
  17. Ambari:一个基于web的部署/管理/监控Hadoop集群的工具集
  18. parquet:是一种可用于Hadoop生态系统中任何项目的柱状存储格式,无论数据处理框架,数据模型或编程语言如何选择。
  19. sentry:是一种用于对存储在Hadoop集群中的数据和元数据执行细粒度角色授权的系统。
  20. whirr:was a set of libraries for running cloud services and deploying clusters.
  21. zookeeper:is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services. All of these kinds of services are used in some form or another by distributed applications. Each time they are implemented there is a lot of work that goes into fixing the bugs and race conditions that are inevitable. Because of the difficulty of implementing these kinds of services, applications initially usually skimp on them ,which make them brittle in the presence of change and difficult to manage. Even when done correctly, different implementations of these services lead to management complexity when the applications are deployed.
原创粉丝点击