俗話說得好,萬事開頭難。在軟件開發(fā)中,環(huán)境部署要算是第一門檻了。我最近折騰了一周時間把cdh5.0.2.tar.gz版本在MRv1模式下,成功集成了Kerberos安全認(rèn)證,并且是在全分布式模式下。經(jīng)過這次安裝過程,對hadoop的了解又深入了一層。現(xiàn)在趁著自己剛搭建完環(huán)
俗話說得好,萬事開頭難。在軟件開發(fā)中,環(huán)境部署要算是第一門檻了。我最近折騰了一周時間把cdh5.0.2.tar.gz版本在MRv1模式下,成功集成了Kerberos安全認(rèn)證,并且是在全分布式模式下。經(jīng)過這次安裝過程,對hadoop的了解又深入了一層。現(xiàn)在趁著自己剛搭建完環(huán)境,腦子還時不時的閃現(xiàn)遇到的錯誤,把我的安裝過程記錄于此,一方面方便自己今后查閱,另一方面希望對今后遇到同樣問題人有所啟發(fā)。
首先說下為什么要用tarball安裝,cdh提供了一種manager方式進(jìn)行安裝,對Debian系列提供apt-get,對Redhat系列提供yum安裝,但是這些安裝方式把一些細(xì)節(jié)都替我們做了,如果我們今后希望遇到出現(xiàn)什么情況,不方便調(diào)試。另外,作為一個愛折騰的人,tar.gz也是我按照軟件的首選。
先說下我的搭建環(huán)境,4臺Centos6.5服務(wù)器,一臺做master,運(yùn)行namenode、jobtracker;另外三臺運(yùn)行datanode、tasktracker。此外master機(jī)器上還運(yùn)行Kerberos服務(wù)器。JDK的版本是1.7.60。關(guān)于5.0.2版本的環(huán)境要求可以參考http://www.cloudera.com/content/support/en/downloads/cdh/cdh-5-0-2.html#SystemRequirements。
這篇文章主要是我在參照cloudera官網(wǎng)的教程時遇到的坑。大家可以先去看看這個教程,再來看我的文章。
cdh5.0.2這里不再使用hadoop用戶,取而代之的是mapred用戶與hdfs用戶,這里需要分別為它們生產(chǎn)ssh的公鑰與秘鑰,并且配置免密碼登錄(當(dāng)然你可以為其中一個生產(chǎn),然后直接copy過去)。
首先,Kerberos的原理、安裝什么大家自己去維基百科去查,具體命令像kinit、kadmin怎么用也是大家自己查,以后有時間我會單獨(dú)抽時間講講Kerberos。
大家現(xiàn)在可以按照這個文章來進(jìn)行操作:Kerberos deploy guide。
后面需要為集群中每個節(jié)點(diǎn)的mapred與hdfs用戶生成各自的principal與keytab,所以這里大家一定要熟悉kerberos的命令,把這些東西做成腳本,要不能煩死你。
首先在這里http://archive.cloudera.com/cdh5/cdh/5/下載5.0.2的hadoop的tar包hadoop-2.3.0-cdh5.0.2.tar.gz,除了這個外,為了集成Kerberos,還需要下載bigtop-jsvc-1.0.10-cdh5.0.2.tar.gz。
這里需要講一點(diǎn)是,5.0.2 tarball版本模式是YARN模式,我這里搭建的是MRv1(也就是普通的MapReduce)模式,所以需要對tar包解壓出的文件做一些修改。
把hadoop-2.3.0-cdh5.0.2.tar.gz解壓,假設(shè)你解壓到了/opt目錄下,把hadoop-2.3.0-cdh5.0.2直接重命名為hadoop(現(xiàn)在你的cdh根目錄是/opt/hadoop),下面進(jìn)行我們的修改工作:
把其中的mapreduce這個軟鏈接文件刪除,然后創(chuàng)建一個同名的軟鏈接指向mapreduce1
cd /opt/hadoop/share/hadoop/ rm mapreduce -rf ln -s mapreduce1 mapreduce
經(jīng)過上面這兩步后,就默認(rèn)啟用了MRv1模式了,大家可以先把不帶Kerberos安全認(rèn)證的全分布式搭建起來,等到不帶Kerberos安全認(rèn)證的全分布式搭建起來后(可參考Hadoop全分布式搭建),再進(jìn)行下面的操作。
下面大家就可以按照官網(wǎng)的教程進(jìn)行操作,下面說下我遇到的坑:
sbin/hadoop-daemon.sh start namenode sbin/hadoop-daemons.sh start datanode
這兩條命令都是用root用戶執(zhí)行。
在這過程中,如果遇到什么logs文件夾不能寫入,將其權(quán)限改為777即可。
配置mapreduce接著參考官方的教程,下面繼續(xù)說我遇到的坑:
banned.users=mapred,hdfs,bin
這里這樣配置后,后面運(yùn)行wordcount會報異常,這里可直接將其值配置為bin即可
chown root:mapred task-controller chmod 47 task-controller
其解釋也在官網(wǎng)上有。
2014-07-15 18:15:25,722 ERROR org.apache.hadoop.mapred.TaskTracker: Can not start task tracker because java.io.IOException: Secure IO is necessary to run a secure task tracker. at org.apache.hadoop.mapred.TaskTracker.checkSecurityRequirements(TaskTracker.java:943) at org.apache.hadoop.mapred.TaskTracker.initialize(TaskTracker.java:976) at org.apache.hadoop.mapred.TaskTracker.(TaskTracker.java:1780) at org.apache.hadoop.mapred.TaskTracker.main(TaskTracker.java:4124)
這個錯誤是因?yàn)槿鄙賜ative包所致,這個包應(yīng)該是在/opt/hadoop/lib/native/,很遺憾,這些東西需要我們自己編譯,因?yàn)槊總€版本都不一樣,我把a(bǔ)pache hadoop的native直接copy過去也不行。這里我偷了個懶,直接從同事那里copy過來了。以后會說說如何從源碼編譯。下面說說如何編譯。
cdh的源碼都放在src文件夾下,安裝好maven后直接到這個文件夾下編譯就可以,我這里使用的是centos6.5編譯的,遇到的問題主要有:
1. maven repository經(jīng)常連接不上,需要多次重復(fù)操作。以后最好做一個本地repo 2. centos上需要自己安裝一些依賴,否則回報各種錯誤,可以用下面這條命令 yum install -y glibc-headers gcc-c++ zlib-devel openssl-devel 3. 一些test通過不了,需要跳過,用下面這條命令進(jìn)行編譯 mvn package -Pdist,native -DskipTests
好了,如果在編譯過程中還是遇到什么依賴缺失,直接去google下就ok了。
export HADOOP_JOBTRACKER_USER=mapred export HADOOP_TASKTRACKER_USER=mapred
啟動的命令是
sbin/hadoop-daemon.sh start jobtracker sbin/hadoop-daemons.sh start tasktracker
也有由root啟動。
這次搭建過程前前后后用了一個星期,麻煩是一回事,各種權(quán)限問題,最主要是還是我對hadoop的基本組成不夠了解,hadoop的各個部分都是分開的,在share/hadoop目錄下的每個文件夾都對應(yīng)與一個功能,我一開始就想著把他們都放一起,導(dǎo)致不同模塊的配置文件重復(fù)并產(chǎn)生沖突,最后導(dǎo)致進(jìn)程起不來,今后還是要加強(qiáng)對基本概念的理解。其次是遇到錯誤多看看日志文件,很多錯誤能夠直接根據(jù)錯誤信息就能夠改正。
還有需要吐槽的就是不能完全按部就班的照著教程來操作,應(yīng)該先看看像faq這些信息,做到有個整體上的把握,不至于拆了東墻補(bǔ)西墻,到最后也沒能完全解決問題。
下面進(jìn)行HA的環(huán)境搭建,這次一定要提高效率了!!!
俗話說得好,萬事開頭難。在軟件開發(fā)中,環(huán)境部署要算是第一門檻了。我最近折騰了一周時間把cdh5.0.2.tar.gz版本在MRv1模式下,成功集成了Kerberos安全認(rèn)證,并且是在全分布式模式下。經(jīng)過這次安裝過程,對hadoop的了解又深入了一層。現(xiàn)在趁著自己剛搭建完環(huán)境,腦子還時不時的閃現(xiàn)遇到的錯誤,把我的安裝過程記錄于此,一方面方便自己今后查閱,另一方面希望對今后遇到同樣問題人有所啟發(fā)。
原文地址:hadoop1.0 安全認(rèn)證(kerberos)安裝與總結(jié), 感謝原作者分享。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com