[[PageOutline]]
◢ <[wiki:Hinet130923/Lab6 實作六]> | <[wiki:Hinet130923 回課程大綱]> ▲ | <[wiki:Hinet130923/Lab8 實作八]> ◣
= 實作七 Lab7 =
{{{
#!html
基本除錯技能(三) 切換 Hadoop 設定檔
Debug Skill (3) Change Hadoop Configuration for Hadoop Client
}}}
{{{
#!text
請先連線至 nodeN.3du.me , N 為您的報名編號
}}}
* 通常一般程式設計師只能取得有限的權限,無法修改 hadoop 叢集的設定,[[BR]]因此是否能夠在 Hadoop Client 端對某些使用者有權修改的參數進行調整呢?
* 答案是可行的! [[BR]]Hadoop Client 執行端可以透過 HADOOP_CONF_DIR 環境變數來修改想要調整的 Hadoop 參數。[[BR]]以下拿前述的三種模式來做示範。
* 各位前面執行完實作三,目前是運行於全分散模式(Full Distributed Mode)。[[BR]]我們可以透過修改 HADOOP_CONF_DIR 環境變數切換 hadoop 指令會採用的模式:
{{{
user@node1:~/hadoop_labs$ export HADOOP_CONF_DIR=~/hadoop/conf.pseudo/
user@node1:~/hadoop_labs$ hadoop fs -ls
user@node1:~/hadoop_labs$ export HADOOP_CONF_DIR=~/hadoop/conf.local/
user@node1:~/hadoop_labs$ hadoop fs -ls
user@node1:~/hadoop_labs$ unset HADOOP_CONF_DIR
user@node1:~/hadoop_labs$ hadoop fs -ls
}}}
* 甚至透過這種方式,我們可以讓 Hadoop Client 在不同座 Hadoop 叢集之間做切換
{{{
user@node50:~/hadoop_labs$ cd
user@node50:~$ cp -r hadoop/conf.full hadoop/conf.node1
user@node50:~$ sed -r 's#node50#node1#g' hadoop/conf.node1/core-site.xml
user@node50:~$ sed -r 's#node50#node1#g' hadoop/conf.node1/mapred-site.xml
user@node50:~$ export HADOOP_CONF_DIR=~/hadoop/conf.node1/
user@node50:~$ export HADOOP_ROOT_LOGGER=DEBUG,console
user@node50:~$ hadoop fs -ls
user@node50:~$ unset HADOOP_CONF_DIR
user@node50:~$ hadoop fs -ls
user@node50:~$ unset HADOOP_ROOT_LOGGER
}}}