Hadoop搭建

環境: CentOS-6.7-x86_64虛擬機;

資料:在CentOS 7/6.5/6.4 中安裝Java JDK 8_Linux教程_Linux公社-Linux系統門戶網站

? ? ? ? ? ? yum 安裝 SSH - u012941811的專欄 - 博客頻道 - CSDN.NET

? ? ? ? ? ?Apache Hadoop 3.0.0-alpha1 – Hadoop: Setting up a Single Node Cluster.

? ? ? ? ? ?Hadoop安裝教程_偽分布式配置_CentOS6.4/Hadoop2.6.0_廈大數據庫實驗室博客

一、在安裝SSH時

(1)關于防火墻iptables配置。配置文件/etc/sysconfig/iptables中,前兩行#是注釋說明,#下面四條內容定義了內建的INPUT、FORWAARD、ACCEPT鏈,還創建了一個被稱為RH-Firewall-1-INPUT 的新鏈

? ? ? ? ? ? ? ? ? ? ? ? ? ? :INPUT ACCEPT [0:0]

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?:FORWARD ACCEPT [0:0]

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?:OUTPUT ACCEPT [0:0]

? ? ? ? ? ? ? ? ? ? ? ? ? ? :RH-Firewall-1-INPUT - [0:0]

? ? ? ?添加行 ?-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT 后,restart,該防火墻規則總是失敗。不管了直接走下面幾步。

(2)SSH配置時,修改vi /etc/ssh/sshd_config。CentOS下SSH配置方法詳解 - youxizhe的個人頁面 - 開源中國社區,操作了部分,一些安全措施、更改IP等未做。修改端口號時,將Port? 22這一行的#刪除,并新加一行 port ?2234。(如果改了默認端口好,在用ssh建立連接時,如ssh localhost -p 2234,要注明連接的端口。)

(3)SH2的公鑰與私鑰的建立:切換到普通用戶,執行命令 ssh-keygen -t rsa -P '' -f? ~/.ssh/id_rsa;cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys;chmod 0600 ~/.ssh/authorized_keys;(注意,這是在普通用戶下運行的,文件也保存在普通用戶目錄下,沒有)

Apache Hadoop官方教程里讓安裝pdsh,還沒安裝,等后續完成。

二、單機安裝Hadoop,只需export JAVA_HOME=/usr/java/jdk_1.8.0_xxx, ./bin/hadoop version測試通過。但是!!再次開機登錄時,JAVA_HOME仍然找不到,做法是:首先在/etc/hadoop/hadoop-env.sh中修改,然后在/etc/profile里修改,并source /etc/profile。

三、按照Apache官網的教程按部就班的執行。當在運行hadoop的時候,出現警告:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

原因:

Apache提供的hadoop本地庫是32位的,而在64位的服務器上就會有問題,因此需要自己編譯64位的版本。所以重新編譯hadoop。根據需要安裝JDK/GCC/MAVEN.

a)解決方案一*(未實踐) 重新編譯hadoop

(1)安裝gcc時,依次安裝gmp/mpfr/mpc,然后/etc/profile在后面添加路徑并source /etc/profile使之生效。同時源碼安裝步驟:先解壓縮,進入目錄,mkdir temp(輸出目錄),cd temp,../configure = --prefix=(usr/local/***),make,sudo make install。但是配置和編譯時仍然報錯,然后在配置前在源文件中下載依賴項:./contrib/download_prerequisites。之后因為缺乏依賴庫,缺什么就安裝什么。但是,編譯gcc時,編譯目錄/源目錄/編譯器三種安裝目錄不能在同一目錄下,否則出錯。

再更:完整的操作方式是:沒有自己安裝mpc/mpfr/mpc,而是解壓縮后,在源文件中執行:./ contrib/download_prerequisites ,自動下載安裝依賴項。然后把./configure,make

b).解決方案二

? ?通常編譯好的hadoop庫是在lib中,如果你不想編譯,可以用lib/native里面的預編譯庫,然后把native的庫移動到lib文件夾中。cp /lib/native/*? /lib/,然后在加入/etc/profile中加入系統變量

? ? ? ? ? ? ?export HADOOP_COMMON_LIB_NATIVE_DIR=/home/administrator/work/hadoop-2.6.0/lib/native

? ? ? ? ? ? ? export HADOOP_OPTS="-Djava.library.path=/home/administrator/work/hadoop-2.6.0/lib"

? ? ? ? ? ? ? export HADOOP_ROOT_LOGGER=DEBUG,console ? ?消除了該顯示。但仍存在問題

雖然該Warning可以忽略,但是在顯示結果時出現了太多DEBUG信息。建議重新編譯。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容