1. 在conf/hadoop-env.sh文件中增加:export JAVA_HOME=/home/Java/jdk1.6
2. 在conf/core-site.xml文件中增加如下內(nèi)容:
<!-- fs.default.name - 這是一個(gè)描述集群中NameNode結(jié)點(diǎn)的URI(包括協(xié)議、主機(jī)名稱、端口號(hào)),集群里面的每一臺(tái)機(jī)器都需要知道NameNode的地址。DataNode結(jié)點(diǎn)會(huì)先在NameNode上注冊(cè),這樣它們的數(shù)據(jù)才可以被使用。獨(dú)立的客戶端程序通過這個(gè)URI跟DataNode交互,以取得文件的塊列表。-->
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
<!—hadoop.tmp.dir 是hadoop文件系統(tǒng)依賴的基礎(chǔ)配置,很多路徑都依賴它。如果hdfs-site.xml中不配 置namenode和datanode的存放位置,默認(rèn)就放在這個(gè)路徑中-->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hdfs/tmp</value>
</property>
3. 在conf/hdfs-site.xml中增加如下內(nèi)容:
<!-- dfs.replication -它決定著 系統(tǒng)里面的文件塊的數(shù)據(jù)備份個(gè)數(shù)。對(duì)于一個(gè)實(shí)際的應(yīng)用,它 應(yīng)該被設(shè)為3(這個(gè) 數(shù)字并沒有上限,但更多的備份可能并沒有作用,而且會(huì)占用更多的空間)。少于三個(gè)的備份,可能會(huì)影響到數(shù)據(jù)的 可靠性(系統(tǒng)故障時(shí),也許會(huì)造成數(shù)據(jù)丟失)-->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!-- dfs.data.dir - 這是DataNode結(jié)點(diǎn)被指定要存儲(chǔ)數(shù)據(jù)的本地文件系統(tǒng)路徑。DataNode結(jié)點(diǎn)上 的這個(gè)路徑?jīng)]有必要完全相同,因?yàn)槊颗_(tái)機(jī)器的環(huán)境很可能是不一樣的。但如果每臺(tái)機(jī)器上的這 個(gè)路徑都是統(tǒng)一配置的話,會(huì)使工作變得簡(jiǎn)單一些。默認(rèn)的情況下,它的值hadoop.tmp.dir, 這 個(gè)路徑只能用于測(cè)試的目的,因?yàn)?,它很可能?huì)丟失掉一些數(shù)據(jù)。所以,這個(gè)值最好還是被覆 蓋。
dfs.name.dir - 這是NameNode結(jié)點(diǎn)存儲(chǔ)hadoop文件系統(tǒng)信息的本地系統(tǒng)路徑。這個(gè)值只對(duì)NameNode有效,DataNode并不需要使用到它。上面對(duì)于/temp類型的警告,同樣也適用于這里。在實(shí)際應(yīng)用中,它最好被覆蓋掉。-->
<property>
<name>dfs.name.dir</name>
<value>/home/hdfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/hdfs/data</value>
</property>
<!—解決:org.apache.hadoop.security.AccessControlException:Permission denied:user=Administrator,access=WRITE,inode="tmp":root:supergroup:rwxr-xr-x 。
因?yàn)镋clipse使用hadoop插件提交作業(yè)時(shí),會(huì)默認(rèn)以 DrWho 身份去將作業(yè)寫入hdfs文件系統(tǒng)中,對(duì)應(yīng)的也就是 HDFS 上的/user/hadoop , 由于 DrWho 用戶對(duì)hadoop目錄并沒有寫入權(quán)限,所以導(dǎo)致異常的發(fā)生。解決方法為:放開 hadoop 目錄的權(quán)限, 命令如下 :$ hadoop fs -chmod 777 /user/hadoop -->
<property>
<name>dfs.permissions</name>
<value>false</value>
<description>
If "true", enable permission checking in HDFS. If "false", permission checking is turned off, but all other behavior is unchanged. Switching from one parameter value to the other does not change the mode, owner or group of files or directories
</description>
</property>
4. 在conf/mapred-site.xml中增加如下內(nèi)容:
<!-- mapred.job.tracker -JobTracker的主機(jī)(或者IP)和端口。-->
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
二、操作命令
1. 格式化工作空間
進(jìn)入bin目錄,運(yùn)行 ./hadoop namenode –format
2. 啟動(dòng)hdfs
進(jìn)入hadoop目錄,在bin/下面有很多啟動(dòng)腳本,可以根據(jù)自己的需要來啟動(dòng)。
* start-all.sh 啟動(dòng)所有的Hadoop守護(hù)。包括namenode, datanode, jobtracker, tasktrack
* stop-all.sh 停止所有的Hadoop
* start-mapred.sh 啟動(dòng)Map/Reduce守護(hù)。包括Jobtracker和Tasktrack
* stop-mapred.sh 停止Map/Reduce守護(hù)
* start-dfs.sh 啟動(dòng)Hadoop DFS守護(hù)Namenode和Datanode
* stop-dfs.sh 停止DFS守護(hù)
三、Hadoop hdfs 整合
可按如下步驟刪除和更改hdfs不需要的文件:
1.將hadoop-core-1.0.0.jar 移動(dòng)到lib目錄下。
2. 將ibexec目錄下的文件移動(dòng)到bin目錄下。
3. 刪除除bin、lib、conf、logs之外的所有目錄和文件。
4. 如果需要修改日志存儲(chǔ)路徑,則需要在conf/hadoop-env.sh文件中增加:
export HADOOP_LOG_DIR=/home/xxxx/xxxx即可。
四、HDFS文件操作
Hadoop使用的是HDFS,能夠?qū)崿F(xiàn)的功能和我們使用的磁盤系統(tǒng)類似。并且支持通配符,如*。
1. 查看文件列表
查看hdfs中/user/admin/hdfs目錄下的文件。
a. 進(jìn)入HADOOP_HOME目錄。
b. 執(zhí)行sh bin/hadoop fs -ls /user/admin/hdfs
查看hdfs中/user/admin/hdfs目錄下的所有文件(包括子目錄下的文件)。
a. 進(jìn)入HADOOP_HOME目錄。
b. 執(zhí)行sh bin/hadoop fs -lsr /user/admin/hdfs
2. 創(chuàng)建文件目錄
查看hdfs中/user/admin/hdfs目錄下再新建一個(gè)叫做newDir的新目錄。
a. 進(jìn)入HADOOP_HOME目錄。
b. 執(zhí)行sh bin/hadoop fs -mkdir /user/admin/hdfs/newDir
3. 刪除文件
刪除hdfs中/user/admin/hdfs目錄下一個(gè)名叫needDelete的文件
a. 進(jìn)入HADOOP_HOME目錄。
b. 執(zhí)行sh bin/hadoop fs -rm /user/admin/hdfs/needDelete
刪除hdfs中/user/admin/hdfs目錄以及該目錄下的所有文件
a. 進(jìn)入HADOOP_HOME目錄。
b. 執(zhí)行sh bin/hadoop fs -rmr /user/admin/hdfs
4. 上傳文件
上傳一個(gè)本機(jī)/home/admin/newFile的文件到hdfs中/user/admin/hdfs目錄下
a. 進(jìn)入HADOOP_HOME目錄。
b. 執(zhí)行sh bin/hadoop fs –put /home/admin/newFile /user/admin/hdfs/
5. 下載文件
下載hdfs中/user/admin/hdfs目錄下的newFile文件到本機(jī)/home/admin/newFile中
a. 進(jìn)入HADOOP_HOME目錄。
b. 執(zhí)行sh bin/hadoop fs –get /user/admin/hdfs/newFile /home/admin/newFile
6. 查看文件內(nèi)容
查看hdfs中/user/admin/hdfs目錄下的newFile文件
a. 進(jìn)入HADOOP_HOME目錄。
b. 執(zhí)行sh bin/hadoop fs –cat /home/admin/newFile