首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Hadoop之旅-Hadoop的一些经验总结

2012-08-30 
Hadoop之旅--Hadoop的一些经验总结1.map/reducemap:子任务,一个map/reduce任务首先会分解成多个map子任务,

Hadoop之旅--Hadoop的一些经验总结
1.map/reduce

map:
子任务,一个map/reduce任务首先会分解成多个map子任务,会被分配到多个节点运行;
每一个map任务执行计算作业的一部分;
每个map任务执行完成之后,会产生中间文件;
reduce的任务就是将map任务产生的中间文件作为输入数据,将所有的map任务汇总输出;


2.编写JAVA代码出现如下问题

2012-4-20 19:36:55 org.apache.hadoop.util.NativeCodeLoader <clinit>
璀﹀憡: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable



Hadoop是使用Java语言开发的,但是有一些需求和操作并不适合使用java,所以就引入了本地库(Native Libraries)的概念,通过本地库,Hadoop可以更加高效地执行某一些操作。
上述意思是说不能再如本地类库,处理的方式也比较简单:

在Hadoop的配置文件core-site.xml中可以设置是否使用本地库:

<property>
  <name>hadoop.native.lib</name>
  <value>true</value>
  <description>Should native hadoop libraries, if present, be used.</description>
</property>

3.HIVE的使用
HIVE中是等值JOIN的,也支持左右连接;
在使用写有 Join 操作的查询语句时有一条原则:应该将条目少的表/子查询放在 Join 操作符的左边。
原因是在 Join 操作的 Reduce 阶段,位于 Join 操作符左边的表的内容会被加载进内存,将条目少的表放在左边,可以有效减少发生 OOM 错误的几率。


4.hadoop原生默认的压缩文件的解析
hadoop中的文件是默认压缩的,在hadoop中的API中是根据文件后缀名成来判断该文件的压缩类型的
例如test.deflate文件,其hadoop的文件压缩格式就是deflate,这种是默认的hadoop文件格式,当然还支持其他好几种压缩格式,比如Gzip,bzip2,zlib等
下面是hadoop解压文件,并输出成string的代码:

CompressionCodecFactory factory = new CompressionCodecFactory(conf);CompressionCodec codec = factory.getCodec(p);if (codec == null) {throw new IOException(String.format("Can't find any suitable CompressionCodec to this file:%s",p.toString()));}in = fs.open(p);CompressionInputStream cin = codec.createInputStream(in);br = new BufferedReader(new InputStreamReader(cin, encoding),bufferSize);


表1  Hadoop支持的压缩格式
压缩格式  工具 算法    文件扩展名 Hadoop压缩编码/解码器
DEFLATE 无 DEFLATE    .deflate Org.apache.hadoop.io.compress.DefaultCodec
Gzip gzip DEFLATE    .gz         Org.apache.hadoop.io.compress.GzipCodec
bzip2 bzip2 bzip2    .bz2         Org.apache.hadoop.io.compress.BZip2Codec
LZO lzop LZO    .lzo         Com.hadoop.compression.lzo.LzopCodec 1 楼 smallbee 2012-06-06   在做hadoop了? 2 楼 scholers 2012-06-06   smallbee 写道在做hadoop了?
是的 3 楼 smallbee 2012-06-07   scholers 写道smallbee 写道在做hadoop了?
是的
我也买了一本书 好久了  看了一点,不知道环境如何部署。 4 楼 scholers 2012-06-07   smallbee 写道在做hadoop了?

WINDOWS下没法部署,装个虚拟机,然后LINUX,然后试着去部署; 5 楼 smallbee 2012-06-07   scholers 写道smallbee 写道在做hadoop了?

WINDOWS下没法部署,装个虚拟机,然后LINUX,然后试着去部署;
居说 单台机子无法体现hadoop的实力  是么? 6 楼 scholers 2012-06-08   smallbee 写道scholers 写道smallbee 写道在做hadoop了?

WINDOWS下没法部署,装个虚拟机,然后LINUX,然后试着去部署;
居说 单台机子无法体现hadoop的实力  是么?

是的啊,起码搞个2台,搞个小集群,
否则分布式没啥意义

热点排行