简单,可复制

点点滴滴,尽在文中

  :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2012年4月23日

摘要: 在用hadoop的streaming读数据时,如果输入是sequence file,如果用“-inputformatorg.apache.hadoop.mapred.SequenceFileInputFormat”配置读的话,读入的数据显示的话为乱码,其实是因为读入的还是sequence file格式的,包括sequencefile的头信息在内.改为“inputformatorg.apache.hadoop.mapred.SequenceFileAsTextInputFormat”即可正常读取。以下内容摘自其他地方,对inputformat和outputformat的一个粗略的介绍:Hadoo 阅读全文
posted @ 2012-04-23 00:47 ggjucheng 阅读(8338) 评论(1) 推荐(0)

摘要: 一、从Map到ReduceMapReduce其实是分治算法的一种实现,其处理过程亦和用管道命令来处理十分相似,一些简单的文本字符的处理甚至也可以使用Unix的管道命令来替代,从处理流程的角度来看大概如下:cat input | grep | sort | uniq -c | cat > output# Input -> Map -> Shuffle & Sort -> Reduce -> Output简单的流程图如下:对于Shuffle,简单地说就是将Map的输出通过一定的算法划分到合适的Reducer中进行处理。Sort当然就是对中间的结果进行按key排 阅读全文
posted @ 2012-04-23 00:26 ggjucheng 阅读(1540) 评论(0) 推荐(0)

摘要: Datanode在把数据实际存储之前会验证数据的校验和.client通过pipeline把数据写入datanode. 最后一个datanode会负责检查校验和.当client从datanode读取数据时,也会检查校验和: 把真实数据的校和合同datanode上的校验和进行比较.每个datanode都保存有一个checksum验证的持久化日志,日志中有当前datanode每个block最后的更新时间.当client成功验证了一个block, 它会告诉datanode, 之后datanode会更新它的日志.保存这些信息有助于检测坏磁盘.除了会在client读取数据时验证block, 每个datan 阅读全文
posted @ 2012-04-23 00:21 ggjucheng 阅读(3765) 评论(0) 推荐(0)

摘要: 读文件的过程客户端(client)用FileSystem的open()函数打开文件DistributedFileSystem用RPC调用元数据节点,得到文件的数据块信息。对于每一个数据块,元数据节点返回保存数据块的数据节点的地址。DistributedFileSystem返回FSDataInputStream给客户端,用来读取数据。客户端调用stream的read()函数开始读取数据。DFSInputStream连接保存此文件第一个数据块的最近的数据节点。Data从数据节点读到客户端(client)当此数据块读取完毕时,DFSInputStream关闭和此数据节点的连接,然后连接此文件下一个数 阅读全文
posted @ 2012-04-23 00:06 ggjucheng 阅读(11470) 评论(1) 推荐(1)