随笔分类 -  Hadoop阅读笔记

摘要:Hadoop是Apache 下的一个项目,由HDFS、MapReduce、HBase、Hive 和ZooKeeper等成员组成。其中,HDFS 和MapReduce 是两个最基础最重要的成员。HDFS是Google GFS 的开源版本,一个高度容错的分布式文件系统,它能够提供高吞吐量的数据访问,适合存储海量(PB 级)的大文件(通常超过64M),其原理如下图所示:采用Master/Slave 结构。NameNode 维护集群内的元数据,对外提供创建、打开、删除和重命名文件或目录的功能。DatanNode 存储数据,并提负责处理数据的读写请求。DataNode定期向NameNode 上报心跳,N 阅读全文
posted @ 2012-08-01 14:08 honkcal 阅读(2903) 评论(1) 推荐(0)
摘要:使用MapReduce来编写程序,有一个特定的流程,首先写map函数和reduce函数,最好使用单元测试来确保函数的运行符合预期。然后写一个驱动程序来运行作业,要看这个驱动程序是否可以运行,可以从本地IDE用一个晓得数据集来运行他,如果驱动程序不能正确运行,就用本地IDE调试器来找出问题根源。通过这些调试信息,可以加大单元测试使其覆盖这一测试用例,进而改进mapper或reducer。程序运行后,你可能想进行一些优化调整,首先执行一些标准检查,借此加快MapReduce程序的运行,然后再做一些任务剖析(task profiling),分布式程序的分析并不简单,Hadoop提供了钩子(hook) 阅读全文
posted @ 2012-07-30 00:45 honkcal 阅读(250) 评论(0) 推荐(0)
摘要:数据的完整性检测数据是否损坏的常见措施是:在数据第一次引入系统的时候计算校验和(checksum),并在数据通过一个不可靠的通道进行传输时候再次计算校验和,这样就能发现数据是否损坏。如果新的校验和和原来的校验和不匹配,我们就认为数据已经损坏。常用的数据检测码是:CRC-32(循环冗余校验)HDFS的数据完整性datanode负责验证收到的数据后存储数据及其校验和,它在收到客户端的数据或复制期间其他datanode的数据时候执行这个操作。正在写数据的客户端将数据极其校验和发送到由一些列datanode组成的管线,管线中的最后一个datanode负责验证校验和。如果datanode检测到错误,客户 阅读全文
posted @ 2012-07-28 00:05 honkcal 阅读(708) 评论(0) 推荐(0)
摘要:管理网络中跨多台计算机存储的文件系统称为分布式文件系统。Hadoop有一个称为HDFS的分布式系统称为Hadoop Distributed FilesystemHDFS设计HDFS以流式数据访问模式来存储超大文件,运行于商用硬件集群上。流式数据访问:HDFS的构建思路:一次写入,多次读取的高效的访问模式。数据集通常是由数据源生成或者从数据源复制而来,接着长时间在此数据集上进行各类分析,每次分析都涉及该数据集的大部分或者是全部,因此读取整个数据集的时间延迟比读取第一条记录的时间延迟更为重要。商用硬件:节点故障的几率还是非常高的,HDFS遇到上述故障的时候,被设计成能够继续运行且不让用户察觉到明显 阅读全文
posted @ 2012-07-23 14:17 honkcal 阅读(2805) 评论(0) 推荐(0)
摘要:MapReduce 是一种可用于数据处理的编程模型。Hadoop可以运行由各种语言编写的MapReduce程序。MapReduce程序本质上是并行运行的,MapReduce的优势在于处理大规模数据集。如果说处理大规模数据集 使用多线程的方法,也会有很多问题,最主要的是协调性和可靠性两大因素,哪个进程负责运行整个作业,我们如何处理失败的进程?使用Hadoop分析数据需要把查询表示成MapReduce作业。Map阶段和Reduce阶段。每个阶段都以 键/值对作为输入和输出,并由程序员选择他们的类型。需要定义两个函数:map函数和Reduce函数。新增的Java MapReduce API新的多使用 阅读全文
posted @ 2012-07-22 00:20 honkcal 阅读(713) 评论(0) 推荐(0)
摘要:数据存储与分析要实现对多个磁盘数据的并行读写 需要解决的很多问题1 硬件故障问题。硬件多了,发生故障的概率变大。避免数据丢失的是备份。RAID(冗余磁盘阵列),HDFS2 大多数分析任务需要以某种方式结合大部分数据共同完成分析任务,一个磁盘读取得数据可能需要和另外的99个磁盘中 读取的数据结合使用,各种分布式系统允许结合多个来源的数据并实现分析,但保证其正确性是一个很大的挑战,MapReduce提出一个编程模型,该模型将上述磁盘读写问题进行抽象,转换为一个对数据集(由 键/值 对组成)的计算。该计算由map和reduce两部分组成,而只有这两部分提供对外的接口。与HDFS类似,MapReduc 阅读全文
posted @ 2012-07-20 11:15 honkcal 阅读(307) 评论(0) 推荐(0)
摘要:1 MapReduce采用无共享大规模集群系统,集群系统的好的性价比和可伸缩性,这个优势使得MapReduce成为大规模海量数据的首选条件2MapReduce模型简单,易于理解,使用,大量数据处理问题包括很多机器学习和数据挖掘算法,都可以使用MapReduce实现3虽然基本的MapReduce模型只是提供一个过程性的编程接口,但是在海量数据环境需要保证可伸缩性的前提下,通过合适的查询优化和索引技术,MapReduce仍然能够提供好的数据处理性能 阅读全文
posted @ 2012-07-20 10:17 honkcal 阅读(252) 评论(0) 推荐(0)