Hadoop通過url地址訪問HDFS


  • 新建Java工程
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文件夾下面)


































































免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM