• 1. hadoopSqoop Bigtable Nosql
  • 2. Hadoop主要子项目介绍(Pig Zookeeper Hbase Sqoop Avro Chukwa Cassandra )Hive 现 在Hadoop已经发展成为包含多个子项目的集合。虽然其核心内容是MapReduce和Hadoop分布式文件系统(HDFS),但Hadoop下的 Common、Avro、Chukwa、Hive、HBase等子项目也是不可或缺的。它们提供了互补性服务或在核心层上提供了更高层的服务。 1、Hadoop Common 从Hadoop 0.20版本开始,Hadoop Core项目便更名为Common。Common是为Hadoop其他子项目提供支持的常用工具,它主要包括FileSystem、RPC和串行化库,它 们为在廉价的硬件上搭建云计算环境提供基本的服务,并且为运行在该运平台上的软件开发提供了所需的API。 Hadoop体系最底层的一个模块,为Hadoop各子项目提供各种工具,如:配置文件和日志操作等
  • 3. 2、Pig 1)、Pig是一种探索大规模数据集的脚本语言。 2)、pig是在HDFS和MapReduce之上的数据流处理语言,它将数据流处理翻译成多个map和reduce函数,提供更高层次的抽象将程序员从具体的编程中解放出来。 3)、Pig包括两部分:用于描述数据流的语言,称为Pig Latin;和用于运行Pig Latin程序的执行环境。 4)、Pig Latin程序有一系列的operation和transformation组成。每个操作或变换对输入进行数据处理,然后产生输出结果。这些操作整体上描述了一个数据流。Pig内部,这些变换操作被转换成一系列的MapReduce作业。 5)、Pig不适合所有的数据处理任务,和MapReduce一样,它是为数据批处理而设计的。如果只想查询大数据集中的一小部分数据,pig的实现不会很好,因为它要扫描整个数据集或绝大部分。
  • 4. 3、Hbase HBase是Hadoop的一个子项目,HBase采用了Google BigTable的稀疏的,面向列的数据库实现方式的理论,建立在hadoop的hdfs上,一方面里用了hdfs的高可靠性和可伸缩行,另外一方面里用 了BigTable的高效数据组织形式.可以说HBase为海量数据的real-time相应提供了很好的一个开源解决方案.据说在某运营商中使用类似于BigTable的技术可以在两秒时间内从2TB数据中查找到某条话费 1)、首先HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库.另一个不同的是HBase基于列的而不是基于行的模式. 2)、Bigtable是一个疏松的分布式的持久的多维排序的map,这个map被行键,列键,和时间戳索引.每一个值都是连续的byte数组 3)、HBase使用和Bigtable非常相同的数据模型.用户存储数据行在一个表里.一个数据行拥有一个可选择的键和任意数量的列.表是疏松的存储的,因此用户可以给行定义各种不同的列.
  • 5. 4、Hive Hive 是一种建立在 Hadoop 之上的数据仓库架构。它提供了: • 一套方便的实施数据抽取(ETL)的工具。 • 一种让用户对数据描述其结构的机制。 • 支持用户对存储在Hadoop中的海量数据进行查询和分析的能力。 Hive 的基本特点是它采用 HDFS 进行数据存储并利用 Map/Reduce 框架进行数据操作。所以从本质上来说,Hive 就是个编译器,它把用户的操作(查询或者 ETL)变换成Map/Reduce 任务,利用 Map/Reduce 框架执行这些任务以对HDFS上的海量数据进行处理。 Hive 被设计成一种批处理系统。它利用 Map/Reduce 框架来处理数据。因此,它在Map/Reduce 任务提交和调度上有比较高的开销。即使对于小数据集(几百兆)来说,延迟也是分钟级的。但其最大的优点是延迟相对于数据集大小是线性增加的。 Hive 定义了一种简单的类 SQL 查询语言 HiveQL,让熟悉 SQL 的用户可以非常容易的进行查询。与此同时,HiveQL 也允许熟悉 Map/Reduce 框架的程序员在查询中插入自定义的 mapper 和 reducer 脚本以扩展 Hive 内嵌的功能,完成更复杂的分析
  • 6. 5、HDFS HDFS为分布式计算存储提供底层支持。 HDFS的设计思想:构建一个非常庞大的分布式文 件系统。在集群中节点失效是正常的,节点的数量在Hadoop中不是固定的。单一的文件命名空间,保证数据的一致性,写入一次多次读取。典型的64MB数 据块大小,每个数据块在多个DN(DataNode)有复制客户端通过NN(NameNode)得到数据块的位置,直接访问DN获取数据。
  • 7. NameNode: 1)NameNode是一个通常在HDFS实例中单独机器上运行的软件。它负责管理文 件系统名称空间和控制外部客户机的访问。它决定是否将会文件映射到DateNode上的复制块上。对于NameNode并不进行具体的IO操作,当外部客 户机发生请求要求创建文件时NameNode 会议标识块和该块的第一个副本的DateNode IP地址作为响应。 2)NameNode在一个成为sImage的文件中存储所有有关于文件系统名称空间的信息,这个文件包含所有事物的记录文件(EditLog)将存储在NameNode的本地文件系统上。其中FsImage和EditLog文件也需要复制副本,以防止文件损毁或者NameNode系统丢失
  • 8. DataNode: 1)DateNode通常是在一个HDFS实例中单独机器上运行的软件,DataNode通常以机架的形式组织,机架通过一个交换机将所有的系统链接起来。 2)DateNode 响应来自HDFS客户机的读写请求。他们还想应创建、删除和复制及来自NameNode块的命令 3)NameNode依赖来自于每个DataNode的定期心跳消息。每条消息都包含了一个块报告,NameNode可以根据这个报告验证映射和其他文件系统的元数据。如果DateNode不发送心跳消息,NameNode 将会采取修复措施。
  • 9. 6、MapReduce 1)MapReduce 是一个高性能的批处理分布式计算框架,用于对海量数据进行并行分析和处理。与传统数据仓库和分析技术相比,MapReduce 适合处理各种类型的数据,包括结构化、半结构化和非结构化数据。数据量在 TB 和 PB 级别,在这个量级上,传统方法通常已经无法处理数据。 2)MapReduce 将分析任务分为大量的并行 Map 任务和 Reduce 汇总任务两类。Map 任务运行在多个服务器上。目前部署的最大集群有 4000 个服务器。 3)最基本的MapReduce包括了Map、Reduce、mian函 数,Google发现大多数分布式运算可以抽象为MapReduce操作。Map是把输入Input分解成中间的Key/Value对,Reduce把 Key/Value合成最终输出Output。这两个函数由程序员提供给系统,下层设施把Map和Reduce操作分布在集群上运行,并把结果存储在GFS上。
  • 10. 7、Zookeeper ZooKeeper是一个针对大型分布式系统的可靠协调服务,Google Chubby的开源实现。 1、用于协调分布式系统上的各种服务。例如确认消息是否准确到达,防止单点失效,处理负载均衡等  2、应用场景:Hbase,实现Namenode自动切换  3、工作原理:领导者,跟随者以及选举过程
  • 11. 8、Sqoop  1、用于在Hadoop和关系型数据库之间交换数据  2、 通过JDBC接口连入关系型数据库 
  • 12. 9、Avro 一种提供高效、跨语言RPC的数据序列系统,持久化数据存储。 1、数据序列化工具,由Hadoop的创始人Doug Cutting主持开发  2、 用于支持大批量数据交换的应用。支持二进制序列化方式,可以便捷,快速地处理大量数据  3、 动态语言友好,Avro提供的机制使动态语言可以方便地处理 Avro数据。
  • 13. 10、Chukwa  分布式数据收集和分析系统。Chukwa运行HDFS中存储数据的收集器,它用MapReduce来生成报告。 chukwa 是一个开源的用于监控大型分布式系统的数据收集系统。这是构建在 hadoop 的 hdfs 和 map/reduce 框架之上的,继承了 hadoop 的可伸缩性和鲁棒性。Chukwa 还包含了一个强大和灵活的工具集,可用于展示、监控和分析已收集的数据。
  • 14. 具体而言, chukwa 致力于以下几个方面的工作: 1. 总体而言, chukwa 可以用于监控大规模(2000+ 以上的节点, 每天产生数据量在T级别) hadoop 集群的整体运行情况并对它们的日志进行分析 2. 对于集群的用户而言: chukwa 展示他们的作业已经运行了多久,占用了多少资源,还有多少资源可用,一个作业是为什么失败了,一个读写操作在哪个节点出了问题. 3. 对于集群的运维工程师而言: chukwa 展示了集群中的硬件错误,集群的性能变化,集群的资源瓶颈在哪里. 4. 对于集群的管理者而言: chukwa 展示了集群的资源消耗情况,集群的整体作业执行情况,可以用以辅助预算和集群资源协调. 5. 对于集群的开发者而言: chukwa 展示了集群中主要的性能瓶颈,经常出现的错误,从而可以着力重点解决重要问题.
  • 15. 11、Cassandra  Apache Cassandra是一套开源分布式Key-Value存储系统。它最初由Facebook开发,用于储存特别大的数据。Facebook目前在使用此系统。 Cassandra的主要特点就是它不是一个数据库,而是由一堆数据库节点共同构成的 一个分布式网络服务,对Cassandra 的一个写操作,会被复制到其他节点上去,对Cassandra的读操作,也会被路由到某个节点上面去读取。对于一个Cassandra群集来说,扩展性能 是比较简单的事情,只管在群集里面添加节点就可以了。 Cassandra是一个混合型的非关系的数据库,类似于Google的BigTable。其主要功能比 Dynomite(分布式的Key-Value存 储系统)更丰富,但支持度却不如文档存储MongoDB(介于关系数据库和非关系数据库之间的开源产品,是非关系数据库当中功能最丰富,最像关系数据库 的。支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。)Cassandra最初由Facebook开发,后转变成了开源项目。它是一个网络社交云计算方面理想的数据库。以Amazon专有的完全分布式的Dynamo为基础,结合了Google BigTable基于列族(Column Family)的数据模型。P2P去中心化的存储。很多方面都可以称之为Dynamo 2.0。
  • 16. PS Hbase和Hive在Hadoop中的功能有什么联系? 1、 hbase与hive都是架构在hadoop之上的。都是用hadoop作为底层存储。而hbase是作为分布式数据库,而hive是作为分布式数据仓 库。当然hive还是借用hadoop的MapReduce来完成一些hive中的命令的执行。而hbase与hive都是单独安装的。 2、hdfs作为底层存储,hdfs是存放文件的系统,而Hbase负责组织文件。hive需要用到hdfs存储文件,需要用到MapReduce计算框架
  • 17. (本页无文本内容)
  • 18. (本页无文本内容)
  • 19. (本页无文本内容)
  • 20. (本页无文本内容)