HDFS数据访问 - TBDSUDC/tdbs-document GitHub Wiki
此版本hadoop的访问最好使用tbds版本对应的jar包,这样会避免因为包的版本不一致,或者包的依赖冲突等问题。
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.7.2-TBDS-4.0.3.3</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>2.7.2-TBDS-4.0.3.3</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.7.2-TBDS-4.0.3.3</version>
</dependency>
hdfs的访问需要依赖相关的配置,需要加入配置文件。
private static Configuration conf = new Configuration();
conf.addResource(new FileInputStream("/etc/hadoop/conf/core-site.xml"));
conf.addResource(new FileInputStream("/etc/hadoop/conf/hdfs-site.xml"));
conf.set("fs.hdfs.impl", "org.apache.hadoop.hdfs.DistributedFileSystem");
public class WebhdfsDemo {
//日志文件
private static Logger logger = LoggerFactory.getLogger(WebhdfsDemo.class);
/**hadoop 相干的配置信息***/
private static Configuration conf = new Configuration();
// TBDS的认证信息加入
static {
conf.set("hadoop_security_authentication_tbds_username", "hdfs");
conf.set("hadoop_security_authentication_tbds_secureid", "YILf620OFPXSDV15HPhonYg9ZzinB91llkNE");
conf.set("hadoop_security_authentication_tbds_securekey", "1JsMBBMGXIQCtp69sRRNagNfLkyLoRLN");
}
/**
* HDFS配置信息注入
*/
private static void initConfiguration(){
try {
conf.addResource(new FileInputStream("/etc/hadoop/conf/core-site.xml"));
conf.addResource(new FileInputStream("/etc/hadoop/conf/hdfs-site.xml"));
conf.set("fs.hdfs.impl", "org.apache.hadoop.hdfs.DistributedFileSystem");
}catch (Exception e){
logger.error("Initial component configuration fail, please check it ",e);
}
}
/**运行代码**/
public static void main(String[] args) {
try {
//初始化配置
initConfiguration();
UserGroupInformation.setConfiguration(conf);
UserGroupInformation.loginUserFromSubject(null);
//获取文件系统
FileSystem fs = FileSystem.get(conf);
//调用文件系统的api的方法获取文件列表信息
FileStatus[] fileList = fs.listStatus(new Path("/"));
//Testing for search root dir file information
for (FileStatus fileStatus : fileList) {
System.out.println(fileStatus.toString());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
cd 项目根目录
mvn clean package