hadoop javaapi 폴더의 데이터 읽기
2779 단어 토대
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.*;
import org.apache.hadoop.io.IOUtils;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.net.URI;
코드:
복사하여 붙여넣기만 하면 됩니다.
output과 input을 바꾸면 사용할 수 있습니다. 파일을 읽으려면readHdfsFile () 방법을 사용하십시오.
public class HdfsApp {
private static String output="F:/Tags/jiemianshouye";
private static String input="hdfs://192.168.163.120:8020/user/hive/external/jiemianhomepage/dt=2018-12-12";
private static FileSystem getFileSystem(String direPath)throws Exception{
Configuration configuration = new Configuration();
FileSystem fileSystem = FileSystem.get(URI.create(direPath),configuration);
return fileSystem;
}
private static void readHdfsFile(String filePath){
FSDataInputStream fsDataInputStream=null;
try {
Path path = new Path(filePath);
fsDataInputStream = getFileSystem(filePath).open(path);
OutputStream out = new FileOutputStream(output,true);
IOUtils.copyBytes(fsDataInputStream,out,4096,false);
}catch (Exception e){
e.printStackTrace();
}finally {
if(fsDataInputStream != null){
IOUtils.closeStream(fsDataInputStream);
}
}
}
public static void getDirectoryFromHdfs(String direPath) throws Exception {
FileSystem fs = getFileSystem(direPath);
FileStatus[] filelist = fs.listStatus(new Path(direPath));
for (int i = 0; i < filelist.length; i++) {
System.out.println("_________________ " + i + " " + "____________________");
FileStatus fileStatus = filelist[i];
System.out.println("Name:" + fileStatus.getPath().getName());
System.out.println("Path:" + fileStatus.getPath());
readHdfsFile(fileStatus.getPath().toString());
System.out.println("size:" + fileStatus.getLen());
System.out.println("_________________ " + i + " " + "____________________");
}
fs.close();
}
public static void main(String[] args) throws Exception{
HdfsApp hdfsApp = new HdfsApp();
//hdfsApp.readHdfsFile("/user/data/JMRecommend/data-20181205-1/news/vectorize");
///user/hive/external/jiemianhomepage/dt=2018-12-12
getDirectoryFromHdfs(input);
// String inPath="D://workSpace/src/main/resources/hdfs-site.xml";
// String outPath="hdfs://ns/user/kfk/data/local.xml";
//hdfsApp.writeHdfsFile(inPath,outPath);
}
}
필요하신 분들께 도움이 됐으면 좋겠습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
귀속-귀속이 만족해야 할 두 가지 조건귀환은 단순한'자기 호출'도 아니고 간단한'자기 호출'도 아니다.그것은 문제를 분석하고 해결하는 방법과 사상의 일종이다.간단하게 말하자면 귀착된 사상은 문제를 규모가 더 작고 원문제와 같은 해법을 가진 문제로 분해하...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.