大數(shù)據(jù)平臺-kerberos安裝部署文檔_第1頁
大數(shù)據(jù)平臺-kerberos安裝部署文檔_第2頁
大數(shù)據(jù)平臺-kerberos安裝部署文檔_第3頁
大數(shù)據(jù)平臺-kerberos安裝部署文檔_第4頁
大數(shù)據(jù)平臺-kerberos安裝部署文檔_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

環(huán)境準(zhǔn)備操作系統(tǒng)本次安裝部署要求在操作系統(tǒng)為CentOSrelease6.5(Final)的版本下進行部署,所以在安裝部署kerberos之前請先確保操作系統(tǒng)為以上版本,并且集群中各機器已做時鐘同步。本次安裝部署以csdm-hadoop-04作為主kdc服務(wù)器,以csdm-hadoop-05作為從kdc服務(wù)器,以csdm-hadoop-03作為客戶端。一般不建議在服務(wù)器上再安裝其他應(yīng)用程序,比如hadoop。但為了節(jié)省資源本次安裝在這三臺機器均已安裝hadoop相關(guān)軟件。創(chuàng)建操作用戶創(chuàng)建操作系統(tǒng)hdfs、yarn、mapred用戶,并使其歸屬于hadoop用戶組:adduserhdfs-gHadoopadduseryarn-gHadoopaddusermapred-gHadoop配置hosts文件為各臺機器修改/etc/hosts文件,將真實ip與主機名對應(yīng)配置,服務(wù)端與客戶端均需配置,形如:(不能存在的配置,否則hadoop進行kerberos驗證時將會出錯)關(guān)閉防火墻執(zhí)行以下命令關(guān)閉防火墻:serviceiptablesstop出現(xiàn)以下界面表示關(guān)閉成功注冊服務(wù)與端口的對應(yīng)在/etc/service文件最后增加以下信息,以便后續(xù)使用: krb5_prop754/tcp#Kerberosslavepropagation安裝配置Kerberos安裝rpm包以root用戶登錄并創(chuàng)建目錄存放安裝包:mkdir/var/kerberos上傳安裝包文件到創(chuàng)建的目錄,包括krb5-libs-1.10.3-10.el6_4.6.x86_64.rpm、krb5-server-1.10.3-10.el6_4.6.x86_64.rpm(客戶端可不安裝)、krb5-workstation-1.10.3-10.el6_4.6.x86_64.rpm執(zhí)行安裝命令:rpm-ivhkrb5-libs-1.10.3-10.el6_4.6.x86_64.rpm

rpm-ivhkrb5-server-1.10.3-10.el6_4.6.x86_64.rpm【客戶端可不安裝】

rpm-ivhkrb5-workstation-1.10.3-10.el6_4.6.x86_64.rpm查看上述包是否已安裝成功:rpm–qakrb5*若出現(xiàn)以下情況則代表安裝成功。 配置主KDC服務(wù)器設(shè)置全局環(huán)境變量需要以root身份登錄系統(tǒng)在/etc/profile末尾增加配置文件的全局環(huán)境變量:exportKRB5_CONFIG=/etc/krb5.confexportKRB5_KDC_PROFILE=/var/kerberos/krb5kdc/kdc.conf保存后并執(zhí)行source/etc/profile使之生效。配置krb5.conf執(zhí)行vi編輯/etc/krb5.conf,內(nèi)容如下:[libdefaults]default_realm=ERICSSON.COMdns_lookup_realm=falsedns_lookup_kdc=falseticket_lifetime=24hrenew_lifetime=7dforwardable=true[realms]ERICSSON.COM={kdc=csdm-hadoop-04kdc=csdm-hadoop-05 krb5kdc此時即可在客戶端csdm-hadoop-03上連接KDC服務(wù)器4、生成可訪問csdm-hadoop-03機器應(yīng)用程序的驗證在主KDC服務(wù)器csdm-hadoop-04,生成csdm-hadoop-03的principals和keytab,為客戶端csdm-hadoop-03添加principals(可以為host或者所要進行驗證的機器用戶)addprinc–randkeyhost/csdm-hadoop-03@ERICSSON.COM為客戶端csdm-hadoop-03生成keytabKtadd–k/var/kerberos/krb5kdc/keytab/host.keytabhost/csdm-hadoop-03@ERICSSON.COM把csdm-hadoop-04上生成的keytab復(fù)制到csdm-hadoop-03機器上測試服務(wù)器服務(wù)器端測試客戶端連接

運行kinitadmin/admin,顯示提示輸入密碼則代表配置成功:遠程客戶機連接測試

在客戶機運行kinitadmin/admin連接服務(wù)端,顯示提示輸入密碼則代表配置成功:Hadoop集成kerberos配置4.1kerberos配置Hadoop官方網(wǎng)站建議的操作系統(tǒng)用戶及權(quán)限如下,下面我們按照這三個用戶的權(quán)限進行配置,要求使用下面三種用戶分別具有各自啟動相應(yīng)進程的權(quán)限。User:GroupDaemonshdfs:hadoopNameNode,SecondaryNameNode,JournalNode,DataNodeyarn:hadoopResourceManager,NodeManagermapred:hadoopMapReduce,JobHistoryServer4.1.1為所有機器的用戶生成principal從主KDC服務(wù)器csdm-hadoop-04上,把/etc/krb5.conf復(fù)制到csdm-hadoop-03本地對應(yīng)目錄,在主KDC服務(wù)器上為hadoop集群中每臺機器的用戶創(chuàng)建principal,下面以csdm-hadoop-03這臺機器為例,運行管理入口命令:kadmin.local在提示符下執(zhí)行以下命令:addprinc-randkeyhdfs/csdm-hadoop-03@ERICSSON.COMaddprinc-randkeyhost/csdm-hadoop-03@ERICSSON.COMaddprinc-randkeyyarn/csdm-hadoop-03@ERICSSON.COMaddprinc-randkeyhost/csdm-hadoop-03@ERICSSON.COMaddprinc-randkeymapred/csdm-hadoop-03@ERICSSON.COMaddprinc-randkeyhost/csdm-hadoop-03@ERICSSON.COM注:集群中的每臺機器所用到的用戶都需執(zhí)行上面的命令生成principal每個用戶必須執(zhí)行addprinc-randkeyhost/XX@XX的命令,這個命令生成的是基于Kerberos的應(yīng)用程序(例如klist和kprop)和服務(wù)(例如ftp和telnet)使用的主體。此主體稱為host主體或服務(wù)主體。4.1.2生成keytab文件完成5.1.1后在主KDC服務(wù)器上為所有principal生成keytab文件,運行管理入口命令:kadmin.local在提示符下執(zhí)行以下命令:xst-norandkey-k/var/kerberos/krb5kdc/keytab/hdfs.keytabhdfs/csdm-hadoop-03@ERICSSON.COMhost/csdm-hadoop-03@ERICSSON.COMxst-norandkey-k/var/kerberos/krb5kdc/keytab/mapred.keytabmapred/csdm-hadoop-03@ERICSSON.COMhost/csdm-hadoop-03@ERICSSON.COMxst-norandkey-k/var/kerberos/krb5kdc/keytab/yarn.keytabyarn/csdm-hadoop-03@ERICSSON.COMhost/csdm-hadoop-03@ERICSSON.COM生成授權(quán)文件后,使用以下命令檢查生成的keytab是否可用:kinit-k-t/var/kerberos/krb5kdc/keytab/hdfs.keytabhdfs/csdm-hadoop-03@ERICSSON.COMkinit-k-t/var/kerberos/krb5kdc/keytab/mapred.keytabmapred/csdm-hadoop-03@ERICSSON.COMkinit-k-t/var/kerberos/krb5kdc/keytab/yarn.keytabyarn/csdm-hadoop-03@ERICSSON.COM檢查沒問題后,把生成的keytab文件分發(fā)到整個集群中的所有機器。修改HADOOP配置文件4.2.1Jsvc安裝配置Datanode的安全機制需要以root用戶身份用jsvc來啟動,因此首先需要檢查是否安裝是jsvc如果沒有,按以下步驟進行安裝:下載commons-daemon-1.0.15-src.tar.gz包并上傳至自定義的目錄(本操作目錄為/home/hadoop)解壓縮后以root用戶登錄進入目錄/home/Hadoop執(zhí)行:tar–xvfcommons-daemon-1.0.15-bin.tar.gz解壓完成后進入/home/Hadoop/commons-daemon-1.0.15-src/src/native/unix執(zhí)行命令:configure執(zhí)行命令:make編譯完成后,會在/home/hadoop/commons-daemon-1.0.15-src/src/native/unix目錄下生成jsvc可執(zhí)行文件,如下圖在該目錄下執(zhí)行filejsvc如果出現(xiàn)下圖所示,則jsvc安裝成功這里,我們把該執(zhí)行文件復(fù)制到$HADOOP_HOME/bin以便后續(xù)的配置執(zhí)行命令:cp/home/hadoop/commons-daemon-1.0.15-src/src/native/unix/jsvc/home/hadoop/hadoop/bin4.2.2hadoop-env.sh配置找到以下兩項配置,并修改exportHADOOP_SECURE_DN_USER=hdfs(配置為要執(zhí)行datanode的用戶,這里為hdfs)exportJSVC_HOME=/home/hadoop/hadoop/bin(配置為jsvc所在的目錄)4.2.3core-site.xml在集群中所有節(jié)點的core-site.xml文件中添加下面的配置<!--kerberosconfig--><property><name>hadoop.security.authorization</name><value>true</value></property><property><name>hadoop.security.authentication</name><value>kerberos</value></property><property><name>tection</name><value>authentication</value></property><!—默認使用authentication,可使用integrity

,privacy

--><property><name>hadoop.security.auth_to_local</name><value>DEFAULT</value></property><!—此選項對應(yīng)krb5.conf中【realms】的auth_to_local,用于將操作系統(tǒng)用戶與principal的映射關(guān)系-->4.2.4hdfs-site.xml在集群中所有節(jié)點的hdfs-site.xml文件中添加下面的配置,下面配置以節(jié)點csdm-hadoop-04為例:<!--GeneralHDFSsecurityconfig--><property><name>dfs.block.access.token.enable</name><value>true</value></property><!--NameNodesecurityconfig--><property><name>dfs.encrypt.data.transfer</name><value>true</value></property><property><name>dfs.https.address</name><value>csdm-hadoop-04:50470</value></property><property><name>dfs.https.port</name><value>50470</value></property><property><name>node.keytab.file</name><value>/var/kerberos/krb5kdc/keytab/hdfs.keytab</value><!--pathtotheHDFSkeytab--></property><property><name>node.kerberos.principal</name><value>hdfs/_HOST@ERICSSON.COM</value></property><property><name>node.kerberos.https.principal</name><value>host/_HOST@ERICSSON.COM</value></property><!--SecondaryNameNodesecurityconfig--><property><name>dfs.secondary.https.address</name><value>csdm-hadoop-04:50495</value></property><property><name>dfs.secondary.https.port</name><value>50495</value></property><property><name>node.keytab.file</name><value>/var/kerberos/krb5kdc/keytab/hdfs.keytab</value><!--pathtotheHDFSkeytab--></property><property><name>node.kerberos.principal</name><value>hdfs/_HOST@ERICSSON.COM</value></property><property><name>node.kerberos.https.principal</name><value>host/_HOST@ERICSSON.COM</value></property><!--DataNodesecurityconfig--><property><name>dfs.datanode.data.dir.perm</name><value>700</value></property><property><name>dfs.datanode.address</name><value>:1004</value></property><property><name>dfs.datanode.http.address</name><value>:1006</value></property><property><name>dfs.datanode.keytab.file</name><value>/var/kerberos/krb5kdc/keytab/hdfs.keytab</value><!--pathtotheHDFSkeytab--></property><property><name>dfs.datanode.kerberos.principal</name><value>hdfs/_HOST@ERICSSON.COM</value></property><property><name>dfs.datanode.kerberos.https.principal</name><value>host/_HOST@ERICSSON.COM</value></property><!--webconfig--><property><name>dfs.web.authentication.kerberos.principal</name><value>hdfs/_HOST@ERICSSON.COM</value></property><property><name>dfs.web.authentication.kerberos.keytab</name><value>/var/kerberos/krb5kdc/keytab/hdfs.keytab</value><description>TheKerberoskeytabfilewiththecredentialsfortheHTTPKerberosprincipalusedbyHadoop-AuthintheHTTPendpoint.</description></property>配置中有幾點要注意的.dfs.datanode.address表示datatransceiverRPCserver所綁定的hostname或IP地址,如果開啟security,端口號必須小于1024(privilegedport),否則的話啟動datanode時候會報“Cannotstartsecureclusterwithoutprivilegedresources”錯誤.principal中的instance部分可以使用'_HOST'標(biāo)記,系統(tǒng)會自動替換它為全稱域名.如果開啟了security,hadoop會對hdfsblockdata做permissioncheck,方式用戶的代碼不是調(diào)用hdfsapi而是直接本地讀blockdata,這樣就繞過了kerberos和文件權(quán)限驗證,管理員可以通過設(shè)置dfs.datanode.data.dir.perm來修改datanode文件權(quán)限,這里我們設(shè)置為700配置完成后,修改hdfs.keytab所有者為hdfschown-Rhdfs:hadoop/var/kerberos/krb5kdc/keytab/hdfs.keytabchmod700/var/kerberos/krb5kdc/keytab/hdfs.keytab同時保證以下表格中各個目錄的對于hdfs用戶的權(quán)限FilesystemPathUser:GroupP.dirhdfs:hadoopdrwx------localdfs.datanode.data.dirhdfs:hadoopdrwx------local$HADOOP_LOG_DIRhdfs:hadoopdrwxrwxr-xHdfs/hdfs:hadoopdrwxr-xr-xHdfs/tmphdfs:hadoopdrwxrwxrwxtHdfs/userhdfs:hadoopdrwxr-xr-x1、測試namenode進程啟動是否正常切換到hdfs用戶,首先執(zhí)行klist命令,查看當(dāng)前是否獲取了ticket,經(jīng)測試,如果已經(jīng)獲取了ticket那么啟動namenode進程的時候會報以下錯誤使用kdestroy銷毀獲取的ticket切換到hdfs用戶,啟動namenode進程(已經(jīng)執(zhí)行過HDFS格式化的操作)執(zhí)行命令:hadoopnamenode如果配置正常,應(yīng)該會看到以下的日志信息輸出驗證namenode是否啟動正??纱蜷_網(wǎng)頁http://XX:50070/dfshealth.html#tab-overview驗證hadoopfs-ls/注:如果在你的憑據(jù)緩存中沒有有效的kerberosticket,執(zhí)行hadoopfs–ls/將會失敗??梢允褂胟list來查看是否有有有效的ticket。如果為空,使用kinit來獲取ticket.命令如下kinit-k-t/var/kerberos/krb5kdc/keytab/hdfs.keytabhdfs/csdm-hadoop-03@ERICSSON.COM2、測試datanode啟動是否正常切換到root用戶,執(zhí)行命令:hadoop-daemon.shstartdatanode如果啟動正常,能在日志文件看到以下日志內(nèi)容在日志目錄,啟動datanode進程會有以下幾個日志文件,其中jsvc.err記錄了jsvc的錯誤信息啟動datanode進程,只能使用root用戶,如果使用其他用戶啟動,只會報以下錯誤4.2.5mapred-site.xml在mapred-site.xml中添加<!--JobTrackersecurityconfigs--><property><name>mapreduce.jobtracker.kerberos.principal</name><value>mapred/_HOST@ERICSSON.COM</value></property><property><name>mapreduce.jobtracker.kerberos.https.principal</name><value>host/_HOST@ERICSSON.COM</value></property><property><name>mapreduce.jobtracker.keytab.file</name><value>/var/kerberos/krb5kdc/keytab/mapred.keytab</value><!--pathtotheMapReducekeytab--></property><!--TaskTrackersecurityconfigs--><property><name>mapreduce.tasktracker.kerberos.principal</name><value>mapred/_HOST@ERICSSON.COM</value></property><property><name>mapreduce.tasktracker.kerberos.https.principal</name><value>host/_HOST@ERICSSON.COM</value></property><property><name>mapreduce.tasktracker.keytab.file</name><value>/var/kerberos/krb5kdc/keytab/mapred.keytab</value><!--pathtotheMapReducekeytab--></property><!--jobhistoryserversecurity--><property><namemapreduce.jobhistory.address</name><value>10020</value><!—如果不設(shè)置,則默認使用10020端口--></property><property><name>mapreduce.jobhistory.keytab</name><value>/var/kerberos/krb5kdc/keytab/mapred.keytab</value></property><property><name>mapreduce.jobhistory.principal</name><value>mapred/_HOST@ERICSSON.COM</value></property>將mapred.keytab文件賦權(quán)給mapred用戶,執(zhí)行以下命令:chown-Rmapred:hadoop/var/kerberos/krb5kdc/keytab/mapred.keytabchmod700/var/kerberos/krb5kdc/keytab/mapred.keytab確保以下表格中各個路徑的執(zhí)行權(quán)限FilesystemPathUser:GroupPermediate-done-dirmapred:hadoopdrwxrwxrwxthdfsmapreduce.jobhistory.done-dirmapred:hadoopdrwxr-x---測試historyserver進程執(zhí)行命令:mr-jobhistory-daemon.shstarthistoryserver配置正常,則會看到以下日志內(nèi)容4.2.6yarn-site.xml在yarn-site.xml追加以下內(nèi)容:<!--yarnsecurity--> <property><name>yarn.resourcemanager.keytab</name><value>/var/kerberos/krb5kdc/keytab/yarn.keytab</value></property><property><name>yarn.resourcemanager.principal</name><value>yarn/_HOST@ERICSSON.COM</value></property><!—以上為ResourceManager設(shè)置--><property><name>yarn.nodemanager.keytab</name><value>/var/kerberos/krb5kdc/keytab/yarn.keytab</value></property><property><name>yarn.nodemanager.principal</name><value>yarn/_HOST@ERICSSON.COM</value></property><property><name>yarn.nodemanager.container-executor.class</name><value>org.apache.hadoop.yarn.server.nodemanager.LinuxContainerExecutor</value></property><property><name>yarn.nodemanager.linux-container-executor.group</name><value>hadoop</value></property><property><name>yarn.nodemanager.linux-container-executor.path</name><value>/home/hadoop/hadoop/bin/container-executor</value><!—你存放container-executor的絕對路徑,下文有交代--></property><!—以上為NodeManager配置-->YARN提供了兩種Container啟動實現(xiàn),DefaultContainerExecutor以及LinuxContainerExecutor,在上面的yarn-site.xml里配置了yarn.nodemanager.container-executor.class的啟動方式為LinuxContainerExecutor,那么就需要編譯安裝LinuxContainerExecutor,按如下操作執(zhí)行:在hadoop的home目錄(這里是/home/Hadoop/hadoop)的

/etc/hadoop/目錄下創(chuàng)建container-executor.cfg文件,內(nèi)容如下:設(shè)置該文件權(quán)限:$chownroot:hadoopcontainer-executor.cfg$chmod400container-executor.cfg注意:container-executor.cfg

文件讀寫權(quán)限需設(shè)置為

400,所有者為

root:hadoop。并且該文件所在的父目錄所有者必須為root用戶,并對該文件所在的各個父目錄賦以下權(quán)限,例如:chmod750/home/hadoop/yarn.nodemanager.linux-container-executor.group

要同時配置在yarn-site.xml和container-executor.c

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論