Hadoop优化(待续)

      近日在用hadoop测试些程序,但是,用的数据都是小数据,用hadoop处理起来相当慢,每个文件就只有几KB,而文件有几百个,这样,20MB的数据运行完就要40多分钟,而且即使是4台机器,运行完也要14分钟,这完全是浪费了hadoop,最后发现,每台电脑只有两个Map,这就让Map过很相当漫长。查了一些资料,发现暂时有两项现在我用得着

1、设置Map数:

      在conf文件夹中的mapred-site.xml文件里加入property:

      mapred.tasktracker.map.tasks.maximum

      格式如下:

<property>
    <name>mapred.tasktracker.map.tasks.maximum</name>
    <value>10</value>
</property>

      这里只设置了10个,看网上说的一般一个节点的map数是30到300个,大家可以根据具体情况自行设置。

      设置reduce数量只需要把mapred.tasktracker.map.tasks.maximum改为mapred.tasktracker.reduce.tasks.maximum


2、设置JVM重用

      默认是1,表示一个JVM上最多可以顺序执行的task数目(属于同一个Job)是1。也就是说一个task启一个JVM。

      显然,这样每次用一次就重启JVM很浪费时间,所以可以把这个的重用次数设置大一点,我这里设置成-1,表示无限适用,知道最后把程序跑完。

      和设置Map数差不多,同样是在mapred-site.xml中设置,如下:

<property>
    <name>mapred.job.reuse.jvm.num.tasks</name>
    <value>-1</value>
</property>

      重启hadoop。现在,即使是伪分布,运行刚才的程序只需要11分30秒。

      笔者将继续学习,找到更合理的办法。同时,可以把数据进行压缩过后在运行程序,但是笔者暂时还没搞懂这个方法怎么用。

参考网址:

http://blog.csdn.net/wangqiaoshi/article/details/18142885

http://jerrylead.iteye.com/blog/1195335


3、Java heap space的解决办法:

    这个表明java的虚拟的空间不够了。下面有两种方法可以解决:

    ①修改hadoop/bin文件夹中的hadoop文件:

    找到“export HADOOP_OPTS=”这一行,修改如下:

export HADOOP_OPTS="-Xmx4096m"//将jvm的空间设置为4GB,也可以设置成你想要的

    ②(建议使用此方法)也可以修改mapred-site.xml文件:

    加入如下内容:

<property>
    <name>mapred.child.java.opts</name>
    <value>-Xmx4096m</value>
</property>

    保存退出重启hadoop即可。

参见网址:

http://stackoverflow.com/questions/15609909/error-java-heap-space

 

4、修改HDFS的块的大小:

    默认是64MB,但是一般用128MB,而且有些特殊情况要把块改小一点。总之,很多情况,需要更改块的大小,方法如下:

    修改conf文件夹中hdfs-site.xml的内容,加入如下内容:

<property>
    <name>dfs.block.size</name>
    <value>自己想要的大小,单位是B</value>
</property>

    保存退出,格式化HDFS


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值