带有camel、jms的hadoop java api

70gysomp  于 2021-05-29  发布在  Hadoop
关注(0)|答案(0)|浏览(220)

嗨,我正在使用camel从jms队列获取消息,使用fs-javaapi处理消息并将其存储在hadoop中,然后将其传输到另一个队列
我现在20岁。因此,cameljms一次消耗20条消息。对于每条消息,我创建fs连接并执行创建文件和写入文件的操作。
这就是问题所在
我看到的是,有时在将内容写入文件时,由于某种原因,我的namenode会关闭,在这种情况下,我希望将我的名称切换到活动的namenode
这是我得到的日志
[camel(camel-1)线程#1上次调用#169 clientnamenodeprotocoltranslatorpd.getfileinfo over{name\u node\u address\u allias/ip:port}后发生故障转移
当我调试它时,我会显示在待机状态下不支持操作类别write
我想在那个时候切换到活动名称节点
hadoop java api示例代码

package org.myorg;
import org.apache.hadoop.conf.*;
import org.apache.hadoop.security.UserGroupInformation;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.FileStatus;

public class HdfsTest {
    public static void main(String args[]) {
        conf.addResource("path-of-core-site.xml");
        conf.addResource("path-of-hdfs-site.xml");
        conf.set("fs.defaultFS", "hdfs://cloudera:8020");
        conf.set("hadoop.security.authentication", "kerberos");
        UserGroupInformation.setConfiguration(conf);
        UserGroupInformation.loginUserFromKeytab("hdfs@CLOUDERA", "/etc/hadoop/conf/hdfs.keytab");
        FileSystem fs = FileSystem.get(conf);    
        //logic to create a file and write
        //close the cfile and connection
    }
}

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题