docker-9:使用ambari-2.7.3部署大數據集群—兩節點demo

2020-12-16 千裡已醉

目錄:

(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

相關焦點

  • 雲計算核心技術Docker教程:Docker Swarm 使用
    需要把以下這行複製出來,在增加工作節點時會用到:docker swarm join --token SWMTKN-1-4oogo9qziq768dma0uh3j0z0m5twlm10iynvz7ixza96k6jh9p-ajkb6w7qd06y1e33yrgko64sk 192.168.99.107:2377
  • 如何部署一個Kubernetes集群
    在發布早期Kubernetes的部署主要依賴於社區維護的各種腳本,但這其中會涉及二進位編譯、配置文件以及kube-apiserver授權配置文件等諸多運維工作。目前各大雲服務廠商常用的Kubernetes部署方式是使用SaltStack、Ansible等運維工具自動化地執行這些繁瑣的步驟,但即使這樣,這個部署的過程對於初學者來說依然是非常繁瑣的。
  • 高可用 kubernetes 集群部署實踐
    正是這樣的原因,促進了一大批出色的 k8s 集群部署方案的誕生,他們的特點如下表所示。上述方案中,RKE 在易用性和靈活性上佔有優勢。本文接下來將介紹如何通過 RKE 部署一套高可用 k8s 集群,文中使用的 RKE 版本為v0.2.2。
  • Hadoop集群部署之大數據平臺管理套件CDH和CM安裝教程
    #Hadoop作為開源的大數據平臺,已經成為大數據平臺的事實標註。提供一個可伸縮,穩定的,綜合的企業級大數據管理平臺,具有成功的部署案例,能夠簡單部署,管理和監控Hadoop大數據平臺,提供HDFS,YARN,MapReduce,HBase,Hive等組件,可滿足大數據的存儲和數據分析、數據倉庫、數據挖掘的需要。注意:CDH有免費社區版,CM5.X也有免費社區版。CM6.X為收費版本。CM也可以使用ambari替代。
  • 《蹲坑學K8S》之23-1:安裝部署Istio
    Istio安裝方式:(1)使用 Istioctl 安裝(2)使用 Helm 自定義安裝(3)安裝獨立 Operator [實驗](4)多集群安裝使用Istioctl(1)安裝前,需部署好CoreDNS。(2)安裝前,需要在kube-apiserver添加MutatingAdmissionWebhook,ValidatingAdmissionWebhook的參數,並重啟kube-apiserver是參數生效。
  • docker下高並發和高可用之docker swarm使用
    至少2臺Linux的主機,這裡選擇CentOS72.Xshell工具在Windows作業系統下通過VMware Workstation創建兩臺CentOS的虛擬機虛擬機啟動後,通過xShell分別連接上兩臺虛擬機分別為兩臺虛擬機安裝docker
  • Docker 入門教程
    它能讓你將運行環境和配置放在代碼匯總然後部署, 同一個Docker的配置可以在不同的環境環境中使用, 這樣就降低了硬體要求和應用環境之間耦合度.2.代碼流水線管理代碼從開發者的機器到最終在生產環境上的部署, 需要經過很多的中堅環境.
  • Apache Ambari 2.2.1 版本發布
    Ambari 2.2.1 發布了,該版本添加了如下的特性: The ability to set
  • 高手指路:Linux運維工程師的大數據安全修煉手冊
    初級和中級篇詳見《從苦逼到牛逼,詳解Linux運維工程師的打怪升級之路》,今天給大家介紹大數據安全的正式面目。一、大數據基本組件二、Hadoop安全背景共享集群按照業務或應用的規則劃分資源隊列,並分配給特定用戶HDFS上存放各種數據,包括公共的、機密的安全認證:確保某個用戶是自己聲稱的那個用戶
  • Swarm容器編排1:Swarm基礎介紹及Demo演示
    實驗證明生產環境可用開箱即用,用戶不需要專門修改Docker的鏡像和配置就可以直接大規模部署易於搭建和使用活躍的社區Swarm1.12版本開始,Swarm v2版本內嵌到了Docker engine中。Swarm API與Docker API兼容。Swarm v1中,為了多個Swarm主節點的實現,選主機制使用的是主庫,需要使用發現服務(例如Etcd,Consul或ZooKeeper)。
  • 服務治理 Istio 初探,概述,部署
    1、Service Mesh(服務網格)2、Isito 概述,架構與組件,部署2.1、lsito概述Isito是Service Mesh的產品化落地,是目前最受歡迎的服務網格,功能豐富、成熟度高。Linkerd是世界上第一個服務網格類的產品。
  • 在區塊鏈分布式存儲中、如何部署filecoin多節點集群礦池
    從概率上來看,集群爆塊的概率比單體的要大,共同承擔收益,增加爆塊概率,  但是單體礦機很有可能一年都爆不了一個塊。  2)集群化礦池擁有更穩定的電力、存儲、網絡資源,對Filecoin生態更有利。  3)對於專業的礦工而言,集群化礦池更能最大化投資收益比。  4)休閒礦工可以通過共享資源,獲得持續穩定的收益。  5)集群化礦池大大降低個人加入Filecoin的門檻,利於網絡的發展。
  • 30分鐘帶你了解Web工程師必知的Docker知識
    memory -- 這個子系統設定 cgroup 中任務使用的內存限制,並自動生成由那些任務使用的內存資源報告。net_cls -- 這個子系統使用等級識別符(classid)標記網絡數據包,可允許 Linux 流量控制程序(tc)識別從具體 cgroup 中生成的數據包。
  • 推薦給IT新手的11個Docker免費上手項目
    3. drone地址: http s:// github.com/drone/dronestar: 21.3kfork: 2.1k使用該工具可以方便的通過界面管理 docker 不用再記那些命令。安裝命令:
  • 【GITC】搜狐雲臺陳偉:基於docker的自動化運維管理架構與實踐
    規模小無需自動化,而規模大後再自動化又容易引起問題。  6. 十分依賴經驗豐富的運維人員  ● Docker的優勢和問題  陳偉總結docker的優勢有:  1. Docker的先進理念:「build、ship、run」。把應用的構建、分發、運行的流程標準化、規範化。  2.
  • Apache DolphinScheduler 1.3.2 發布,性能提升 2~3 倍
    引言大數據任務調度作為大數據建設中的核心基礎設施,在經過社區用戶們長期的使用中
  • 教你一次性成功安裝K8S集群(基於一主兩從模式)
    1.查看伺服器作業系統版本cat /etc/redhat-release 安裝Docker和K8S集群的伺服器作業系統版本需要在CentOS 7以上。2.查看伺服器的主機名hostname 注意:集群中伺服器的主機名不能是localhost。
  • 不止於1000節點:浪潮雲海完成全球最大規模單一集群雲數智融合實踐
    1000節點大規模實踐相比500節點,在控制節點不變的情況下,集群規模擴大了一倍,存儲擴大3倍達到240節點,計算節點增加1.8倍達到720節點,安裝部署擴容裝配全生命周期時間不變。 場景更全。1000節點大規模從OpenStack測試升級為雲數智全棧融合測試,並在雲平臺軟環境部署交付效率上也有優異表現。
  • 華為雲智能數據湖FusionInsight 成功助力10000+大數據集群滾動升級
    近日,華為流程IT的大數據集群(大數據集群是對大數據從數據獲取、數據存儲和數據分析的集群)使用華為雲EI智能數據湖FusionInsight升級管理可視化服務工具,成功處理了升級過程中每天10萬+任務要求業務不中斷、大版本滾動升級、意外場景、開源版本等問題。
  • 雲計算核心技術Docker教程:Docker容器使用
    例如我們要查看 docker stats 指令的具體使用方法:命令如下:$ docker stats --help如果我們本地沒有 ubuntu 鏡像,我們可以使用 docker pull 命令來載入 ubuntu 鏡像: