1 環境準備
1.1 jar包準備
1)解壓hadoop-2.7.2.tar.gz到非中文目錄
注意1:如果使用winrar解壓報錯的話,就使用超級管理員許可權開啟dos視窗,然後cd到解壓包所在位置,執行start winrar x -y ***.tar.gz命令,即可成功
注意2:使用對應平台下編譯後的hadoop原始碼包,即win7系統使用在win7下編譯後的原始碼包,win10同理。
2)進入share資料夾,查詢所有jar包,並把jar包拷貝到_lib資料夾下
3)在全部jar包中查詢.source.jar,並剪下到_source資料夾。
4)在全部jar包中查詢tests.jar,並剪下到_test資料夾。
1.2 idea準備
1)配置hadoop_home環境變數
2)建立工程並且新增依賴
注意:eclipse全選jar包右鍵add build path
3)編寫**測試
4)執行程式
客戶端去操作hdfs時,是有乙個使用者身份的。預設情況下,hdfs客戶端api會從jvm中獲取乙個引數來作為自己的使用者身份:-dhadoop_user_name=atguigu,atguigu為使用者名稱。
5)驗證
2 通過api操作hdfs
2.1 hdfs獲取檔案系統
2.2 hdfs檔案上傳
@test
public void putfiletohdfs() catch (ioexception e) finally
}
@test
public void getfilefromhdfs() catch (ioexception e) finally
}
2.4 hdfs目錄建立/**
* 在hdfs上建立資料夾
*/@test
public void mkdirathdfs() catch (ioexception e) finally
}
2.5 hdfs資料夾刪除/**
* 刪除hdfs上的資料夾
*/@test
public void deletedirathdfs() catch (ioexception e) finally
}
2.6 hdfs檔名更改/**
* 重新命名hdfs上的資料夾
*/@test
public void renamedirathdfs() catch (ioexception e) finally
}
2.7 hdfs檔案詳情檢視/**
* 讀取hdfs上的檔案資訊
*/@test
public void readfileathdfs()
} catch (ioexception e) finally
}
-----------------------------------
檔名稱:asd.txt
塊的大小:134217728
內容長度:34
檔案許可權:rw-r--r--
-----------------------------------
檔名稱:hadoop-2.7.2.tar.gz
塊的大小:134217728
內容長度:197657687
檔案許可權:rw-r--r--
-----------------------------------
檔名稱:liugx.txt
塊的大小:134217728
內容長度:64
檔案許可權:rw-r--r--
-----------------------------------
檔名稱:x3.000
塊的大小:134217728
內容長度:592
檔案許可權:rw-r--r--
process finished with exit code 0
2.8 hdfs資料夾檢視/**
* 讀取資料夾資訊
*/@test
public void readffolderathdfs() else
}} catch (ioexception e) finally
}
3 通過io流操作hdfs
3.1 hdfs檔案上傳
/**
* 檔案上傳到hdfs
*/@test
public void putfiletohdfs() catch (ioexception e) finally
}
/**
*/@test
public void getfilefromhdfs() catch (ioexception e) finally
}
3.3 定位檔案讀取/**
*/@test
public void getfilefromhdfsseek1()
// 5 關閉流
ioutils.closestream(fis);
ioutils.closestream(fos);
} catch (ioexception e) finally
}
/**
*/@test
public void getfilefromhdfsseek2() catch (ioexception e) finally
}
合併檔案
type hadoop-2.7.2.tar.gz.part2 >> hadoop-2.7.2.tar.gz.part1
然後重新命名檔案hadoop-2.7.2.tar.gz.part1,將檔案.part1去掉
開啟檔案驗證
Hadoop系列一HDFS簡介
namenode nn namenode的metadata資訊在啟動後會載入到記憶體中,metadata資訊儲存在磁碟檔案fsimage,edits檔案記錄對metadata的操作日誌,block位置資訊只存在記憶體,不儲存到fsimage。secondarynamenode snn 不是nn的備份...
hadoop系列三 HDFS操作
0 檢視hdfs中的目錄資訊 hadoop fs ls hdfs路徑 1 上傳檔案到hdfs中 hadoop fs put 本地檔案 aaa hadoop fs copyfromlocal 本地檔案 hdfs路徑 copyfromlocal等價於 put hadoop fs movefromloca...
Hadoop系列之HDFS 資料塊 12
要把大檔案儲存在 hdfs上,hdfs 會把大檔案分割成小塊,即我們通常說的資料塊 block 它是 hadoop 分布式檔案系統最小的儲存單元,而且我們沒辦法決定指定塊的儲存節點位址,這些 namenode 會替我們決定。資料塊預設大小是 128mb,比作業系統裡面的塊概念要大很多 作業系統塊大小...