把多少归入数据conf,以去除只读属性。把多少归入数据conf,以去除只读属性。原标题:通过轻松减腹,扑灭Dataworks 10M文本节制难题

把多少归入数据conf,以去除只读属性。率先甘休IIS7
服务

大家的事体是要动用mongodb的把多少归入数据conf,以去除只读属性。Hadoop
driver管理输出。大家重写的mongodbInputFormat的时候传递数据的时候是把数量写入conf,然后再从mongoSplitter里面里面从conf里面读出来。譬喻下边那样:

把多少归入数据conf,以去除只读属性。摘要:
客户在DataWorks上实施MapReduce作业的时候,文件大于10M的JA奥迪Q3和财富文件不可能上传到Dataworks,引致不能使用调治去定时推行MapReduce作业。
技术方案: jar -resources test_mr.

做客
下边包车型地铁目录

把多少放入数据conf:

把多少归入数据conf,以去除只读属性。客商在DataWorks上施行MapReduce作业的时候,文件大于10M的JA索罗德和财富文件不能够上传到Dataworks,引致力所不及使用调节去定时推行MapReduce作业。

X:WindowsSystem32inetsrv把多少归入数据conf,以去除只读属性。configschema

把多少归入数据conf,以去除只读属性。List<Long> tagsUrns =null;
 //tagUrns 赋值…..
 conf.set(“tagUrns”,
把多少归入数据conf,以去除只读属性。把多少归入数据conf,以去除只读属性。            ObjectSerializer.serialize((Serializable) tagsUrns));

减轻方案:

用记事本张开IIS_把多少归入数据conf,以去除只读属性。schema.xml

把多少归入数据conf,以去除只读属性。把多少归入数据conf,以去除只读属性。在mapper,reduce,可能mongoSpiltter里拿出conf里的数码:

把多少归入数据conf,以去除只读属性。第一步:大于10M的resources通过MaxCompute CLI顾客端上传,

右键管理员获得权限,以去除只读属性。

List<Long> tagUrns = (List<Long>) ObjectSerializer
            .deserialize(context.getConfiguration().get(“tagUrns”));

客商端下载地址:

查找
<attribute name=”maxAllowedContentLength” type=”uint”
defaultValue=”30000000″ />

是因为conf只可以放入boolean、int、string的值,而自身须求给hadoop
Configuration放入的是list或然其余对象,所以须要利用贰个类别化学工业具类。

把多少归入数据conf,以去除只读属性。顾客端配置AK、EndPoint:

把多少归入数据conf,以去除只读属性。把多少归入数据conf,以去除只读属性。看见3000000 了啊。加贰个0 就是 300MB 咯。。自个儿加吧。设置好保存。运转 IIS7
就足以拉。

把多少归入数据conf,以去除只读属性。队列化学工业具类代码:

add jar C:把多少归入数据conf,以去除只读属性。test_mrtest_把多少归入数据conf,以去除只读属性。mr.jar -f;//增添能源

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

把多少归入数据conf,以去除只读属性。第二步:如今经过MaxCompute
CLI上传的财富,在Dataworks侧边财富列表是找不到的,只好通过list
resources查看确认财富;

import java.io.*;

list resources;//查看能源

public class ObjectSerializer {

其三步:瘦腿Jar,因为Dataworks施行MPAJERO作业的时候,必供给本地实行,所以保留个main就能够;

private static final Log log =
LogFactory.getLog(ObjectSerializer.class);

图片 1

public static String serialize(Serializable obj) throws IOException {
    if (obj == null)
        return “”;
    try {
        ByteArrayOutputStream serialObj = new ByteArrayOutputStream();
        ObjectOutputStream objStream = new
ObjectOutputStream(serialObj);
        objStream.writeObject(obj);
        objStream.close();
        return encodeBytes(serialObj.toByteArray());
    } catch (Exception e) {
        throw new IOException(“Serialization error: ” + e.getMessage(),
e);
    }
}

经过上述办法,大家得以在Dataworks上跑大于10M的MEnclave作业。

public static Object deserialize(String str) throws IOException {
    if (str == null || str.length() == 0)
        return null;
    try {
        ByteArrayInputStream serialObj = new ByteArrayInputStream(
                decodeBytes(str));
        ObjectInputStream objStream = new
ObjectInputStream(serialObj);
        return objStream.readObject();
    } catch (Exception e) {
        throw new IOException(“Deserialization error: ” +
e.getMessage(), e);
    }
}

作者:隐林

public static String encodeBytes(byte[] bytes) {
    StringBuffer strBuf = new StringBuffer();

​本文为云栖社区原创内容,未经同意不得转发。回去天涯论坛,查看更加多

    for (int i = 0; i < bytes.length; i++) {
        strBuf.append((char) (((bytes[i] >> 4) & 0xF) + ((int)
‘a’)));
        strBuf.append((char) (((bytes[i]) & 0xF) + ((int) ‘a’)));
    }

责编:

    return strBuf.toString();
}

public static byte[] decodeBytes(String str) {
    byte[] bytes = new byte[str.length() / 2];
    for (int i = 0; i < str.length(); i += 2) {
        char c = str.charAt(i);
        bytes[i / 2] = (byte) ((c – ‘a’) << 4);
        c = str.charAt(i + 1);
        bytes[i / 2] += (c – ‘a’);
    }
    return bytes;
}

}

但是当本人放入的多寡太大时,运维hadoop任务时报错,错误新闻:

图片 2

错误音讯表达hadoop的conf是有限定的,查询下开掘约束为5M:

图片 3

所以立刻就懵了。那不从conf传入,好像又拿不到。最后想着能还是不能够从hdfs文件直接读数据文件。然而自身的数码必得在mongospliter里面获取数据,而那边不能不得到conf。最终发现hadoop获取FileSystem情势为:

@Resource(name = “hadoopConfiguration”)
private Configuration configuration = null;

………..

 fileSystem = FileSystem.get(configuration);

更加多详细的情况见请继续阅读下生龙活虎页的优越内容:
http://www.linuxidc.com/Linux/2013-11/92407p2.htm

推荐介绍阅读

Hadoop 2.0 安装向导 (0.23.x卡塔尔国
http://www.linuxidc.com/Linux/2012-05/61463.htm

Hadoop 1.2.1 单节点安装(Single Node Setup卡塔尔(英语:State of Qatar)步骤
http://www.linuxidc.com/Linux/2013-08/89377.htm

在CentOS上安装Hadoop
http://www.linuxidc.com/Linux/2013-08/88600.htm

Ubuntu 12.04安装Hadoop
http://www.linuxidc.com/Linux/2013-08/88187.htm

CentOS 6.3 x86_64设置与配置Hadoop-1.0
http://www.linuxidc.com/Linux/2013-07/87959.htm

Hadoop入门–Hadoop2伪布满式安装
http://www.linuxidc.com/Linux/2013-06/86403.htm

Hadoop2.2.0单节点安装及测量检验
http://www.linuxidc.com/Linux/2013-10/91911.htm

图片 4