大數(shù)據(jù)道場(HDP SandBox) 初探
這里的大數(shù)據(jù)道場是以HDP sandbox 為基礎(chǔ)的,安裝好了virtual box,導入了sandbox鏡像之后,啟動虛擬機,來看看我們的大數(shù)據(jù)道場吧。
訪問方式
通過SSH的終端訪問是不二之選
- ssh root@127.0.0.1 -p 2222
輸入用戶名/密碼后就可以進入我們的道場主機了,命令交互與在一臺ubantu Linux 主機上沒什么不同。
如果不喜歡ssh,或者是windows的用戶,也可以使用WEB Shell。 在瀏覽器中輸入:
- http://127.0.0.1:4200
如下圖所示,與SSH 沒有什么大的區(qū)別。
當然了,還可以從VM 的終端登錄,按fn + alt +f5進入即可。
文件傳輸
在本機和sandbox 之間主要是通過SCP進行的。
本地文件復制到sandbox 中:
- scp -P 2222 ~/Downloads/x.y.z root@127.0.0.1:/root
andbox 文件復制到本地:
- scp -P 2222 root@127.0.0.1:/sandbox-dir-path/xyz /localpath
還可以通過虛擬機的共享目錄實現(xiàn),甚至在sandbox 上搭一個ftp server。
道場中的基礎(chǔ)設(shè)施
Hadoop 發(fā)布版中比較有名的是CDH和HDP,兩者的主要區(qū)別是CDH 通過Cloudera和hue 來管理集群及節(jié)點中的組件,而HDP是通過Ambri 完成的。
一般的,通過訪問 http://127.0.0.1:8080 就可以通過Ambri 來瀏覽和管理。但是為了管理服務(wù),需要以管理員的身份登錄ambri。Sandbox 2.4 中需要通過執(zhí)行腳本來重置ambri的管理員密碼。
- Abel-Mac-Pro:~ abel$ ssh root@127.0.0.1 -p 2222
- 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帳號登錄,看看道場中的基礎(chǔ)設(shè)施了。
HDFS
HDFS 是Hadoop集群中數(shù)據(jù)存儲的頭等公民。數(shù)據(jù)在集群數(shù)據(jù)節(jié)點中自動復制。
MapReduce2
眾所周知,mapreduce分為兩個階段,Map階段:首先將輸入數(shù)據(jù)進行分片,然后對每一片數(shù)據(jù)執(zhí)行Mapper程序,計算出每個詞的個數(shù),之后對計算結(jié)果進行分組,每一組由一個Reducer程序進行處理,到此Map階段完成。
Reduce階段:每個Reduce程序從Map的結(jié)果中拉取自己要處理的分組(叫做Shuffling過程),進行匯總和排序(桶排序),對排序后的結(jié)果運行Reducer程序,***所有的Reducer結(jié)果進行規(guī)約寫入HDFS。
MapReduce2 是運行在YARN上的。
YARN
YARN (Yet Another Resource Negotiator,另一種資源協(xié)調(diào)者)是一種新的 Hadoop 資源管理器,它是一個通用資源管理系統(tǒng),可為上層應(yīng)用提供統(tǒng)一的資源管理和調(diào)度。YARN的基本思想是將JobTracker的兩個主要功能(資源管理和作業(yè)調(diào)度/監(jiān)控)分離,主要方法是創(chuàng)建一個全局的ResourceManager(RM)和若干個針對應(yīng)用程序的ApplicationMaster(AM)。
Tez
Tez是Apache***的支持DAG作業(yè)的開源計算框架,它可以將多個有依賴的作業(yè)轉(zhuǎn)換為一個作業(yè)從而大幅提升DAG作業(yè)的性能。Tez并不直接面向最終用戶——事實上它允許開發(fā)者為最終用戶構(gòu)建性能更快、擴展性更好的應(yīng)用程序。Tez產(chǎn)生的主要原因是繞開MapReduce所施加的限制。
Hive
Hive以類SQL方式簡單而又強大地從HDFS中查詢數(shù)據(jù). 在用Java寫了10行代碼的MapReduce地方,在Hive中, 只需要一條 SQL 查詢語句.
HBase
Hbase是一個分布式的、面向列的開源數(shù)據(jù)庫,該技術(shù)來源于 Fay Chang 所撰寫的Google論文“Bigtable:一個結(jié)構(gòu)化數(shù)據(jù)的分布式存儲系統(tǒng)”,是Google Bigtable的開源實現(xiàn),利用Hadoop HDFS作為其文件存儲系統(tǒng)。
Pig
Pig是一種數(shù)據(jù)流語言和運行環(huán)境,用于檢索非常大的數(shù)據(jù)集。為大型數(shù)據(jù)集的處理提供了一個更高層次的抽象。Pig包括兩部分:一是用于描述數(shù)據(jù)流的語言,稱為Pig Latin;二是用于運行Pig Latin程序的執(zhí)行環(huán)境。Pig 適合于使用 Hadoop 和 MapReduce 平臺來查詢大型半結(jié)構(gòu)化數(shù)據(jù)集。通過允許對分布式數(shù)據(jù)集進行類似 SQL 的查詢,Pig 可以簡化 Hadoop 的使用。
Sqoop
Sqoop是一個從結(jié)構(gòu)化數(shù)據(jù)庫傳說大量數(shù)據(jù)到HDFS. 使用它,既可以從一個外部的關(guān)系型數(shù)據(jù)庫將數(shù)據(jù)導入到HDFS, Hive, 或者 HBase, 也可以Hadoop 集群導出到一個關(guān)系型數(shù)據(jù)庫或者數(shù)據(jù)倉庫.
Oozie
Oozie是一種Java Web應(yīng)用程序,它運行在Java servlet容器——即Tomcat——中,并使用數(shù)據(jù)庫來存儲工作流定義和當前運行的工作流實例,包括實例的狀態(tài)和變量。Oozie工作流是放置在控制依賴DAG(有向無環(huán)圖 Direct Acyclic Graph)中的一組動作(例如,Hadoop的Map/Reduce作業(yè)、Pig作業(yè)等),其中指定了動作執(zhí)行的順序。
Zookeeper
Zookeeper 分布式服務(wù)框架主要是用來解決分布式應(yīng)用中經(jīng)常遇到的一些數(shù)據(jù)管理問題,如:統(tǒng)一命名服務(wù)、狀態(tài)同步服務(wù)、集群管理、分布式應(yīng)用配置項的管理等。
Falcon
Falcon 是一個面向Hadoop的、新的數(shù)據(jù)處理和管理平臺,設(shè)計用于數(shù)據(jù)移動、數(shù)據(jù)管道協(xié)調(diào)、生命周期管理和數(shù)據(jù)發(fā)現(xiàn)。它使終端用戶可以快速地將他們的數(shù)據(jù)及其相關(guān)的處理和管理任務(wù)“上載(onboard)”到Hadoop集群,可以減少應(yīng)用程序開發(fā)和管理人員編寫和管理復雜數(shù)據(jù)管理和處理應(yīng)用程序的痛苦。
Storm
Storm是一個分布式高容錯的實時計算系統(tǒng)。Storm令持續(xù)不斷的流計算變得容易,彌補了Hadoop批處理所不能滿足的實時要求。Storm經(jīng)常用于在實時分析、在線機器學習、持續(xù)計算、分布式遠程調(diào)用和ETL等領(lǐng)域。
Flume
當查看生成的攝取日志的時候,可以使用Apache Flume; 它是穩(wěn)定且高可用的,提供了一個簡單,靈活和基于流數(shù)據(jù)的可感知編程模型?;旧希瑑H通過配置管理不需要寫一行代碼就可以陪著一個數(shù)據(jù)流水線。
Ambri Metrics
Ambari Metrics System 簡稱為 AMS,它主要為系統(tǒng)管理員提供了集群性能的監(jiān)察功能。Metrics 一般分為 Cluster、Host 以及 Service 三個層級。Cluster 和 Host 級主要負責監(jiān)察集群機器相關(guān)的性能,而 Service 級別則負責 Host Component 的性能。
Atlas
Atlas 是一個可伸縮和可擴展的核心功能治理服務(wù)。企業(yè)可以利用它高效的管理 Hadoop 以及整個企業(yè)數(shù)據(jù)生態(tài)的集成。核心功能包括:數(shù)據(jù)分類、集中審計、搜索、安全和策略引擎。
Kafka
Apache Kafka 是一個由Linkedin開發(fā)的訂閱-發(fā)布消息的分布式應(yīng)用。是一個持久化消息的高吞吐量系統(tǒng) , 支持隊列和話題語意, 使用 ZooKeeper形成集群節(jié)點。 詳情參見kafka.apache.org.
Knox
knox是一個訪問hadoop集群的restapi網(wǎng)關(guān),它為所有rest訪問提供了一個簡單的訪問接口點,能完成3A認證(Authentication,Authorization,Auditing)和SSO(單點登錄)等。
Ranger
Ranger是一個hadoop集群權(quán)限框架,提供操作、監(jiān)控、管理復雜的數(shù)據(jù)權(quán)限,它提供一個集中的管理機制,管理基于yarn的hadoop生態(tài)圈的所有數(shù)據(jù)權(quán)限。
Slider
Slider 是一個 Yarn 應(yīng)用,它可以用來在 Yarn 上部署并監(jiān)控分布式應(yīng)用。Slider 可以在應(yīng)用運行期隨意擴展或者收縮應(yīng)用。Slider工具是一個Java的命令行應(yīng)用,它會把信息持久化為JSON文檔并存儲到HDFS。當集群啟動后,我們可以使用命令擴展或者收縮集群。集群也可以被停止或者重啟。
Spark
Spark是一個圍繞速度、易用性和復雜分析構(gòu)建的大數(shù)據(jù)處理框架。Spark為我們提供了一個全面、統(tǒng)一的框架用于管理各種有著不同性質(zhì)(文本數(shù)據(jù)、圖表數(shù)據(jù)等)的數(shù)據(jù)集和數(shù)據(jù)源(批量數(shù)據(jù)或?qū)崟r的流數(shù)據(jù))的大數(shù)據(jù)處理的需求。Spark則允許程序開發(fā)者使用有向無環(huán)圖(DAG)開發(fā)復雜的多步數(shù)據(jù)管道。而且還支持跨有向無環(huán)圖的內(nèi)存數(shù)據(jù)共享,以便不同的作業(yè)可以共同處理同一個數(shù)據(jù)。
Spark運行在現(xiàn)有的Hadoop分布式文件系統(tǒng)基礎(chǔ)之上(HDFS)提供額外的增強功能。它支持將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集成提供了:
- 自動引入SparkContext 和 SQLContext
- 從本地文件系統(tǒng)或maven庫載入運行時依賴的jar包。更多關(guān)于依賴載入器
- 可取消job 和 展示job進度
HDP Sandbox 默認為我們提供了如此多的組件服務(wù),幾乎涵蓋了hadoop 生態(tài)系統(tǒng),完了么?沒有,還可以用管理員的身份來增加/啟動/關(guān)閉 服務(wù),例如Accumulo,Mahout,NiFi,Ranger KMS,SmartSense等,甚至可以自定義服務(wù)的。