初始化HDFS
功能简介
在使用HDFS提供的API之前,需要先进行HDFS初始化操作。过程为:
- 加载HDFS服务配置文件。
- 实例化Filesystem。
代码样例
如下是代码片段,详细代码请参考com.huawei.bigdata.hdfs.examples中的HdfsExample类。
//初始化
confLoad();
// 创建一个用例
HdfsExample hdfs_examples = new HdfsExample("/user/hdfs-examples", "test.txt");
/**
*
* 如果程序运行在Linux上,则需要core-site.xml、hdfs-site.xml的路径修改为在Linux下客户端文件的绝对路径
*
*
*/
private static void confLoad() throws IOException {
conf = new Configuration();
// conf file
conf.addResource(new Path(PATH_TO_HDFS_SITE_XML));
conf.addResource(new Path(PATH_TO_CORE_SITE_XML));
// conf.addResource(new Path(PATH_TO_SMALL_SITE_XML));
}
/**
*创建用例
*/
public HdfsExample(String path, String fileName) throws IOException {
this.DEST_PATH = path;
this.FILE_NAME = fileName;
instanceBuild();
}
private void instanceBuild() throws IOException {
fSystem = FileSystem.get(conf);
}
(可选)运行此样例代码需要设置运行用户,若需运行Colocation相关操作的样例代码,则此用户需属supergroup用户组。设置运行用户有两种方式,添加环境变量HADOOP_USER_NAME或者修改代码。
添加环境变量HADOOP_USER_NAME:可参考调测HDFS应用。
System.setProperty("HADOOP_USER_NAME", USER);