package com.cr.java;
import org.apache.hadoop.fs.FsUrlStreamHandlerFactory;
import org.junit.Test;
import javax.print.DocFlavor;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
/**
* 完成HDFS操作
*/
public class HDFS {
/**
* 第一步:讀取HDFS文件
*/
@Test
public void readFile() throws Exception {
System.setProperty("hadoop.home.dir", "E:\\hadoop-2.7.5");
//注冊HDFS流處理器
URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
//拿到HDFS文件系統的url地址
//HDFS NameNode 8020 fs.defaultFS 接收Client連接的RPC端口,用於獲取文件系統metadata信息。
URL url = new URL("hdfs://s150:8020/usr/xiaoqiu/hadoop/index.html");
//拿到鏈接
URLConnection con = url.openConnection();
//讀取文件,獲取輸入流
InputStream is = con.getInputStream();
//創建緩沖區
byte[] buf = new byte[is.available()];
//開始向緩沖區讀取
is.read(buf);
//讀取完關閉輸入流
is.close();
//將緩沖區的內容轉為字符串打印出來
String str = new String(buf);
System.out.println(str);
}
}
- 添加Hadoop所有的jar包
- 添加日志文件log4j.properties(一定要加入到src文件夾下面)