java读取hdfs数据

想在一台搞了小半天,终于调通了,感觉有些地方和网上说的不太一样,mark一下。

目的:在java程序中访问hdfs数据,用作后续处理。

主要在配置,要加载hadoop下面的core-site.xml和hdfs-site.xml这两个文件,还要自己手动添加一个配置文件(因为在客户端访问需要秘钥)。

贴一下比较重要的部分的代码:

configuration.addResource(new FileInputStream("你自己的目录/core-site.xml"));
configuration.addResource(new FileInputStream("/你自己的目录/hdfs-site.xml"));
configuration.addResource(new FileInputStream("userDefine-site.xml"));
if (configuration.get("hadoop.security.authorization").equals("true")) {
    System.out.println("aaaa");
    UserGroupInformation.setConfiguration(configuration);
    UserGroupInformation.loginUserFromKeytab(configuration.get("login.kerberos.principal"), configuration.get("login.keytab.file"));
}

这个userDefine-site.xml是自己写的,里面主要提供了login.kerberos.principal和login.keytab.file 

根据自己的情况定。

猜你喜欢

转载自blog.csdn.net/mimi9919/article/details/79657076