hdfs命令行
上傳 ?hadoop fs -put 文件名 hdfs://主機名:9000/...
下載 ?hadoop fs -get hdfs://主機名:9000/... 文件名
/hadoop/share/hadoop/mapreduce 文件夾下有測試程序
提交MapReduce任務命令
#hadoop jar hadoop-mapreduce-examples-2.4.1.jar pi 5 5
hadoop fs -mkdir /wordcount
hadoop fs -mkdir /wordcount/imput
hadoop fs -put test.txt /wordcount/input
hadoop jar hadoop-mapreduce-examples-2.4.1.jar wordcount /wordcount/input /wordcount/output
hadoop fs -ls /wordcount/output
hadoop fs -cat /wordcount/output/part-r-00000
hadoop fs -appendToFile 源 目的 ? ?HDFS支持追加,不支持修改
元數據:
/test/a.log, 3, {blk_1, blk_2}, [{blk_1:[h0, h1, h2]},{blk_2:[h1, h2, h3]}]
文件名 ?副本數 ?分塊 ?塊的副本所在的結點
(1)客戶端上傳文件時,NN首先往edits log文件中記錄元數據操作日志;
(2)上傳完成后,NN在內存中寫入這次上傳操作的元數據信息;
(3)edits滿或時間到,將edits刷入fsimage中,此步操作由secondnamenode來完成(checkpoint操作)。
checkpoint配置
hdfs-site.xml
fs.checkpoint.period ? ?default=3600s
fs.checkpoint.size ? ?default=64M
datanode配置
dfs.block.size ? ?default=128M
dfs.replication ? ?default=3
Linux ?du -sh * ? ?查看目錄中文件大小
hadoop spark 等基于大數據的產品,在Linux下開發更方便
Eclipse導包
1、新建project;
2、Project-->Properties-->Java Build Path-->Libraries-->AddLibrary-->User Library-->User Libraries-->New-->Add External JARs
hadoop/share/hadoop/...
hdfs hadoop-hdfs-2.4.1.jar,依賴于
hdfs/lib/*
common hadoop-common-2.4.1.jar,依賴于
common/lib/*
RUN-->Run Configuration-->Arguments-->VM arguments
設置 -DHADOOP_USER_NAME=...
Ctrl+T查看繼承結構
MapReduce中自定義排序的實現:
依據key類中的compareTo方法排序map task產生的中間輸出結果。
自定義Partitioner:
自定義的Partitioner類將所需的key值放入同一個reduce進程中處理,每個reduce進程將產生一個輸出文件。
Reduce進程的個數可通過job.setNumReduceTasks(int i)設置,默認reduce進程為1個。
ruduce number >= partitioner ? ?OK ?多余將產生空文件結果
reduce number < partitioner ? ?ERROR
reduce number = 1 ? ?OK
block ?文件塊
split ?切片
map task的數量由切片的數量決定
io.sort.mb ?緩沖大小,默認100M
io.sort.spill.percent ?閾值,默認0.8
mapred.local.dir ?寫入磁盤位置