开关名称节点-具有骆驼,jms

时间:2018-08-29 19:18:19

标签: java hadoop apache-camel fs java-api

嗨,我正在使用骆驼从JMS队列中获取消息,使用FS Java API处理消息并将其存储在Hadoop中,然后将其传输到另一个队列中

当前,我的JMS并发时间是20。因此,骆驼一枪,JMS一次消耗20条消息。对于每条消息,我都会创建fs连接,并执行创建文件和写入文件的操作。

这是问题

我有时看到的是在将内容写入文件时,由于某种原因我的名称节点关闭,在这种情况下,我想将我的名称切换为活动名称节点

这是我得到的日志

[骆驼(camel-1)线程#1自上一次通过{name_node_address_allias / ip:port}调用#169 ClientNamenodeProtocolTranslatorPD.getFileInfo以来发生了故障转移

调试时,我会显示状态待机状态下不支持“操作”类别

当时我想切换到活动名称节点

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
    }
}

0 个答案:

没有答案