這里的大數(shù)據(jù)道場(chǎng)是以HDP sandbox 為基礎(chǔ)的佳魔,安裝好了virtual box器予,導(dǎo)入了sandbox鏡像之后,啟動(dòng)虛擬機(jī)留晚,來(lái)看看我們的大數(shù)據(jù)道場(chǎng)吧印蔗。
訪問(wèn)方式
通過(guò)SSH的終端訪問(wèn)是不二之選
ssh root@127.0.0.1 -p 2222
輸入用戶名/密碼后就可以進(jìn)入我們的道場(chǎng)主機(jī)了扒最,命令交互與在一臺(tái)ubantu linux 主機(jī)上沒(méi)什么不同。
如果不喜歡ssh华嘹,或者是windows的用戶吧趣,也可以使用WEB Shell。 在瀏覽器中輸入:
http://127.0.0.1:4200
如下圖所示耙厚,與SSH 沒(méi)有什么大的區(qū)別强挫。
當(dāng)然了,還可以從VM 的終端登錄薛躬,按fn + alt +f5進(jìn)入即可纠拔。
文件傳輸
在本機(jī)和sandbox 之間主要是通過(guò)SCP進(jìn)行的。
本地文件復(fù)制到sandbox 中:
scp -P 2222 ~/Downloads/x.y.z root@127.0.0.1:/root
sandbox 文件復(fù)制到本地:
scp -P 2222 root@127.0.0.1:/sandbox-dir-path/xyz /localpath
還可以通過(guò)虛擬機(jī)的共享目錄實(shí)現(xiàn)泛豪,甚至在sandbox 上搭一個(gè)ftp server。
道場(chǎng)中的基礎(chǔ)設(shè)施
Hadoop 發(fā)布版中比較有名的是CDH和HDP侦鹏,兩者的主要區(qū)別是CDH 通過(guò)Cloudera和hue 來(lái)管理集群及節(jié)點(diǎn)中的組件诡曙,而HDP是通過(guò)Ambri 完成的。
一般的略水,通過(guò)訪問(wèn) http://127.0.0.1:8080 就可以通過(guò)Ambri 來(lái)瀏覽和管理价卤。但是為了管理服務(wù),需要以管理員的身份登錄ambri渊涝。
Sandbox 2.4 中需要通過(guò)執(zhí)行腳本來(lái)重置ambri的管理員密碼慎璧。
root@127.0.0.1's password:
Last login: Mon Sep 26 01:47:03 2016
[root@sandbox ~]# ambari-admin-password-reset
Please set the password for admin:
Please retype the password for admin:
The admin password has been set.
Restarting ambari-server to make the password change effective...
Using python /usr/bin/python2
Restarting ambari-server
Using python /usr/bin/python2
Stopping ambari-server
Ambari Server stopped
Using python /usr/bin/python2
Starting ambari-server
Ambari Server running with administrator privileges.
Organizing resource files at /var/lib/ambari-server/resources...
Server PID at: /var/run/ambari-server/ambari-server.pid
Server out at: /var/log/ambari-server/ambari-server.out
Server log at: /var/log/ambari-server/ambari-server.log
Waiting for server start.................... Ambari Server 'start' completed successfully.
[root@sandbox ~]# ```
現(xiàn)在,就可以用ambri的admin帳號(hào)登錄跨释,看看道場(chǎng)中的基礎(chǔ)設(shè)施了胸私。![ambri-admin](http://upload-images.jianshu.io/upload_images/73516-0e75f691aa8c28c3?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
### HDFS
HDFS 是Hadoop集群中數(shù)據(jù)存儲(chǔ)的頭等公民。數(shù)據(jù)在集群數(shù)據(jù)節(jié)點(diǎn)中自動(dòng)復(fù)制鳖谈。
### MapReduce2
眾所周知岁疼,mapreduce分為兩個(gè)階段,Map階段:首先將輸入數(shù)據(jù)進(jìn)行分片缆娃,然后對(duì)每一片數(shù)據(jù)執(zhí)行Mapper程序捷绒,計(jì)算出每個(gè)詞的個(gè)數(shù)瑰排,之后對(duì)計(jì)算結(jié)果進(jìn)行分組,每一組由一個(gè)Reducer程序進(jìn)行處理暖侨,到此Map階段完成椭住。 Reduce階段:每個(gè)Reduce程序從Map的結(jié)果中拉取自己要處理的分組(叫做Shuffling過(guò)程),進(jìn)行匯總和排序(桶排序)字逗,對(duì)排序后的結(jié)果運(yùn)行Reducer程序京郑,最后所有的Reducer結(jié)果進(jìn)行規(guī)約寫入HDFS。MapReduce2 是運(yùn)行在YARN上的扳肛。
### YARN
YARN (Yet Another Resource Negotiator傻挂,另一種資源協(xié)調(diào)者)是一種新的 Hadoop 資源管理器,它是一個(gè)通用資源管理系統(tǒng)挖息,可為上層應(yīng)用提供統(tǒng)一的資源管理和調(diào)度金拒。YARN的基本思想是將JobTracker的兩個(gè)主要功能(資源管理和作業(yè)調(diào)度/監(jiān)控)分離,主要方法是創(chuàng)建一個(gè)全局的ResourceManager(RM)和若干個(gè)針對(duì)應(yīng)用程序的ApplicationMaster(AM)套腹。
### Tez
Tez是Apache最新的支持DAG作業(yè)的開(kāi)源計(jì)算框架绪抛,它可以將多個(gè)有依賴的作業(yè)轉(zhuǎn)換為一個(gè)作業(yè)從而大幅提升DAG作業(yè)的性能。Tez并不直接面向最終用戶——事實(shí)上它允許開(kāi)發(fā)者為最終用戶構(gòu)建性能更快电禀、擴(kuò)展性更好的應(yīng)用程序幢码。Tez產(chǎn)生的主要原因是繞開(kāi)MapReduce所施加的限制。
### Hive
Hive以類SQL方式簡(jiǎn)單而又強(qiáng)大地從HDFS中查詢數(shù)據(jù). 在用Java寫了10行代碼的MapReduce地方,在Hive中, 只需要一條 SQL 查詢語(yǔ)句.
### HBase
HBase是一個(gè)分布式的尖飞、面向列的開(kāi)源數(shù)據(jù)庫(kù)症副,該技術(shù)來(lái)源于 Fay Chang 所撰寫的Google論文“Bigtable:一個(gè)結(jié)構(gòu)化數(shù)據(jù)的分布式存儲(chǔ)系統(tǒng)”,是Google Bigtable的開(kāi)源實(shí)現(xiàn)政基,利用Hadoop HDFS作為其文件存儲(chǔ)系統(tǒng)贞铣。
### Pig
Pig是一種數(shù)據(jù)流語(yǔ)言和運(yùn)行環(huán)境,用于檢索非常大的數(shù)據(jù)集沮明。為大型數(shù)據(jù)集的處理提供了一個(gè)更高層次的抽象辕坝。Pig包括兩部分:一是用于描述數(shù)據(jù)流的語(yǔ)言,稱為Pig Latin荐健;二是用于運(yùn)行Pig Latin程序的執(zhí)行環(huán)境酱畅。Pig 適合于使用 Hadoop 和 MapReduce 平臺(tái)來(lái)查詢大型半結(jié)構(gòu)化數(shù)據(jù)集。通過(guò)允許對(duì)分布式數(shù)據(jù)集進(jìn)行類似 SQL 的查詢江场,Pig 可以簡(jiǎn)化 Hadoop 的使用纺酸。
### Sqoop
Sqoop是一個(gè)從結(jié)構(gòu)化數(shù)據(jù)庫(kù)傳說(shuō)大量數(shù)據(jù)到HDFS. 使用它,既可以從一個(gè)外部的關(guān)系型數(shù)據(jù)庫(kù)將數(shù)據(jù)導(dǎo)入到HDFS, Hive, 或者 HBase, 也可以Hadoop 集群導(dǎo)出到一個(gè)關(guān)系型數(shù)據(jù)庫(kù)或者數(shù)據(jù)倉(cāng)庫(kù).
### Oozie
Oozie是一種Java Web應(yīng)用程序址否,它運(yùn)行在Java servlet容器——即Tomcat——中吁峻,并使用數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)工作流定義和當(dāng)前運(yùn)行的工作流實(shí)例,包括實(shí)例的狀態(tài)和變量。Oozie工作流是放置在控制依賴DAG(有向無(wú)環(huán)圖 Direct Acyclic Graph)中的一組動(dòng)作(例如用含,Hadoop的Map/Reduce作業(yè)矮慕、Pig作業(yè)等),其中指定了動(dòng)作執(zhí)行的順序啄骇。
### Zookeeper
Zookeeper 分布式服務(wù)框架主要是用來(lái)解決分布式應(yīng)用中經(jīng)常遇到的一些數(shù)據(jù)管理問(wèn)題痴鳄,如:統(tǒng)一命名服務(wù)、狀態(tài)同步服務(wù)缸夹、集群管理痪寻、分布式應(yīng)用配置項(xiàng)的管理等。
### Falcon
Falcon 是一個(gè)面向Hadoop的虽惭、新的數(shù)據(jù)處理和管理平臺(tái)橡类,設(shè)計(jì)用于數(shù)據(jù)移動(dòng)、數(shù)據(jù)管道協(xié)調(diào)芽唇、生命周期管理和數(shù)據(jù)發(fā)現(xiàn)顾画。它使終端用戶可以快速地將他們的數(shù)據(jù)及其相關(guān)的處理和管理任務(wù)“上載(onboard)”到Hadoop集群,可以減少應(yīng)用程序開(kāi)發(fā)和管理人員編寫和管理復(fù)雜數(shù)據(jù)管理和處理應(yīng)用程序的痛苦匆笤。
### Storm
Storm是一個(gè)分布式高容錯(cuò)的實(shí)時(shí)計(jì)算系統(tǒng)研侣。Storm令持續(xù)不斷的流計(jì)算變得容易,彌補(bǔ)了Hadoop批處理所不能滿足的實(shí)時(shí)要求炮捧。Storm經(jīng)常用于在實(shí)時(shí)分析庶诡、在線機(jī)器學(xué)習(xí)、持續(xù)計(jì)算咆课、分布式遠(yuǎn)程調(diào)用和ETL等領(lǐng)域末誓。
### Flume
當(dāng)查看生成的攝取日志的時(shí)候,可以使用Apache Flume; 它是穩(wěn)定且高可用的书蚪,提供了一個(gè)簡(jiǎn)單喇澡,靈活和基于流數(shù)據(jù)的可感知編程模型∩旗牛基本上,僅通過(guò)配置管理不需要寫一行代碼就可以陪著一個(gè)數(shù)據(jù)流水線库继。
### Ambri Metrics
Ambari Metrics System 簡(jiǎn)稱為 AMS箩艺,它主要為系統(tǒng)管理員提供了集群性能的監(jiān)察功能。Metrics 一般分為 Cluster宪萄、Host 以及 Service 三個(gè)層級(jí)艺谆。Cluster 和 Host 級(jí)主要負(fù)責(zé)監(jiān)察集群機(jī)器相關(guān)的性能,而 Service 級(jí)別則負(fù)責(zé) Host Component 的性能拜英。
### Atlas
Atlas 是一個(gè)可伸縮和可擴(kuò)展的核心功能治理服務(wù)静汤。企業(yè)可以利用它高效的管理 Hadoop 以及整個(gè)企業(yè)數(shù)據(jù)生態(tài)的集成。核心功能包括:數(shù)據(jù)分類、集中審計(jì)虫给、搜索藤抡、安全和策略引擎。
### Kafka
Apache Kafka 是一個(gè)由Linkedin開(kāi)發(fā)的訂閱-發(fā)布消息的分布式應(yīng)用抹估。是一個(gè)持久化消息的高吞吐量系統(tǒng) , 支持隊(duì)列和話題語(yǔ)意缠黍, 使用 ZooKeeper形成集群節(jié)點(diǎn)。 詳情參見(jiàn)kafka.apache.org.
### Knox
knox是一個(gè)訪問(wèn)hadoop集群的restapi網(wǎng)關(guān)药蜻,它為所有rest訪問(wèn)提供了一個(gè)簡(jiǎn)單的訪問(wèn)接口點(diǎn)瓷式,能完成3A認(rèn)證(Authentication,Authorization语泽,Auditing)和SSO(單點(diǎn)登錄)等贸典。
### Ranger
Ranger是一個(gè)hadoop集群權(quán)限框架,提供操作踱卵、監(jiān)控廊驼、管理復(fù)雜的數(shù)據(jù)權(quán)限,它提供一個(gè)集中的管理機(jī)制颊埃,管理基于yarn的hadoop生態(tài)圈的所有數(shù)據(jù)權(quán)限蔬充。
### Slider
Slider 是一個(gè) Yarn 應(yīng)用,它可以用來(lái)在 Yarn 上部署并監(jiān)控分布式應(yīng)用班利。Slider 可以在應(yīng)用運(yùn)行期隨意擴(kuò)展或者收縮應(yīng)用饥漫。Slider工具是一個(gè)Java的命令行應(yīng)用,它會(huì)把信息持久化為JSON文檔并存儲(chǔ)到HDFS罗标。當(dāng)集群?jiǎn)?dòng)后庸队,我們可以使用命令擴(kuò)展或者收縮集群。集群也可以被停止或者重啟闯割。
### Spark
Spark是一個(gè)圍繞速度彻消、易用性和復(fù)雜分析構(gòu)建的大數(shù)據(jù)處理框架。Spark為我們提供了一個(gè)全面宙拉、統(tǒng)一的框架用于管理各種有著不同性質(zhì)(文本數(shù)據(jù)宾尚、圖表數(shù)據(jù)等)的數(shù)據(jù)集和數(shù)據(jù)源(批量數(shù)據(jù)或?qū)崟r(shí)的流數(shù)據(jù))的大數(shù)據(jù)處理的需求。Spark則允許程序開(kāi)發(fā)者使用有向無(wú)環(huán)圖(DAG)開(kāi)發(fā)復(fù)雜的多步數(shù)據(jù)管道谢澈。而且還支持跨有向無(wú)環(huán)圖的內(nèi)存數(shù)據(jù)共享煌贴,以便不同的作業(yè)可以共同處理同一個(gè)數(shù)據(jù)。
Spark運(yùn)行在現(xiàn)有的Hadoop分布式文件系統(tǒng)基礎(chǔ)之上(HDFS)提供額外的增強(qiáng)功能锥忿。它支持將Spark應(yīng)用部署到現(xiàn)存的Hadoop v1集群(with SIMR – Spark-Inside-MapReduce)或Hadoop v2 YARN集群甚至是Apache Mesos之中牛郑。
### Zeppelin Notebook
Zeppelin提供了web版的類似ipython的notebook,用于做數(shù)據(jù)分析和可視化敬鬓。背后可以接入不同的數(shù)據(jù)處理引擎淹朋,包括spark, hive, tajo等笙各,原生支持scala, java, shell, markdown等。Zeppelin 提供了內(nèi)置的 Apache Spark 集成础芍。
Zeppelin的Spark集成提供了:
- 自動(dòng)引入SparkContext 和 SQLContext
- 從本地文件系統(tǒng)或maven庫(kù)載入運(yùn)行時(shí)依賴的jar包杈抢。更多關(guān)于依賴載入器
- 可取消job 和 展示job進(jìn)度
-----
HDP Sandbox 默認(rèn)為我們提供了如此多的組件服務(wù),幾乎涵蓋了hadoop 生態(tài)系統(tǒng)者甲,完了么春感?沒(méi)有,還可以用管理員的身份來(lái)增加/啟動(dòng)/關(guān)閉 服務(wù)虏缸,例如Accumulo,Mahout,NiFi,Ranger KMS,SmartSense等鲫懒,甚至可以自定義服務(wù)的。