Hadoop 集群启用 rack 策略
注:文中采用的 Hadoop 集群环境为 Hadoop 2.2.0。 最近由于工作需要,对 Hadoop 的机架(rack)策略做了调研。下面记录下调研结果。 背景 首先需要明确的是,机架是硬件,机房里的服务器都放在机架(rack)上。放在不同的 rack 上的机器,有什么区别呢? 每个 rack 上的机器连接的是相同的电源,不同的…
Read More注:文中采用的 Hadoop 集群环境为 Hadoop 2.2.0。 最近由于工作需要,对 Hadoop 的机架(rack)策略做了调研。下面记录下调研结果。 背景 首先需要明确的是,机架是硬件,机房里的服务器都放在机架(rack)上。放在不同的 rack 上的机器,有什么区别呢? 每个 rack 上的机器连接的是相同的电源,不同的…
Read MoreWhen using Hadoop under Linux, we need to type lots of commands to operate on…
Read More在写 Hadoop 程序时,有时侯需要从文件名中提取某些信息,比如说文件名中可能包含有时间戳。下面,就针对这种需求,谈谈在 Hadoop 程序中该怎么做。 在用 Java 写的 MapReduce 程序中 MapReduce 的 mapper 类的 map()…
Read More相信用 Java 写过稍微大型点儿的 MapReduce 程序的朋友都有体会,MapReduce 程序调试起来并不方便。粗略想了一下,原因大概有以下两点: MapReduce 的处理思路增加了数据流的环节。 按照 MapReduce 的思想,业务逻辑在实现时,被人为地拆分成了 map 和 reduce 两个不同的阶段,两个阶段需要通过…
Read More在写 MapReduce 程序时,mapper/reducer 与进程在概念上的对应关系是这样的: 一个 mapper/reducer,对应一个 map/reduce task,对应一个 JVM,对应一个进程。也就是说,在一个 JVM 进程里只能运行一个 mapper/reducer。 其中,mapper 类总是必不可少的。实际上,MapReduce API…
Read More最近工作中遇到的问题,简单记录下。 问题的情形是这样的: 由于需要用到 MapReduce 的 task side-effect files特性,在写 side-effect 文件时,用到了 FSDataOutputStream 类的 writeUTF() 方法。问题在于用 FSDataOutputStream.writeUTF()…
Read More最近工作中遇到的问题,简单记录下。 工作中用到了 Hadoop/Hive,但是搭建的集群硬件配置很差,磁盘空间严重不足。我只好先找了台虚拟机,暂时凑合着用一下,好歹硬盘算是够用了。 但是没过两天,发现用 Hive 执行 HiveQL 语句时,经常出现下面的错误: Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /tmp/hive-hduser/hive_2013-11-26_13-14-51_742_5228871571450845489/_task_tmp.-ext-10002/_tmp.000003_0 could…
Read More