搭建centos7的開發(fā)環(huán)境2-單機(jī)版Hadoop2.7.3配置

最近公司準(zhǔn)備升級spark環(huán)境匕争,主要原因是生產(chǎn)環(huán)境的spark和hadoop版本都比較低,但是具體升級到何種版本還不確定脑豹,需要做進(jìn)一步的測試分析坐慰。這個任務(wù)對于大數(shù)據(jù)開發(fā)環(huán)境配置有要求,這里記錄一下配置過程鲤孵,但是對于為什么要做這些配置還不是很了解壶栋,算是知其然不知其所以然,深入了解再寫篇博文分析裤纹。

JDK配置

按照上一篇博文的配置委刘,我發(fā)現(xiàn)centos7的 JDK已經(jīng)安裝好了,可以通過下面的代碼進(jìn)行檢查鹰椒,如下圖锡移,顯示的1.8.0_121的openJDK

[kejun@localhost ~]$ java -version
openjdk version "1.8.0_121"
OpenJDK Runtime Environment (build 1.8.0_121-b13)
OpenJDK 64-Bit Server VM (build 25.121-b13, mixed mode)

沒有安裝也不要緊,通過yum安裝還是很方便的漆际,可以通過下面的指令來安裝JDK:

yum search java|grep jdk
yum install java-1.8.0-openjdk

下一步是配置JAVA的環(huán)境變量淆珊,因?yàn)槭窍到y(tǒng)默認(rèn)安裝的JDK,所以要找到JDK的目錄比較困難奸汇,需要通過下面兩個語句來進(jìn)行查詢施符,第一個查詢是獲得/usr/bin/java的依賴連接,第二個查詢是進(jìn)一步獲得依賴的依賴的:

[kejun@localhost ~]$ ll /usr/bin/java
lrwxrwxrwx. 1 root root 22 3月  16 17:11  /usr/bin/java -> /etc/alternatives/java
[kejun@localhost ~]$ ll /etc/alternatives/java
lrwxrwxrwx. 1 root root 73 3月  16 17:11 /etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.121-0.b13.el7_3.x86_64/jre/bin/java

通過這個辦法得到的/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.121-0.b13.el7_3.x86_64就是系統(tǒng)默認(rèn)的JDK目錄擂找。獲得JDK目錄后戳吝,配置環(huán)境變量的指令為:

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.121-0.b13.el7_3.x86_64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH

有三種方法可以支持配置JAVA的環(huán)境變量:
在shell終端中通過上述命令直接執(zhí)行,這種配置只對當(dāng)前的shell有效贯涎,所以不推薦听哭。
修改~/.bash_profile文件,在下面的兩個語句中進(jìn)行插入即可

PATH=$PATH:$HOME/.local/bin:$HOME/bin
#這里插入
export PATH

這個修改只針對當(dāng)前的用戶生效塘雳。但是hadoop配置中可能需要切換到另外一個用戶hadoop進(jìn)行配置陆盘,因此這個方法也不適合。
修改/etc/profile败明,這種配置方法適合于所有用戶隘马,但是這種修改比較適合單人的開發(fā)環(huán)境使用,我們選擇這種方式妻顶。

vi /etc/profile
source /etc/profile

到此酸员,我們完成了JDK的配置蜒车。下一步進(jìn)入hadoop的安裝。

hadoop安裝

安裝參考的文檔是:CentOS 6.5 hadoop 2.7.3 集群環(huán)境搭建
Linux Hadoop2.7.3 安裝(單機(jī)模式) 一

hadoop有三種安裝模式:單機(jī)standlone模式沸呐,偽分布式模式醇王,分布式模式。
因?yàn)闆]有多余的服務(wù)器資源供我測試崭添,這里我選擇了單機(jī)模式的安裝寓娩。

  • 首先是安裝hadoop,目前hadoop已經(jīng)更新到3.0版本了呼渣,但是2.7.3肯定還是主流版本棘伴,我選擇從清華的源下載了hadoop安裝包:
cd /tmp
wget http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz
tar -zxvf hadoop-2.7.3.tar.gz
cp -R /tmp/hadoop-2.7.3  /usr/hadoop
  • 增加hadoop的環(huán)境變量
sudo -i
vim /etc/profile 
HADOOP_HOME=/usr/hadoop
export JAVA_LIBRARY_PATH='/usr/hadoop/lib/native
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
  • 設(shè)置免密鑰登陸。
    hadoop中客戶端和服務(wù)器屁置、計(jì)算節(jié)點(diǎn)之間通信都需要通過SSH焊夸,Hadoop并沒有提供SSH輸入密碼的登錄形式,因此為了保證可以順利登錄每臺機(jī)器蓝角,需要將所有機(jī)器配置為namenode可以無密碼登錄它們阱穗。不配置免密鑰有什么壞處我還沒搞清楚,后續(xù)再補(bǔ)充使鹅。
    首先通過rpm -qa | grep ssh 檢查ssh是否安裝:
[root@localhost ~]# rpm -qa | grep ssh
openssh-clients-6.6.1p1-33.el7_3.x86_64
openssh-6.6.1p1-33.el7_3.x86_64
openssh-server-6.6.1p1-33.el7_3.x86_64
libssh2-1.4.3-10.el7_2.1.x86_64

如果沒有發(fā)現(xiàn)ssh也不要緊揪阶,可以通過yum安裝:

yum install openssh-clients  
yum install openssh-server  

接下來依次執(zhí)行,下面的指令可以確保當(dāng)前用戶可以免密鑰登陸:

ssh localhost
cd ~/.ssh/ 
ssh-keygen -t dsa 
cat id_dsa.pub >> authorized_keys

通過root用戶修改ssh的配置:

sudo -i
vim /etc/ssh/sshd_config 
RSAAuthentication yes 
PubkeyAuthentication yes 
AuthorizedKeysFile .ssh/authorized_keys
service sshd restart

后續(xù)在配置hadoop的過程中患朱,我們會發(fā)現(xiàn)會出現(xiàn)ssh的錯誤:The authenticity of host 0.0.0.0 can't be established.
解決方法可以通過下列命令解決:

ssh  -o StrictHostKeyChecking=no  0.0.0.0

配置hadoop

完成hadoop及ssh的安裝步驟后鲁僚,接下來是對hadoop的配置文件進(jìn)行修改。

  • 修改/usr/hadoop/etc/hadoop/core-site.xml文件
<configuration>
      <property>
        <name>fs.defaultFS</name>
        <value>hdfs://0.0.0.0:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/hadoop/temp</value>
    </property>
</configuration>
  • 修改/usr/hadoop/etc/hadoop/hdfs-site.xmll文件
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
  • 首次啟動需要格式化namenode文件
/usr/hadoop/bin/hdfs namenode -format
  • 然后可以啟動和停止hdfs
/usr/hadoop/sbin/start-dfs.sh
/usr/hadoop/sbin/stop-dfs.sh

啟動后裁厅,訪問 http://localhost:50070/dfshealth.html#tab-datanode 可以得到這個頁面冰沙,就是配置成功了。

Map-Reduce示例

為了驗(yàn)證單機(jī)版的hadoop配置是否正確执虹,接下來做一個map-reduce的樣例拓挥。對于一個文本的單詞集進(jìn)行計(jì)數(shù)
具體的配置如下:

  • 首先配置mapred-site.xml
cd /usr/hadoop/etc/hadoop
mv mapred-site.xml.template mapred-site.xml
vim mapred-site xml
===============================
<configuration>
<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
</property>
===============================
</configuration>
  • 配置 yarn-site.xml:
vim mapred-site xml
===============================
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration
===============================
  • 準(zhǔn)備數(shù)據(jù)words.txt,并將其導(dǎo)入hdfs:
[root@localhost hadoop]# cd /usr/hadoop
[root@localhost hadoop]# vi words.txt
[root@localhost hadoop]# cat words.txt
=============================
wo xiang shuo shen me 
shen me dou bu jue de
yi qie yi qie dou shi xu huan de 
hahaha
=============================
[root@localhost hadoop]# cd bin
[root@localhost bin]# hadoop fs -put /usr/hadoop/words.tx
  • 啟動yarn袋励,并執(zhí)行wordcount任務(wù):
[root@localhost bin]# start-yarn.sh
[root@localhost bin]# hadoop jar /usr/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount hdfs://localhost:9000/words.txt hdfs://localhost:9000/out3

接下來撞叽,打開鏈接就可以看到結(jié)果了http://localhost:50070/explorer.html#/

遇到的問題及解決

  • p1:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
    首先,啟動在終端顯示debug信息插龄,然后再開始尋找原因:
export HADOOP_ROOT_LOGGER=DEBUG,console

網(wǎng)上也有人有類似的問題,但是原因并不總是一樣的科展,我配置的出現(xiàn)這個問題是因?yàn)镴AVA_LIBRARY_PATH沒有配置均牢,這個在配置我已經(jīng)在上文的hadoop環(huán)境配置中增加上了(標(biāo)粗體)

  • p2: data node沒有啟動
    這個問題出現(xiàn)的比較隱蔽,我打開頁面http://localhost:50070/dfshealth.html#tab-datanode 發(fā)現(xiàn)沒有data node在運(yùn)行才睹。
    首先name node徘跪、data node和namesecondary的運(yùn)行文件都在/usr/hadoop/logs這個目錄中
    然后檢查logs文件目錄中的hadoop-root-datanode-localhost.localdomain.log就可以發(fā)現(xiàn)問題了:
[root@localhost logs]# ls
hadoop-root-datanode-localhost.localdomain.log
hadoop-root-datanode-localhost.localdomain.out
hadoop-root-datanode-localhost.localdomain.out.1
hadoop-root-datanode-localhost.localdomain.out.2
hadoop-root-datanode-localhost.localdomain.out.3
hadoop-root-datanode-localhost.localdomain.out.4
hadoop-root-datanode-localhost.localdomain.out.5
hadoop-root-namenode-localhost.localdomain.log
hadoop-root-namenode-localhost.localdomain.out
hadoop-root-namenode-localhost.localdomain.out.1
hadoop-root-namenode-localhost.localdomain.out.2
hadoop-root-namenode-localhost.localdomain.out.3
hadoop-root-namenode-localhost.localdomain.out.4
hadoop-root-namenode-localhost.localdomain.out.5
hadoop-root-secondarynamenode-localhost.localdomain.log
hadoop-root-secondarynamenode-localhost.localdomain.out
hadoop-root-secondarynamenode-localhost.localdomain.out.1
hadoop-root-secondarynamenode-localhost.localdomain.out.2
hadoop-root-secondarynamenode-localhost.localdomain.out.3
hadoop-root-secondarynamenode-localhost.localdomain.out.4
hadoop-root-secondarynamenode-localhost.localdomain.out.5
SecurityAuth-root.audit
userlogs
yarn-root-nodemanager-localhost.localdomain.log
yarn-root-nodemanager-localhost.localdomain.out
yarn-root-nodemanager-localhost.localdomain.out.1
yarn-root-nodemanager-localhost.localdomain.out.2
yarn-root-nodemanager-localhost.localdomain.out.3
yarn-root-resourcemanager-localhost.localdomain.log
yarn-root-resourcemanager-localhost.localdomain.out
yarn-root-resourcemanager-localhost.localdomain.out.1
yarn-root-resourcemanager-localhost.localdomain.out.2
yarn-root-resourcemanager-localhost.localdomain.out.3

檢查log后發(fā)現(xiàn)出現(xiàn)data node不啟動的原因是使用了多次namenode format的操作甘邀,后臺存儲的clusterID為第一次format的ID,再次format后datanode的clusterID沒有變化,導(dǎo)致匹配不上垮庐,具體的報(bào)錯情況為:

java.io.IOException: Incompatible clusterIDs in /usr/hadoop/temp/dfs/data: namenode clusterID = CID-9754ec5b-c309-4b36-89ce-f00de7285927; datanode clusterID = CID-d05d2a3a-4fe7-4de4-a53a-6960403696cc

解決這個問題比較簡單松邪,到datanode目錄下修改VISION即可:

[root@localhost hadoop]# cd /usr/hadoop/temp/dfs/data/current/
[root@localhost current]# ls
BP-1948380787-127.0.0.1-1490148702615  VERSION
BP-2135918609-127.0.0.1-1490082190396
[root@localhost current]# vim VERSION
=======================================
storageID=DS-34e30373-c8e1-4bfa-a5c7-84fd43ac99e2
clusterID=#在這里修改#
cTime=0
datanodeUuid=ae0dae79-7de1-4207-8151-af6a6b86079d
storageType=DATA_NODE
layoutVersion=-56
=======================================
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市哨查,隨后出現(xiàn)的幾起案子逗抑,更是在濱河造成了極大的恐慌,老刑警劉巖寒亥,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件邮府,死亡現(xiàn)場離奇詭異,居然都是意外死亡溉奕,警方通過查閱死者的電腦和手機(jī)褂傀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來加勤,“玉大人仙辟,你說我怎么就攤上這事■罚” “怎么了叠国?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長卫枝。 經(jīng)常有香客問我煎饼,道長,這世上最難降的妖魔是什么校赤? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任吆玖,我火速辦了婚禮,結(jié)果婚禮上马篮,老公的妹妹穿的比我還像新娘沾乘。我一直安慰自己,他們只是感情好浑测,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布翅阵。 她就那樣靜靜地躺著,像睡著了一般迁央。 火紅的嫁衣襯著肌膚如雪掷匠。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天岖圈,我揣著相機(jī)與錄音讹语,去河邊找鬼。 笑死蜂科,一個胖子當(dāng)著我的面吹牛顽决,可吹牛的內(nèi)容都是我干的短条。 我是一名探鬼主播,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼才菠,長吁一口氣:“原來是場噩夢啊……” “哼茸时!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起赋访,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤可都,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后进每,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體汹粤,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年田晚,在試婚紗的時候發(fā)現(xiàn)自己被綠了嘱兼。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡贤徒,死狀恐怖芹壕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情接奈,我是刑警寧澤踢涌,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站序宦,受9級特大地震影響睁壁,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜互捌,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一潘明、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧秕噪,春花似錦钳降、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至澈蝙,卻和暖如春吓坚,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背灯荧。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工礁击, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓客税,卻偏偏與公主長得像,于是被迫代替她去往敵國和親撕贞。 傳聞我的和親對象是個殘疾皇子更耻,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1.Linux安裝前的配置 1.1.關(guān)閉防火墻 本站文檔是假定「服務(wù)器在防火墻以內(nèi)」的前提下編纂的,在這個前提下...
    lao男孩閱讀 3,322評論 0 4
  • 1 目的將hadoop 2.7.1 安裝到 166捏膨、167秧均、168 三臺機(jī)器上2 提供環(huán)境練習(xí)環(huán)境192.168....
    灼灼2015閱讀 3,399評論 4 40
  • 設(shè)置固定IP地址及網(wǎng)關(guān) 設(shè)置IP 設(shè)置網(wǎng)關(guān) 設(shè)置DNS 重啟網(wǎng)卡 測試網(wǎng)絡(luò) 設(shè)置主機(jī)名對應(yīng)IP地址 添加Hadoo...
    isgiker閱讀 1,883評論 0 1
  • 青春目胡, 原本淡得像是一杯水, 但是链快,你的出現(xiàn)誉己, 開始讓我的青春多了更多的味道和色彩。 我...
    錯過也很美閱讀 383評論 0 1
  • 如果不知道孤獨(dú)的滋味域蜗,就不能堅(jiān)強(qiáng)的成長巨双。可是又疑惑成長是為了什么霉祸。人筑累,生而在世,卻沒有辦法擺脫束縛丝蹭,沒有條件獲得自...
    定約閱讀 330評論 0 0