1. 程式人生 > >在ubuntu14.04上使用ambari搭建hadoop叢集

在ubuntu14.04上使用ambari搭建hadoop叢集

一、環境準備

在使用ambari搭建hadoop叢集之前需要準備一些環境。本文使用三臺機器搭建hadoop叢集。IP分別為:

ubuntu 的 IP :192.168.127.138

hadoop1 的 IP: 192.168.127.135

hadoop2 的 IP:192.168.127.134

1.三臺機器之間相互註冊IP並且需要配置全域名

開啟ubuntu的host檔案配內容如下:

$ vim /etc/hosts

#127.0.0.1  localhost
#127.0.1.1  ubuntu

# The following lines are desirable for IPv6 capable hosts
#::1 ip6-localhost ip6-loopback #fe00::0 ip6-localnet #ff00::0 ip6-mcastprefix #ff02::1 ip6-allnodes #ff02::2 ip6-allrouters 192.168.127.138 ubuntu.test.com ubuntu #192.168.127.139 agent.test.com agent 192.168.127.134 hadoop2.test.com hadoop2 192.168.127.135 hadoop1.test.com hadoop1

把次hosts檔案複製到其他兩臺機器上。

2.安裝ntp服務

需要在每臺主機上安裝ntp協議。這時一種用於在多臺主機之間進行時間同步的協議。在每臺主機上使用以下命令即可。

$ sudo apt-get install ntp
$ service ntp start

3.安裝jdk

此處就不在贅述jdk的安裝了可以看我前一篇文章ubuntu14.04安裝ambari中jdk的安裝配置

4.安裝ssh服務並開啟遠端登入到root賬戶功能

安裝ssh服務使機器可以遠端使用ssh登入。

$ sudo apt-get install openssh-server 

安裝完成後配置ssh的配置檔案/etc/ssh/sshd_config使遠端ssh登入時可以使用root賬戶登入.
註釋PermitRootLogin without-password後新增PermitRootLogin yes。

# sudo vim /etc/ssh/sshd_config

# Authentication:
LoginGraceTime 120
#PermitRootLogin without-password
PermitRootLogin yes
StrictModes yes

5.配置ssh免密碼登入

在ambari-server機器ubuntu上使用root使用者在根目錄執行以下命令:

# ssh-keygen -t rsa 
# cd .ssh
# cat id_rsa.pub >>authorized_keys
# scp authorized_keys [email protected]:/root/.ssh
# 輸入密碼
# scp authorized_keys [email protected]:/root/.ssh
# 輸入密碼

在ubuntu機器上驗證是否可以免密碼登入到機器hadoop1和機器hadoop2上

# ssh  hadoop2
# ssh  hadoop1

二、使用ambari搭建hadoop叢集

1.啟動ambari-server服務

執行ambari-server start命令啟動ambari服務並在瀏覽器中輸入

http://192.168.127.138:8080
或者
http://ubuntu:8080

出現如下介面:

這裡寫圖片描述

登入之後出現hadoop搭建介面:

這裡寫圖片描述

2.Get Started.填入叢集的名稱

這裡寫圖片描述

3.Select Stack.選擇要安裝的版本,這裡我選擇了HDP2.4

這裡寫圖片描述

4.Confirm Hosts.選擇要安裝hadoop叢集的叢集

我在這步卡了好久,在這裡有一點需要注意target hosts必須填入FQDN即形如:xxx.xxx.com的形式,而並不是簡單的hostname。
可以通過hostname和hostname -f來驗證域名是否一樣。
(PS:第一次這一步的時候這樣配置沒有任何問題。第二次的時候出現了ambari-server的/var/log/ambari-server/ambari-server.log中出現找不到hostname的錯誤,我也不知道為什麼,我在網上搜索了很多都說是中文版本的問題,應該安裝英文版本的。但是我後來調了調hosts檔案就好使了感覺很莫名其妙。)

這裡寫圖片描述

5.Confirm Hosts.等待在每一臺hadoop叢集機器上安裝ambari-agent

這裡寫圖片描述

(PS:這圖是盜別人的結果和我的一樣知識前面配置的域名不一樣。忘了截圖了)

6.Choose Services.選擇要安裝的服務。這裡我只選擇了HDFS 和YARN這兩個。可以根據自己的實際情況安裝服務。

這裡寫圖片描述

7.Assign Masters各個服務master配置,這裡我選擇了預設配置

這裡寫圖片描述

8.Assign Slaves and Clients服務的Slaves和Clients節點配置

這裡寫圖片描述

9.Customize Services服務的客製化配置(會提示必須配置的選項)

這裡寫圖片描述

10.Review.顯示配置資訊

這裡寫圖片描述

11.開始安裝各種服務(真正的坑才剛剛開始)

這裡寫圖片描述

安裝過程報的錯誤

(1)錯誤1

Ambari agent process is not heartbeating on the host

ambari-agent沒有執行,我在hadoop1和hadoop2上啟動了之後還是報同樣的錯誤。開啟/var/log/ambari-agent/ambari-agent.log發現報ascii codec can’t decode byte 0xe8 in position 0:ordinal not in range(128)這個錯誤。

Solution:找到param.py檔案在其中加入

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

然後重新啟動

(2) 錯誤2

 Execution of '/usr/bin/apt-get -q -o Dpkg::Options::=--force-confdef --allow-unauthenticated --assume-yes install 'hadoop-2-4-.*-client'' returned 100. E: dpkg was interrupted, you must manually run 'dpkg --configure -a' to correct the problem.

Solution:

dpkg --configure -a

(3)錯誤3

Traceback (most recent call last):
  File "/var/lib/ambari-agent/cache/stacks/HDP/2.0.6/hooks/before-START/scripts/hook.py", line 39, in <module>
    BeforeStartHook().execute()
  File "/usr/lib/python2.6/site-packages/resource_management/libraries/script/script.py", line 219, in execute
    method(env)
  File "/var/lib/ambari-agent/cache/stacks/HDP/2.0.6/hooks/before-START/scripts/hook.py", line 28, in hook
    import params
  File "/var/lib/ambari-agent/cache/stacks/HDP/2.0.6/hooks/before-START/scripts/params.py", line 158, in <module>
    ambari_db_rca_password = config['hostLevelParams']['ambari_db_rca_password'][0]
TypeError: 'int' object has no attribute '__getitem__'

Solution:找到/var/lib/ambari-agent/cache/stacks/HDP/2.0.6/hooks/before-START/scripts/params.py這個檔案把155行到158行換成如下程式碼

ambari_db_rca_url = config['hostLevelParams']['ambari_db_rca_url']
ambari_db_rca_driver = config['hostLevelParams']['ambari_db_rca_driver']
ambari_db_rca_username = config['hostLevelParams']['ambari_db_rca_username']
ambari_db_rca_password = config['hostLevelParams']['ambari_db_rca_password']

(4)錯誤4

resource_management.core.exceptions.Fail: Execution of 'curl -sS -L -w '%{http_code}' -X PUT -T /usr/hdp/2.4.3.0-227/hadoop/mapreduce.tar.gz 'http://hadoop1.test.com:50070/webhdfs/v1/hdp/apps/2.4.3.0-227/mapreduce/mapreduce.tar.gz?op=CREATE&user.name=hdfs&overwrite=True&permission=444'' returned status_code=403. 
{
  "RemoteException": {
    "exception": "IOException", 
    "javaClassName": "java.io.IOException", 
    "message": "Failed to find datanode, suggest to check cluster health."
  }
}

Solution:我使用這條命令/usr/hdp/2.1.2/hadoop-hdfs/bin/hdfs datanode手動啟動hostname節點發現報錯

HttpServer.start() threw a non Bind IOException java.net.BindException: Port in use: localhost:0

於是我在host那麼檔案中添加了如下程式碼:

127.0.0.1 localhost

然後重新啟動就成功了。

錯誤5

resource_management.core.exceptions.Fail: Execution of '/usr/sbin/ambari-metrics-grafana start' returned 1. Starting Ambari Metrics Grafana: .... FAILED

Solution:手動啟動後成功了

這裡寫圖片描述
至此徹底完成了ambari搭建hadoop叢集~

相關推薦

ubuntu14.04使用ambari搭建hadoop叢集

一、環境準備 在使用ambari搭建hadoop叢集之前需要準備一些環境。本文使用三臺機器搭建hadoop叢集。IP分別為: ubuntu 的 IP :192.168.127.138 hadoop1 的 IP: 192.168.127.1

基於ubuntu14.04ambari安裝及叢集部署

第一節. Ambari簡介Ambari跟Hadoop等開源軟體一樣,也是Apache Software Foundation中的一個專案,並且是頂級專案。目前最新的釋出版本是2.4.1。就Ambari的作用來說,就是建立、管理、監視Hadoop的叢集,但是這裡的Hadoop是廣義,指的是Hadoop整個生態圈

Ambari搭建Hadoop叢集之配置SSH免密登入

Ambari搭建Hadoop叢集時為了實現叢集之間的主機進行快速的聯機,我們需要對叢集的虛擬機器進行免密登入配置。下面來說說具體步驟。 前提:3臺虛擬機器。 1.修改主機名 a)首先root許可權下分別對3臺虛擬機器進行修改。修改的命令如下: sudo hostnam

Ubuntu14.04Ambari安裝搭建部署大資料叢集(圖文分五大步詳解)(博主強烈推薦)

     不多說,直接上乾貨! 寫在前面的話   (1) 最近一段時間,因擔任我團隊實驗室的大資料環境叢集真實物理機器工作,至此,本人秉持負責、認真和細心的態度,先分別在虛擬機器上模擬搭建ambari(基於CentOS6.5版本)和cloudermanager(基於CentOS6.5或Ub

本地搭建hadoop叢集--hadoop2.7.6-src在linux編譯解決downloading過慢教程

第一步:工具的準備 apache-ant-1.9.9-bin.tar.gz apache-maven-3.0.5-bin.tar.gz hadoop-2.7.6-src.tar.gz jdk1.7 就好別用1.8 據說 用1.8 maven 編譯 會報各種錯。 protobuf-2

docker環境下搭建hadoop叢集(ubuntu16.04 LTS系統)

我的思路是這樣: 安裝ubuntu系統---->下載docker---->在docker里拉取hadoop映象---->在此映象裡建立三個容器(Master、Slave1、Slave2)---->完成完全分散式 1.   安裝ubuntu系統(無論你

hadoop實戰(二)ubuntu18.04搭建hadoop叢集

一、 安裝JDK    官網下載jdk壓縮包並解壓, vim /etc/proflie 或者修改vi ~/.bashrc 加上如下: export JAVA_HOME=/home/hadoop/jdk1.8.0_161 export HADOOP_HOME=/home/hado

Linux(ubuntu14.04)編譯Android4.4原始碼的環境搭建及編譯全過程

關於Linux(ubuntu14.04)上編譯Android原始碼的環境搭建詳細過程都是在sublime text中編輯好的,無奈,這次的資料丟失讓我不得不重新來回想手打一次了。可能很多細節問題,這次重新編輯文章時不會記得那麼清晰了,還請有問題的朋友在下面留言給我就好了。

用Docker在一臺膝型電腦搭建一個具有10個節點7種角色的Hadoop叢集(下)-搭建Hadoop叢集

上篇介紹了快速上手Docker部分,下面接著介紹搭建Hadoop叢集部分。 六、搭建Hadoop偽分佈模式 我們先用前面建立的這個容器來搭建Hadoop偽分佈模式做測試,測試成功後再搭建完全分散式叢集。1.SSH這個centos容器可以看做是一個非常精簡的系統,很多功能沒有,需要自己安裝。Hado

AWS搭建Hadoop叢集(一)——單機安裝Hadoop

課堂專案中實現了在AWS上搭建Hadoop叢集進行資料分析,過程中間不免遇到眾多問題,在此總結以供各位參考。 建立EC2例項 亞馬遜AWS服務想必大家都有所瞭解,這裡略過註冊過程(為了拿student credit還是花了一番功夫)。在EC2的介面上,

阿里雲ECS搭建Hadoop叢集環境——使用兩臺ECS伺服器搭建“Cluster mode”的Hadoop叢集環境

Ingredient: 之前在: 這4篇文章裡講述了搭建Hadoop環境時在本地“/etc/hosts”裡面的ip域名配置上應該注意的事情,以及如何配置伺服器之間的ssh免密碼登入,啟動Hadoop遇到的一些問題的解決等等,這些都是使用ECS伺服器搭

在centos7搭建hadoop叢集

準備工作 主機名稱 系統環境 ip地址 hadoop-master centos7 192.168.150.181 hadoop-slave1 centos7 192.168.150.182 hado

CentOS 7.4 安裝 Ambari 2.6.0 + HDP 2.6.3 搭建Hadoop叢集

1.安裝環境說明 三臺機器安裝好CentOS-7-x86_64-Minimal-1708.iso 下載地址:https://www.centos.org/download/ 最好在安裝時設定好IP和HOSTNAME 三臺機器的IP和HOSTNAME下載如下 主

Ubuntu14.04Hadoop安裝問題之解決方案

問題一:安裝時遇到info問題解決方案:(1)將info資料夾更名:mv  /var/lib/dpkg/info/   /var/lib/dpkg/info_old/(2)新建info資料夾:mkdir /var/lib/dpkg/info/(3)更新:apt-get  update(4)重新安裝:apt-g

Linux(ubuntu14.04)編譯Android4.4原始碼的環境搭建及編譯

1.下載並安裝jdk6   注意,版本一定要是jdk6,其他版本都會有問題。   網上流傳的方法大都是apt-get install來安裝jdk,實際操作證明這樣是不行的,下面給出個下載jdk6的地址   https://jdk6.java.net/download.htm

ubuntu14.04搭建Objective-C開發環境

我們的機器人需要iOS客戶端,於是要招iOS開發人員,而我們都不懂iOS開發,於是我緊急瞭解了下Objective-C(以下簡稱OC)的歷史和語法,然後想在ubuntu上動手試試OC程式設計,於是按照這篇文章搭建環境並編譯helloworld程式碼 gcc `gnustep

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

測試平臺:Ubuntu_server_16.04_x64 準備好一臺虛擬機器,安裝vmtool以設定共享資料夾: sudo mkdir /mnt/cdrom mount -tro iso9660 /dev/cdrom /mnt/cdrom sudo ta

webrtc在ubuntu14.04的編譯過程(12.04亦可)

使用 設置 arch clean lean 文件拷貝 ubun script name 轉自:http://blog.csdn.net/xiangjai/article/details/44409751 一、虛擬機環境搭建 1、安裝ubuntu 14.04虛擬機:

TQ2440在Ubuntu16.04如何搭建DNW燒寫環境

sudo 第一次 unistd.h vendor %d 不能 isp 配置 return   八月份國賽比完,原計劃開始的嵌入式Linux學習一直拖到了現在;由於之前所有的開發全在Windows下進行的,對各種底層完全不清楚,剛好這段時間開始學習Linux,我就在想能不能把

spark學習(1)--ubuntu14.04集群搭建、配置(jdk)

RM int 5.0 java_home 輸入 str cas Go 比較 環境:ubuntu14.04 1、文本模式桌面模式切換 ctrl+alt+F6 切換到文本模式 ctrl + alt +F7 /輸入命令startx切換到桌面模式 2、更改Ip地址、主機名 /