成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Ironfan在大數據集群部署、配置管理中的應用

云計算
在Serengeti中,有二個最重要最關鍵的功能:一是虛擬機管理,即在vCenter中為一個Hadoop集群創建和管理所需要的虛擬機;另一個是集群軟件安裝配置管理,即在已安裝好操作系統的虛擬機上安裝Hadoop相關組件(包括Zookeeper,Hadoop,Hive,Pig等),更新配置文件(例如Namenode/Jobtracker/Zookeeper結點的IP等信息),然后啟動Hadoop服務。

Ironfan介紹

在Serengeti中,有二個最重要最關鍵的功能:一是虛擬機管理,即在vCenter中為一個Hadoop集群創建和管理所需要的虛擬機;另一個是集群軟件安裝配置管理,即在已安裝好操作系統的虛擬機上安裝Hadoop相關組件(包括Zookeeper,Hadoop,Hive,Pig等),更新配置文件(例如Namenode/Jobtracker/Zookeeper結點的IP等信息),然后啟動Hadoop服務。Ironfan就是在Serengeti中負責集群軟件安裝配置管理的組件。

Ironfan是基于Chef技術開發的集群軟件部署配置管理工具。Chef是一個類似于Puppet和CFEngine的開源的系統配置管理工具,它定義了一套簡單易用的DSL(Domain Specific language)語言用于在一臺已安裝好基本操作系統的機器上安裝配置任意軟件和配置系統本身。Ironfan基于Chef的框架和API提供了簡單易用的自動化部署和管理集群的命令行工具。Ironfan支持部署Zookeeper,Hadoop和HBase集群,也可以編寫新的cookbook以部署任意其他非Hadoop集群。

Ironfan最初由美國一家Big Data初創公司Infochimps使用Ruby語言開發,并在github.com上以Apache Licensev2開源。最開始Ironfan只支持在Amazon EC2的Ubuntu虛擬機上部署Hadoop集群。VMwareProject Serengeti團隊選擇了基于Ironfan來開發Big Data集群工具,并實現了一系列重大改進,讓Ironfan可以在VMware vCenter中的CentOS 5.x虛擬機上創建部署Hadoop集群。ProjectSerengeti改進后的Ironfan同樣以Apache License v2在github.com上開源,供用戶免費下載和修改。

Ironfan架構

下圖描繪了Ironfan的架構。Ironfan主要包括Cluster OrchestrationEngine,VM Provision Engine,SoftwareProvision Engine和用于存儲數據的Chef Server 和Package Server。

·ClusterOrchestration Engine:Ironfan的總控制器,負責加載解析集群定義文件,創建虛擬機,在ChefServer中保存集群的配置信息,并調用Chef REST API為各個虛擬機創建對應的ChefNode和Chef Client, 并設定各個虛擬機的ChefRole。

·VMProvision Engine:創建cluster中的所有虛擬機,并等待虛擬機得到IP。VM Provision Engine提供了接口以支持在各種虛擬機云環境中創建虛擬機,目前實現了Amazon EC2和VMware vCenter的支持。在Serengeti中,所有虛擬機由Ironfan的調用者在VMware vCenter中創建,并將IP保存在cluster spec文件中,傳遞給Ironfan的VM Provision Engine。

·SoftwareProvision Engine: 使用虛擬機中預先創建好的缺省用戶名和密碼,SSH遠程登錄到所有虛擬機中同時啟動chef-client來安裝軟件。chef-client是Chef框架中的代理程序,負責在其運行的結點上執行預先由Chef Role指定的安裝配置腳本。chef-client也會將執行進度數據保存在Chef Server中。

·ChefServer:用于存儲Chef Nodes,Chef Clients, Chef Roles, Chef Cookbooks, 提供Chef RESTAPI, 是Chef框架的重要組成部件。

·PackageServer:用于存儲所需的Hadoop和其他Hadoop所依賴的安裝包。

Ironfan對外提供了Knife CLI命令行接口,其調用者(即SerengetiWeb Service 組件)創建單獨進程調用Knife CLI,通過進程退出狀態值判斷成功或者失敗。具體的集群結點數據和執行進度信息由調用者隨時從ChefServer獲取。

 

IronfanKnife CLI

每一個SerengetiCLI cluster命令都對應一個IronfanKnife CLI命令,包括create (創建集群)、list(查看集群)、config(配置集群)、stop(停止集群)、start(啟動集群)、delete(刪除集群)。

clustercreate => knife cluster create -f/opt/serengeti/logs/task///.json--yes --bootstrap

clusterlist => knife cluster show -f/opt/serengeti/logs/task///.json--yes

clusterconfig => knife cluster bootstrap -f/opt/serengeti/logs/task///.json--yes

clusterstop => knife cluster stop -f/opt/serengeti/logs/task///.json--yes

clusterstart => knife cluster start -f/opt/serengeti/logs/task///.json–yes --bootstrap

clusterdelete => knife cluster kill -f/opt/serengeti/logs/task///.json--yes

其中參數/opt/serengeti/logs/task///.json是Serengeti Web Service傳遞給Ironfan的cluster spec文件,這是一個JSON格式的文件,包含了集群的結點分組、結點個數、結點軟件定義描述、集群的配置、PackageServer和所有虛擬機的名稱和IP等信息。Ironfan會分析cluster spec文件,生成Ironfan所需要的cluster定義文件并保存在/opt/serengeti/tmp/.ironfan-clusters/.rb。

Ironfancluster定義文件 (DSL, roles)

 

接下來,我們看看Ironfan是如何定義集群的。下圖是一個名為demo的cluster的定義文件demo.rb,它是一個Ruby文件,用Ironfan所定義的DSL語言描述集群的組成結構,定義了3個虛擬機組。其中每一個facet定義了一個虛擬機組,包含若干個安裝同樣軟件的虛擬機。每個分組中結點個數由instance指定,虛擬機上要安裝的軟件由role指定。這個role就是Chef中所定義的role。

 

Chef Roles和 Cookbooks

在Serengeti中所有Chef Role文件存放于/opt/serengeti/cookbooks/roles/*.rb,所有

Chef Cookbook 文件存放于/opt/serengeti/cookbooks/cookbooks/

以hadoop_namenode role為例,/opt/serengeti/cookbooks/roles/hadoop_namenode.rb 內容如下:

name 'hadoop_namenode'

description 'runs a namenode infully-distributed mode. There should be exactly one of these per cluster.'

run_list %w[

role[hadoop] # 一個role可以包含引用另一個role

hadoop_cluster::namenode # hadoop_cluster 是一個cookbook, namenode是此cookbook中的一個recipe

]

如果開發者需要修改調試 role和cookbook,可在修改role和cookbook 文件后,運行以下命令上傳role和cookbook:

knife role from file/opt/serengeti/cookbooks/roles/.rb –V

knifecookbook upload -V

Cluster Service Discovery

在集群部署過程之中,有些組件的安裝和服務的啟動順序是有先后依賴的,比如Datanode服務需要在Namenode服務啟動之后再啟動,Tasktracker服務需要在Jobtracker服務啟動之后再啟動,并且這些服務通常不在同一個虛擬機上。因此Ironfan在部署過程中需要控制不同結點上服務的安裝和啟動順序,讓有依賴關系的結點同步。Ironfan是使用一個名為cluster_service_discovery的cookbook實現相關結點之間同步。

cluster_service_discoverycookbook定義了provide_service,provider_fqdn,provider_fqdn_for_role,all_providers_for_service等等方法,用于實現結點同步。我們以datanode服務需要等待namenode服務啟動為例講解如何實現同步:

·在namenoderecipe中,啟動namenode服務之后,調用provide_service(node[:hadoop][:namenode_service_name]),向Chef Server把此結點注冊為namenode 服務的提供者;

·在datanoderecipe中,啟動datanode服務之前,調用provider_fqdn(node[:hadoop][:namenode_service_name])向Chef Server查詢namenode服務提供者的FQDN(或IP); provider_fqdn方法會每隔5秒種向Chef Server查詢一次,直到查詢到結果,或者30分鐘后超時報錯。

其他相關結點的同步也與此機制相似,例如Zookeeper結點之間的相互等待,HBase結點等待Zookeeper結點,具體方法調用可查看cluster_service_discovery,zookeeper,hadoop, 和hbase cookbook的源代碼。

關于vSphere Big Data Extensions:

VMware vSphere Big Data Extensions(簡稱BDE)基于vSphere平臺支持大數據和Apache Hadoop作業。BDE以開源Serengeti項目為基礎,為企業級用戶提供一系列整合的管理工具,通過在vSphere上虛擬化Apache Hadoop,幫助用戶在基礎設施上實現靈活、彈性、安全和快捷的大數據部署、運行和管理工作。了解更多關于VMware vSphere Big Data Extensions的信息,請參見http://www.vmware.com/hadoop。

 

作者介紹

[[91629]]

胡輝 (Jesse Hu)

VMware高級開發工程師

擔任VMware大數據產品vSphere BDE和Serengeti開源項目的技術帶頭人之一,是Serengeti開源項目最早期的開發者,并實現了第一個原型系統,是Serengeti集群軟件安裝配置管理模塊Ironfan的設計者。在加入VMware之前,曾就職于Yahoo,IBM,Oracle等多家IT企業,對開源社區,云計算, Mobile, SNS, Web 2.0, Ruby都有了解和研究。

原文鏈接:http://vbigdata.blog.51cto.com/7526470/1338356

責任編輯:王程程 來源: 51CTO博客vBigData
相關推薦

2013-11-19 10:42:45

大數據Chef

2019-02-20 17:49:32

大數據應急管理數據分析

2017-01-11 16:57:51

大數據大數據集群監控

2020-11-17 14:50:34

大數據

2022-04-07 12:02:22

區塊鏈大數據數據中心

2022-07-07 10:43:58

安全配置管理SCM

2023-05-30 07:50:56

項目管理權限

2017-04-28 11:45:16

大數據Kafka大數據應用

2023-03-10 07:30:24

2018-10-24 14:36:59

2019-01-16 15:14:14

大數據無錫廣電智慧無錫

2021-12-02 15:17:42

大數據銀行應用

2024-07-08 09:11:53

MongoDBAI大數據

2017-04-12 09:49:54

大數據應用預測性維修

2009-03-03 17:17:52

環境配置軟件開發

2019-02-28 22:21:49

大數據醫療業安全

2021-11-10 19:11:18

大數據大數據應用;農村發展

2018-01-02 12:20:23

農業大數據農產品

2020-12-25 13:51:49

大數據醫療大數據

2022-09-09 10:00:13

KubernetesConfigMap
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 黄色av网站在线观看 | 精品在线一区二区 | 国产精品久久久久久一级毛片 | 日韩成人在线观看 | 美女国内精品自产拍在线播放 | 日韩国产中文字幕 | 久久se精品一区精品二区 | 91成人小视频 | 欧美精品综合 | 精品一区二区三区中文字幕 | 国产精品久久 | 色伊人久久 | 国产精品免费一区二区三区四区 | 亚洲视频欧美视频 | 一区二区国产精品 | 国产成人精品久久二区二区91 | 日本精品在线观看 | 免费视频久久 | 国产一区不卡 | 精品一区二区电影 | 国产精品免费一区二区三区四区 | 国产精品一区二区三区四区 | 国产一区二区三区免费 | 影音av | 日皮视频免费 | 一级一级一级毛片 | 九九热国产视频 | 久久99精品久久久久蜜桃tv | 国产精品久久久久久久久图文区 | 二区中文 | www.日韩高清 | a在线观看 | 久久免费视频1 | 国产免费观看一区 | 超碰免费观看 | 国产人成精品一区二区三 | 国产精品免费一区二区三区 | 亚洲在线 | 欧美成年黄网站色视频 | 欧美精品一区久久 | 中文字幕1区2区3区 亚洲国产成人精品女人久久久 |