目錄:
(1).docker部署ambari
(2).配置SSH免密登陸
(3).配置ambari基礎repo
(4).輔助repo配置
(5).創建集群
(6).資源耗費
附錄1.ambari相關的yum repo
附錄2.參考文章
(1).docker部署ambari
git clone https://github.com/hepyu/docker-ambari-2.7.git
(我fork自:git clone https://github.com/cuongvomanh/docker-ambari-2.7.git,做了一點更改,也做個人備案)
cd docker-ambari-2.7
下載鏡像用的yum源文件:
cd ambari-base-local
wget -O local.repo http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.7.3.0/ambari.repo
cd ambari-server-local
wget -O local.repo http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.7.3.0/ambari.repo
製作鏡像:時間有點長,稍等。
./scripts/build-image.sh
git工程下有一個文件nohup-image.out是筆者一次的image-build記錄。
本地啟動:
./scripts/create-local.sh
docker ps查看容器:
獲得web ip:
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' amb-server
瀏覽器訪問:你需要配置ecs的安全組開發8088埠
http://ecs-ip:8088/
通過下述命令獲取3個節點的ip進行集群部署:
docker inspect 容器id | grep -i ip
三個節點IP是:
172.17.0.4--容器id(7153911bede2)--ambari-base-local
172.17.0.3--器id(673bdc7ecffb)--ambari-base-local
172.17.0.2--器id(7e8902bae9a2)--ambari-server-local
(2).配置SSH免密登陸
對這3臺機器進行免密設置:172.17.0.7,172.17.0.6,172.17.0.2
1.首先root權限下分別對3臺虛擬機進行修改
修改的命令如下:
sudo hostnamectl set-hostname node1
我這裡是把3臺主機名分別修改為node1、node,實際部署時只會全部部署到一個docker(節約資源)。
172.17.0.4--容器id(7153911bede2)--ambari-base-local::node1
172.17.0.3--器id(673bdc7ecffb)--ambari-base-local::node2
172.17.0.2--器id(7e8902bae9a2)--ambari-server-local::node3
修改完成後可以用指令 hostname 查詢當前主機名確認修改成功。
2.分別在3臺虛擬機上編輯 /etc/hosts 文件,添加IP和主機名
(每一臺都要加這三行,別忘了加自己)
172.17.0.4 node1
172.17.0.3 node2
172.17.0.2 node3
這裡的目的是實現3臺虛擬機之間的互聯,並且縮短了它們在連接時解析主機名的時間。
同時要注釋掉:
#172.17.0.3 amb1.service.consul amb1
#172.17.0.4 amb2.service.consul amb2
3.生成密鑰
首先分別在這3個節點執行指令:ssh-keygen ,然後一直按回車鍵直到結束。此時你可以發現在 /root/.ssh/ 文件夾下生成了id_rsa(私鑰) 、 id_rsa.pub (公鑰),這是生成的秘鑰對。
4.公鑰分享
同步公鑰到所有節點需要輸入root的密碼,3個節點都設置root密碼為123456
sudo passwd
把自己的公鑰發送給其它節點,包括自己。指令如下:
ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3
(3).配置ambari基礎repo
從如下地址找到hdp3.1.4的yum repo地址
http://public-repo-1.hortonworks.com/HDP/hdp_urlinfo.json
hdp-3.1.4的yum repo地址:
http://public-repo-1.hortonworks.com/HDP/centos7/3.x/updates/3.1.4.0/HDP-3.1.4.0-315.xml
打開可以看到hdp, hdp-gpl, hdp-utils的repo:
(4).輔助repo配置
1.Timeline Service V1.5需要配置repo
否則報錯:
Error: Package: hadoop_3_1_4_0_315-3.1.1.3.1.4.0-315.x86_64 (HDP-3.1-repo-1)
Requires:psmisc
Error: Package: hadoop_3_1_4_0_315-hdfs-3.1.1.3.1.4.0-315.x86_64 (HDP-3.1-repo-1)
Requires:libtirpc-devel
Error: Package: hadoop_3_1_4_0_315-3.1.1.3.1.4.0-315.x86_64 (HDP-3.1-repo-1)
Requires:nc
Error: Package: hadoop_3_1_4_0_315-3.1.1.3.1.4.0-315.x86_64 (HDP-3.1-repo-1)
Requires:redhat-lsb
配置repo:
進入ambari的docker容器節點,
cd /etc/yum.repos.d/
cp backup_repo/CentOS-Base.repo .
(5).創建集群
開始創建集群,點擊:LAUNCH INSTALL WIZARD
下一步需要輸入ambari-server所在機器的私鑰,這樣ambari-server才能把組件部署到其他節點:
只能添加node1, node2
因為node3是ambari-server節點,如果添加會報錯:
Ambari agent machine hostname (amb-server.service.consul) does not match expected ambari server hostname (node3). Aborting registration. Please check hostname, hostname -f and /etc/hosts file to confirm your hostname is setup correctly
進入組件選擇頁面,我按需選擇如下組件:
HDFS:3.1.1
YARN + MapReduce2:3.1.1
Tez:0.9.1,Tez管理所有的離線jar包
Hive:3.1.0
HBase:2.0.2
ZooKeeper:3.4.6
Kafka:2.0.0
SmartSense:1.5.1.2.7.3.0-139
Ambari Metrics:0.1.0
密碼都是:La123456
(6).耗費資源
我個人有一臺8核32G的阿里雲ECS,部署完本文的2節點集群後的資源情況:
雖然我還裝了k8s和istio,但是大數據必然是佔大頭:
附錄1.ambari相關的yum repo
hdp不同版本的yum倉庫的url地址:
http://public-repo-1.hortonworks.com/HDP/hdp_urlinfo.json
hdp3.1.4的yum倉庫的url地址:
http://public-repo-1.hortonworks.com/HDP/centos7/3.x/updates/3.1.4.0/HDP-3.1.4.0-315.xml
附錄2.參考文章
1.製作Ambari本地yum源
https://www.jianshu.com/p/3597bf155e99
2.Ambari搭建Hadoop集群之配置SSH免密登錄
https://blog.csdn.net/qq_28757391/article/details/82724919
3.Apache Ambari Installation
https://docs.cloudera.com/HDPDocuments/Ambari-2.7.4.0/bk_ambari-installation/content/hdp_314_repositories.html