目錄
1.準(zhǔn)備工作
1.2初始化配置
1.2.1設(shè)置主機(jī)名
1.2.2HOSTS文件
1.2.3關(guān)閉防火墻和selinux
1.2.4免密配置(單臺機(jī)器也需要)
1.2.5修改yum源為阿里源
1.2.6配置JAVA環(huán)境變量(如果未安裝java環(huán)境則需要先安裝)
???????1.2.7NTP時鐘同步
???????1.2.8安裝httpd服務(wù)
???????1.2.9安裝MySQL并創(chuàng)建庫
2.部署Ambari
2.1 下載包
2.2 配置本地源
2.3 安裝啟動ambari
?3.通過Ambari安裝自帶組件
4.通過Ambrai安裝elk
4.1準(zhǔn)備工作
4.1.1下載相關(guān)安裝包
4.1.2上傳解壓拷貝
4.2 安裝
5.安裝部署遇到的問題
5.1 Error: Could not open client transport with JDBC Uri
5.2 hive服務(wù)啟動報錯
5.3 elasticesearch用戶名組的問題
5.4 elasticsearch無法導(dǎo)入format_hdp_stack_version
5.5 kibana無法導(dǎo)入format_hdp_stack_version
5.6 kibana無法導(dǎo)入format_hdp_stack_version
5.7 hostname was not found in configuration dictionary
5.8 master和slave啟動后又停止
5.9?parent directory /opt/elasticsearch/master/config doesnot exist
?
1.準(zhǔn)備工作
1.1環(huán)境版本說明
Ambrai :2.7.1.0-169
Hdp:3.0.1.0-187
Centos: 3.10.0-123.el7.x86_64
IP:192.168.31.139
只有一臺虛擬機(jī)所以全部采取單節(jié)點模式.
1.2初始化配置
1.2.1設(shè)置主機(jī)名
echo master >>?/etc/hostname
1.2.2HOSTS文件
cat > /etc/hosts?<<EOF
192.168.31.139?master
EOF
1.2.3關(guān)閉防火墻和selinux
#關(guān)閉防火墻
systemctl stop firewalld.service
systemctl disable firewalld.service
#查看狀態(tài)
firewall-cmd --state
#關(guān)閉selinux
setenforce 0
sed -i ‘s/SELINUX=*/SELINUX=disabled/g’?/etc/sysconfig/selinux
sysctl -p /etc/sysconfig/selinux
1.2.4免密配置(單臺機(jī)器也需要)
執(zhí)行如下命令:
1)# ssh-keygen -t rsa
一直回車到結(jié)束, /root/.ssh/目錄下生成了兩個文件 id_rsa 和 id_rsa.pub其中前者為私鑰,后者為公鑰
2)#cat?/root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
1.2.5修改yum源為阿里源
- 先備份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak
- 下載repo源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
???????1.2.6配置JAVA環(huán)境變量(如果未安裝java環(huán)境則需要先安裝)
說明:默認(rèn)只有jre環(huán)境,無jdk開發(fā)環(huán)境
查看linux7默認(rèn)運行環(huán)境jre
# ls -lrt /etc/alternatives/java
在根目錄下對.bash_profile新增如下配置(其中java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64為自帶的java版本):
# jdk config
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64
export JRE_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
然后加載環(huán)境變量
source .bash_profile
???????1.2.7NTP時鐘同步
#安裝ntpdate命令
#?yum install ntpdate -y
#跟網(wǎng)絡(luò)時間做同步
# ntpdate cn.pool.ntp.org
#把時間同步做成計劃任務(wù)
# crontab -e
* */1 * * * /usr/sbin/ntpdate ??cn.pool.ntp.org
#重啟crond服務(wù)
#service crond restart
???????1.2.8安裝httpd服務(wù)
httpd包及依賴包下載:
鏈接:https://pan.baidu.com/s/1roRtXBkmfM2WOoLcoDfXAQ
提取碼:q4my
執(zhí)行如下命令,依次按照rpm包
rpm -ivh XXX.rpm
啟動:
#systemctl start httpd.service
開機(jī)啟動:
#systemctl enable httpd.service
???????1.2.9安裝MySQL并創(chuàng)建庫
1)安裝
通過https://mariadb.org/mariadb/all-releases選擇要下載的版本
按照提示信息創(chuàng)建yum源信息文件
#vi /etc/yum.repos.d/MariaDB.repo
[mariadb]
name = MariaDB
baseurl = https://mirrors.aliyun.com/mariadb/yum/10.3/centos7-amd64
gpgkey=https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1
# yum install -y MariaDB-server MariaDB-client
啟動mariadb
systemctl start mariadb
設(shè)置為開機(jī)自啟動
systemctl enable mariadb
2)創(chuàng)建庫ambari和hive庫
create database ambari character set utf8 ; ?
CREATE USER 'ambari'@'%'IDENTIFIED BY 'XXXXX';
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%' IDENTIFIED BY 'XXXXX';
FLUSH PRIVILEGES;
create database hive character set utf8 ; ?
CREATE USER 'hive'@'%'IDENTIFIED BY 'XXXXX';
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%' IDENTIFIED BY?'XXXXX';
3)下載jdbc驅(qū)動包
mysqld的相關(guān)jar可以從MySQL :: Download MySQL Connector/J (Archived Versions)中下載,并放在/usr/share/java下。
2.部署Ambari
2.1 下載包
下載 Ambari HDP、HDP-UTILS、 HDP-GPL源包
# mkdir -p /var/www/html/ambari
將ambari需要的包解壓到var/www/html/ambari下
# tar -zxvf ambari-2.7.1.0-centos7.tar.gz -C /var/www/html/ambari/
# unzip HDP.zip -C /var/www/html/ambari/
# tar -zxvf HDP-GPL-3.0.1.0-centos7-gpl.tar.gz -C /var/www/html/ambari/
# tar -zxvf HDP-UTILS-1.1.0.22-centos7.tar.gz -C /var/www/html/ambari/
當(dāng)httpd服務(wù)啟動后,執(zhí)行命令curl http://192.168.31.139:8000/ambari/返回如下表示httpd服務(wù)正常
2.2 配置本地源
cd /etc/yum.repos.d/ 配置相關(guān)repo文件
[root@master yum.repos.d]# cat hdp.gpl.repo
#VERSION_NUMBER=3.0.1.0-187
[HDP-GPL-3.0.1.0]
name=HDP-GPL Version - HDP-GPL-3.0.1.0
baseurl=http://192.168.31.139:8000/ambari/HDP-GPL/centos7/3.0.1.0-187/
gpgcheck=1
gpgkey=http://192.168.31.139:8000/ambari/HDP-GPL/centos7/3.0.1.0-187/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
[root@master yum.repos.d]# cat ambari.repo
#VERSION_NUMBER=2.7.1.0-169
[ambari-2.7.1.0]
name=ambari Version - ambari-2.7.1.0
baseurl=http://192.168.31.139:8000/ambari/ambari/centos7/2.7.1.0-169/
gpgcheck=1
gpgkey=http://192.168.31.139:8000/ambari/ambari/centos7/2.7.1.0-169/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
[root@master yum.repos.d]# cat hdp.repo
#VERSION_NUMBER=3.0.1.0-187
[HDP-3.0.1.0]
name=HDP-3.0.1.0
baseurl=http://192.168.31.139:8000/ambari/HDP/centos7/3.0.1.0-187/
gpgcheck=1
gpgkey=http://192.168.31.139:8000/ambari/HDP/centos7/3.0.1.0-187/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
[HDP-UTILS-1.1.0.22]
name=HDP-UTILS Version - HDP-UTILS-1.1.0.22/
baseurl=http://192.168.31.139:8000/ambari/HDP-UTILS/centos7/1.1.0.22
gpgcheck=1
gpgkey=http://192.168.31.139:8000/ambari/HDP-UTILS/centos7/1.1.0.22/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
然后執(zhí)行如下命令:
#yum clean all?????//清除YUM緩存
#yum makecache //建立緩存
#yum repolist
2.3 安裝啟動ambari
# yum install ambari-server -y
# ambari-server setup
根據(jù)提示選擇進(jìn)行安裝
1.y
2.回車
3.Enable Ambari Server to download and install GPL Licensed LZO packages [y/n] (n)
4.Enter advanced database configuration [y/n] (n)? y
5.Enter choice (1): 3
Hostname (localhost): 192.168.31.139
Port (7306):
Database name (ambari): ambaridb
MySql schema (ambari):
Username (ambari): ambari
Enter Database Password (ambari):Amvari-123
Re-enter password:
Configuring ambari database...
----------------------------------------------------------
啟動服務(wù)
# ambari-server start
Server started listening on 8080
DB configs consistency check: no errors and warnings were found.
Ambari Server 'start' completed successfully.
訪問Web初始化配置集群
URL:http:192.168.31.139:8080
賬號/密碼:admin/admin
?3.通過Ambari安裝自帶組件
1)Ambari服務(wù)成功啟動,在瀏覽器輸入Ambari地址:http://192.168.31.139:8080??默認(rèn)用戶名admin 密碼admin登錄后進(jìn)入如下界面:
?2)點擊“LAUNCH INSTALL WIZARD”進(jìn)行創(chuàng)建集群,在如下界面輸入集群名稱“HDPSKY”,名稱自定義即可。
?3)點擊“next”,彈出如下界面,選擇“Use Local Repository”,然后在部分選擇對應(yīng)的os,并在每一項的Base URL處輸入源地址,即1.2.8節(jié)配置的httpd服務(wù)地址。
4)點擊“next”,彈出如下界面,選擇通過SSH Private Key進(jìn)行認(rèn)證方式,即1.2.4節(jié)配置互相免密。將master機(jī)器上的id_rsa私鑰到本地,并點擊“CHOOSE FILE”進(jìn)行上傳,點擊“next”。
?注意:如果是單節(jié)點也需要配置免密,即ssh 本機(jī)地址不需要輸入密碼表示配置正確,否則會在點擊“next”后,server日志會報如下錯誤。
?5)在點擊“next”后,彈出如下告警信息,可忽略,原因為hosts文件解析配置的域名為master,點擊“CONTINUE”。
6)選擇服務(wù)進(jìn)行安裝配置,默認(rèn)選擇即可,如此時未安裝,則該過程完成后,也可以再行添加安裝。
7)服務(wù)Master配置
8)服務(wù)的Slaves 和 Clients節(jié)配置
在彈出如下框處,輸入相關(guān)密碼,默認(rèn)和用戶名一樣。
9)服務(wù)的客制化配置,如果存在報警,請按照提示進(jìn)行修改地址或者密碼
注意在配置HIVE數(shù)據(jù)庫時候,選擇“Existing MySQL”選項,因為master節(jié)點已經(jīng)安裝了MySQL。否則會報錯如下:
?
上圖注意紅框處,需要下載jdbc的渠道包,見1.2.9第3)步準(zhǔn)備,執(zhí)行如下操作即可。
配置修改完成后,可以點擊“TEST CONNECTION”進(jìn)行連接測試,出現(xiàn)如下表示成功。
?
?
安裝啟動后,出現(xiàn)如下提示,可以點擊紅框處進(jìn)行查看日志具體情況進(jìn)行分析解決。
4.通過Ambrai安裝elk
4.1準(zhǔn)備工作
4.1.1下載相關(guān)安裝包
elasticsearch-6.4.2.tar.gz
kibana-6.4.2-linux-x86_64.tar.gz
Ambari-Elastic-Service-master.zip
下載地址:
https://www.elastic.co/cn/downloads/past-releases/elasticsearch-6-4-2
下載地址:
https://www.elastic.co/cn/downloads/past-releases/kibana-6-4-2
下載地址:https://github.com/BalaBalaYi/Ambari-Elastic-Service
4.1.2上傳解壓拷貝
1)Ambari-Elastic-Service-master.zip
新建/opt/es目錄,將Ambari-Elastic-Service-master.zip上傳至此目錄并解壓。
進(jìn)入解壓后的目錄,將ELASTICSEARCH-6.4.x文件夾和KIBANA-6.4.x文件夾拷貝到/var/lib/ambari-server/resources/stacks/HDP/3.0/services目錄,
進(jìn)入/var/lib/ambari-server/resources/stacks/HDP/3.0/services目錄,將ELASTICSEARCH-6.4.x和KIBANA-6.4.x重命名為ELASTICSEARCH和KIBANA
2)elasticsearch-6.4.2.tar.gz 和 kibana-6.4.2-linux-x86_64.tar.gz
新建/var/www/html/es目錄,將kibana-6.4.2-linux-x86_64.tar.gz和elasticsearch-6.4.2.tar.gz兩個壓縮包上傳至此目錄通過瀏覽器輸入http://192.168.31.139:8080/es測試能否訪問此目錄(需要有httpd服務(wù),1.2.8節(jié))
3)重啟ambari-server
#ambari-server restart
4.2 安裝
在Ambari頁面“Services”處點擊“Add Service”
勾選Elasticsearch和Kibana
選擇master和server服務(wù)安裝的節(jié)點
選擇slave服務(wù)安裝的節(jié)點
服務(wù)配置界面有紅點提示需要補(bǔ)充完整
elasticsearch的Discovery Zen Ping Unicast Hosts參數(shù)(之前所選安裝的節(jié)點,master)
elasticsearch的Elasticsearch Download Url參數(shù)(安裝包地址)
kibana的Elasticsearch Url參數(shù)(es的使用地址,按照提示進(jìn)行配置)
kibana的Server Host參數(shù)(之前所選安裝的節(jié)點)
kibana的Kibana Download Url(安裝包地址,見4.1.2)
點下一步點部署。
5.安裝部署遇到的問題
5.1 Error: Could not open client transport with JDBC Uri
在?hadoop?文件?core-site.xml?中配置信息如下,重啟Hadoop,再次動?hiveserver2?和?beeline?即可
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
5.2 hive服務(wù)啟動報錯
錯誤信息:Sys DB and Information Schema not created yet
解決方案:
#cd /etc/hive/
#touch /etc/hive/sys.db.created
進(jìn)入ambari-server 端重啟
#ambari-server restart
5.3 elasticesearch用戶名組的問題
錯誤信息:KeyError: u'elasticsearch'
Error: Error: Unable to run the custom hook script ['/usr/bin/python', '/var/lib/ambari-agent/cache/stack-hooks/before-ANY/scripts/hook.py', 'ANY', '/var/lib/ambari-agent/data/command-102.json', '/var/lib/ambari-agent/cache/stack-hooks/before-ANY', '/var/lib/ambari-agent/data/structured-out-102.json', 'INFO', '/var/lib/ambari-agent/tmp', 'PROTOCOL_TLSv1_2', '']
解決:
需要修改ambari-server資源中的一個配置參數(shù),將gnore_groupsusers_create由false改為true,之后手動創(chuàng)建用戶和用戶組。
具體步驟:
#cd /var/lib/ambari-server/resources/scripts
#python configs.py -u admin -p admin -n cluster_es -l manager.node -t 8080 -a get -c cluster-env | grep -i ignore_groupsusers_create
#python configs.py -u admin -p admin -n cluster_es -l manager.node -t 8080 -a set -c cluster-env -k ignore_groupsusers_create -v true
5.4 elasticsearch無法導(dǎo)入format_hdp_stack_version
錯誤:ImportError: cannot import name format_hdp_stack_version
解決:
第一步、
#cd /var/lib/ambari-server/resources/stacks/HDP/3.0/services/ELASTICSEARCH/package/scripts
#vim params.py
將params.py文件中的format_hdp_stack_version刪除。
第二步、清除所有elasticsearch slave節(jié)點的ambari-agent緩存。
#rm -rf /var/lib/ambari-agent/cache/*
進(jìn)入ambari-server 端重啟
#ambari-server restart
5.5 kibana無法導(dǎo)入format_hdp_stack_version
解決辦法同上。
#cd /var/lib/ambari-server/resources/stacks/HDP/3.0/services/KIBANA/package/scripts目錄。
清除緩存,重啟ambari server和agent服務(wù),之后重新安裝或者重試,遇到下面錯誤。
5.6 kibana無法導(dǎo)入format_hdp_stack_version
錯誤:kibana的_new__() takes at least 2 arguments(1 given)
解決:在kibana server節(jié)點上創(chuàng)建kibana用戶(組其實腳本已經(jīng)創(chuàng)建了)。
useradd -g kibana kibana
5.7 hostname was not found in configuration dictionary
錯誤:"/var/lib/ambari-agent/cache/stacks/HDP/3.0/services/ELASTICSEARCH/package/templates/elasticsearch.master.yml.j2", line 93, in top-level template code
action.destructive_requires_name: {{action_destructive_requires_name}}
File "/usr/lib/ambari-agent/lib/resource_management/libraries/script/config_dictionary.py", line 73, in __getattr__
raise Fail("Configuration parameter '" + self.name + "' was not found in configurations dictionary!")
resource_management.core.exceptions.Fail: Configuration parameter 'hostname' was not found in configurations dictionary!
解決辦法:
cd /var/lib/ambari-server/resources/stacks/HDP/3.0/services/ELASTICSEARCH/configuration
編輯elasticsearch-config.xml,發(fā)現(xiàn)其中的discovery.zen.ping.unicast.hosts屬性的值是空的。
我們在安裝的時候是填了這個參數(shù)的,將這個參數(shù)的值給補(bǔ)上。
<name>discovery.zen.ping.unicast.hosts</name>
<value>master</value>
cd
/var/lib/ambari-server/resources/stacks/HDP/3.0/services/ELASTICSEARCH/package/scripts
編輯params.py,發(fā)現(xiàn)其中有兩處hostname=config[‘hostname’]的寫法。
將兩處都修改為:
hostname = config['configurations']['elasticsearch-config']['discovery.zen.ping.unicast.hosts']?
清除所有elasticsearch slave節(jié)點的ambari-agent緩存。
server節(jié)點重啟ambari-server restart
slave節(jié)點重啟ambari-agent restart
重啟elasticsearch服務(wù),發(fā)現(xiàn)服務(wù)可以啟動了。
5.8 master和slave啟動后又停止
查看日志會發(fā)現(xiàn)提示這兩個錯誤。
錯誤提示:
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
解決辦法:
每個進(jìn)程最大同時打開文件數(shù)太小,可通過下面2個命令查看當(dāng)前數(shù)量
ulimit -Hn
ulimit -Sn
修改/etc/security/limits.conf文件,增加配置(所有master和slave節(jié)點)。
錯誤提示:
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解決辦法:
修改/etc/sysctl.conf文件,增加配置(所有master和slave節(jié)點)。
vm.max_map_count=262144
然后執(zhí)行命令sysctl -p生效
sysctl -p
5.9?parent directory /opt/elasticsearch/master/config doesnot exist
這個錯誤在另外兩個slave節(jié)點上出現(xiàn)的。
解決辦法很簡單,直接創(chuàng)建一個空的目錄就可以。文章來源:http://www.zghlxwxcb.cn/news/detail-739433.html
mkdir -p /opt/elasticsearch/master/config文章來源地址http://www.zghlxwxcb.cn/news/detail-739433.html
到了這里,關(guān)于初學(xué)者部署Ambari及通過Ambari安裝hadoop相關(guān)組件的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!