1. 程式人生 > >Ambari學習筆記:以本地倉庫自動搭建hadoop叢集環境

Ambari學習筆記:以本地倉庫自動搭建hadoop叢集環境

測試平臺:Ubuntu_server_16.04_x64

準備好一臺虛擬機器,安裝vmtool以設定共享資料夾:

sudo mkdir /mnt/cdrom
mount -tro iso9660 /dev/cdrom /mnt/cdrom
sudo tar -vxzf /mnt/cdrom/VMwareTools
cd vmware-tools-distrib
./vmware-install.pl
rm -rf ../vmware-tools-distrib
ln -s /mnt/hgfs/shared_dir /home/daya/shared_dir(此句在重啟後執行)

建立好root賬戶:
sudo passwd root

Requirements

首先看下abmari的一些前置需求與相容性,看是否滿足:

滿足


瀏覽器需要安裝Ubuntu桌面,必要時再進行安裝。


安裝openssl:
sudo apt-get install openssh-server -y
安裝Python2.7:
sudo apt-get install python2.7 -y

安裝JDK:

cp /home/daya/shared_dir/jdk-8u144-linux-x64.tar.gz /usr/
tar -zxvf jdk-8u144-linux-x64.tar.gz
nano /etc/environment

修改並更新環境變數。

Environment

配置無密登入與root登入:

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
nano /etc/ssh/sshd_config
"PermitRootLogin yes"

安裝NTP服務同步時鐘:

apt-get install ntp
update-rc.d ntp defaults

複製虛擬機器,並修改各機的/etc/hosts與/etc/hostname檔案:

127.0.0.1       localhost
127.0.1.1       s3 
192.168.200.105 s1
192.168.200.106 s2
192.168.200.107 s3

# The following lines are desirable for
IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters

配置本地倉庫

搭建web伺服器

使用tomcat搭建web伺服器,詳見此文。之前搭建過tomcat的Ubuntu虛擬機器磁碟不足了,選擇在windows宿主機上使用tomcat搭建web伺服器。windows上安裝tomcat非常簡單,直接解壓然後設定CATALINA_HOME與JAVA_HOME即可。

下載本地tarball包

將三個tarball包解壓到tomcat的.\webapps\ROOT目錄下,修改.\webapps\ROOT\ambari\ubuntu16\ambari.list與.\webapps\ROOT\HDP\ubuntu16\hdp.list,將url的hostname改為web伺服器的ip地址:

http://192.168.1.103:8080/ambari/ubuntu16/
http://192.168.1.103:8080/HDP/ubuntu16/
http://192.168.1.103:8080/HDP-UTILS-1.1.0.21/repos/ubuntu16

啟動web伺服器:

c:\DevProgram\apache-tomcat-9.0.0.M26\bin\startup.bat

將修改的ambari.list複製到需要安裝Ambari Server/Agent主機的/etc/apt/sources.list.d/目錄下:

cp /home/daya/shared_dir/ambari.list /etc/apt/sources.list.d/
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com B9733A7A07513CAD
sudo apt-get update

Ambari Server/Agent安裝與配置

Ambari Server(s1)

apt-get install ambari-server(SSD速度飛快)
ambari-server setup
ambari-server start

Ambari Agent(s2,s3)

這步手動安裝實屬無奈,用web自動安裝agent會報錯,不知道怎麼解決。

apt-get install ambari-agent
nano /etc/ambari-agent/conf/ambari-agent.ini

修改”hostname=s1”,啟動:

ambari-agent start

自動配置hadoop叢集

注意自定義JAVA_HOME:/usr/jdk1.8.0_144。
由於三臺伺服器未安裝圖形桌面,在windows宿主機中用瀏覽器進入Ambari管理頁面進行hadoop叢集安裝:http://192.168.200.105:8080
在HDP頁面選擇使用本地倉庫,移除不需要的系統支援,修改Base URL:

輸入主機名:

因為在windows瀏覽器中無法訪問Ubuntu中的檔案,我們手動將私鑰資訊複製到對話方塊:

cat /root/.ssh/id_rsa

選擇的元件與分配如下:

下一步正確輸出所有配置資訊後等待完成即可,速度挺慢的,很吃硬碟跟CPU:

錯誤資訊

記憶體不足

等了好久結果啟動出錯,提示資訊為記憶體不足,擴大虛擬機器記憶體解決。

hosts錯誤

將虛擬機器記憶體擴大後又出現錯誤,具體描述為:除了HDFS之外的服務均無法啟動,其中Yarn的錯誤日誌為”:50070:Connection refused”。在這塊卡了好久,使用JPS命令看到namenode是啟動的,埠50070也是處於監聽狀態,但是50070頁面除了本機之外的另兩臺主機均無法訪問。在網上搜索無果後,注意到一個細節,在使用netstat -l檢視監聽埠時發現:

50070埠被繫結到了127.0.1.1上去了!
將hosts檔案中的127.0.1.1一行註釋掉,解決!

HIVE2錯誤

s2報錯:”returned 1. SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/hdp/2.6.1.0-129/hive2/lib/log4j-slf4j-impl-2.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/hdp/2.6.1.0-129/hadoop/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]”
jar包重複,刪除掉其中一個:

mv log4j-slf4j-impl-2.6.2.jar log4j-slf4j-impl-2.6.2.jar.bak

s2再次報錯:”com.mysql.jdbc.exceptions.jdbc4.CommunicationsException : Communications link failure”,修改/etc/hive2/conf/下的hive-site.xml,並使web頁面的配置與其保持一致:

<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://localhost/hive?createDatabaseIfNotExist=true</value>
  <description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
  <name>javax.jdo.option.ConnectionDriverName</name>
  <value>com.mysql.jdbc.Driver</value>
  <description>Driver class name for a JDBC metastore</description>
</property>

spark錯誤

“‘curl -sS -L -w ‘%{http_code}’ -X PUT –data-binary @/tmp/spark2/spark2-hdp-yarn-archive.tar.gz -H ‘Content-Type: application/octet-stream’ ‘http://s1:50070/webhdfs/v1/hdp/apps/2.6.1.0-129/spark2/spark2-hdp-yarn-archive.tar.gz?op=CREATE&user.name=hdfs&overwrite=True&permission=444’ 1>/tmp/tmpT4cIBk 2>/tmp/tmpEdq0e7’ returned 2. curl: option –data-binary: out of memory”
參考網站,暫未解決。

削減服務的叢集

削減部分服務已驗證ambari搭建hadoop叢集的可行性: