1. 程式人生 > >大資料學習——下載叢集根目錄下的檔案到E盤

大資料學習——下載叢集根目錄下的檔案到E盤

程式碼如下:

package cn.itcast.hdfs;

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

public class TestHDFS {
    public static void main(String[] args) throws IOException {
        Configuration conf 
= new Configuration(); //偽造root使用者身份 System.setProperty("HADOOP_USER_NAME","root"); //1首先需要一個hdfs的客戶端物件 conf.set("fs.defaultFS", "hdfs://mini1:9000"); FileSystem fs = FileSystem.get(conf); fs.copyToLocalFile( new Path("/hello.txt"),new Path("E://")); fs.close(); } }

此時會報空指標異常

 

 

修改後程式碼如下:

 

package cn.itcast.hdfs;

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

public class TestHDFS {
    public static void main(String[] args) throws
IOException { Configuration conf = new Configuration(); //偽造root使用者身份 System.setProperty("HADOOP_USER_NAME", "root"); //1首先需要一個hdfs的客戶端物件 conf.set("fs.defaultFS", "hdfs://mini1:9000"); FileSystem fs = FileSystem.get(conf); // fs.copyToLocalFile( new Path("/hello.txt"),new Path("E://")); fs.copyToLocalFile(false, new Path("/hello.txt"), new Path("E://"), true); fs.close(); } }

 

 

 

 

注意,出現以上的問題是沒有配環境變數造成的

window下開發的說明

建議在linux下進行hadoop應用的開發,不會存在相容性問題。如在window上做客戶端應用開發,需要設定以下環境:

A、用老師給的windows平臺下編譯的hadoop安裝包解壓一份到windows的任意一個目錄下

B、在window系統中配置HADOOP_HOME指向你解壓的安裝包目錄

C、在windows系統的path變數中加入HADOOP_HOME的bin目錄