您好,登錄后才能下訂單哦!
這篇文章主要講解了“基于Docker的大數(shù)據(jù)開發(fā)環(huán)境怎么實(shí)現(xiàn)”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“基于Docker的大數(shù)據(jù)開發(fā)環(huán)境怎么實(shí)現(xiàn)”吧!
大數(shù)據(jù)開發(fā)對運(yùn)行環(huán)境和數(shù)據(jù)的依賴比較重,比如開發(fā)Spark應(yīng)用,往往會依賴Hive,但本地開發(fā)環(huán)境是沒有Hive的,所以需要在本地和服務(wù)器之間拷貝代碼,效率不高,我認(rèn)為用Docker在本地搭建一套單機(jī)的大數(shù)據(jù)集群,然后將代碼拷貝到容器里進(jìn)行測試,可以改善這種情況。我自己對這個思路做過探索,這個鏡像安裝了Hadoop、Hive、Spark等組件,基本可以滿足需求,但是也有一些問題存在,比如有時需要對配置進(jìn)行調(diào)整來保持和生產(chǎn)環(huán)境的一致性,雖然可以做,但工作量也不少。
其實(shí),CDH和HDP都提供了類似的單機(jī)鏡像,其中HDP中組件的版本比較新,并且和公司的技術(shù)棧一致,因此來探索一下,如果體驗(yàn)更好的話,以后就用它來進(jìn)行相關(guān)的開發(fā)了。
安裝Docker 17.09 或更新的版本
對于Windows和Mac,Docker需要配置10G以上的內(nèi)存
可以在瀏覽器里訪問https://www.cloudera.com/downloads/hortonworks-sandbox/hdp.html點(diǎn)擊頁面下載,也可以直接在命令行用wget下載:
$ wget --no-check-certificate https://archive.cloudera.com/hwx-sandbox/hdp/hdp-3.0.1/HDP_3.0.1_docker-deploy-scripts_18120587fc7fb.zip
解壓并執(zhí)行腳本:
$ unzip HDP_3.0.1_docker-deploy-scripts_18120587fc7fb.zip Archive: HDP_3.0.1_docker-deploy-scripts_18120587fc7fb.zip creating: assets/ inflating: assets/generate-proxy-deploy-script.sh inflating: assets/nginx.conf inflating: docker-deploy-hdp30.sh $ sh docker-deploy-hdp30.sh
執(zhí)行后會開始拉取docker鏡像,需要下載幾十G的數(shù)據(jù),需要耐心等待。
腳本執(zhí)行完畢后,使用 docker ps
可以看到啟動了兩個容器:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES daf0f397ff6c hortonworks/sandbox-proxy:1.0 "nginx -g 'daemon of…" About an hour ago Up About an hour 0.0.0.0:1080->1080/tcp, ... b925f92f368d hortonworks/sandbox-hdp:3.0.1 "/usr/sbin/init" About an hour ago Up About an hour 22/tcp, 4200/tcp, 8080/tcp sandbox-hdp
其中 sandbox-proxy
這個容器先忽略,關(guān)注 sandbox-hdp
這個就可以,這時所有HDP的組件都已經(jīng)啟動了。
因?yàn)橐呀?jīng)做了端口映射,如果要訪問特定的UI,直接訪問localhost對應(yīng)的端口就可以,可以先訪問 localhost:1080
的Splash頁面:
這里提供了向?qū)?,點(diǎn)擊左邊的Launch Dashboard可以打開Ambari登陸頁面和HDP的Tutorial頁面,點(diǎn)擊右邊的Quick Links會打開下一級向?qū)В珹mbari、Zeppelin、Atlas、Ranger等組件的跳轉(zhuǎn)鏈接:
其中Ambari的登陸密碼可以參考https://www.cloudera.com/tutorials/learning-the-ropes-of-the-hdp-sandbox.html這個頁面獲取,根據(jù)不同用途可以選擇不同的用戶:
用戶 | 角色 | 密碼 |
---|---|---|
admin | Ambari Admin | 使用ambari-admin-password-reset 命令初始化獲得 |
maria_dev | Spark and SQL Developer | maria_dev |
raj_ops | Hadoop Warehouse Operator | raj_ops |
holger_gov | Data Steward | holger_gov |
amy_ds | Data Scientist | amy_ds |
Web UI的情況讀者可以自行一一驗(yàn)證,下面來驗(yàn)證一下底層的存儲和計算情況。
命令行進(jìn)入容器:
docker exec -it sandbox-hdp bash
簡單的ls一下:
[root@sandbox-hdp /]# hdfs dfs -ls /Found 13 items drwxrwxrwt - yarn hadoop 0 2018-11-29 17:56 /app-logs drwxr-xr-x - hdfs hdfs 0 2018-11-29 19:01 /apps drwxr-xr-x - yarn hadoop 0 2018-11-29 17:25 /ats drwxr-xr-x - hdfs hdfs 0 2018-11-29 17:26 /atsv2 drwxr-xr-x - hdfs hdfs 0 2018-11-29 17:26 /hdp drwx------ - livy hdfs 0 2018-11-29 17:55 /livy2-recovery drwxr-xr-x - mapred hdfs 0 2018-11-29 17:26 /mapred drwxrwxrwx - mapred hadoop 0 2018-11-29 17:26 /mr-history drwxr-xr-x - hdfs hdfs 0 2018-11-29 18:54 /ranger drwxrwxrwx - spark hadoop 0 2021-02-06 07:19 /spark2-history drwxrwxrwx - hdfs hdfs 0 2018-11-29 19:01 /tmp drwxr-xr-x - hdfs hdfs 0 2018-11-29 19:21 /user drwxr-xr-x - hdfs hdfs 0 2018-11-29 17:51 /warehouse
Sandbox里已經(jīng)內(nèi)置了一些測試數(shù)據(jù),select一下即可。
首先啟動hive命令行:
[root@sandbox-hdp /]# hive
查看有哪些數(shù)據(jù)庫:
0: jdbc:hive2://sandbox-hdp.hortonworks.com:2> show databases; +---------------------+ | database_name | +---------------------+ | default | | foodmart | | information_schema | | sys | +---------------------+
選擇foodmart,再查看有哪些表:
0: jdbc:hive2://sandbox-hdp.hortonworks.com:2> use foodmart; 0: jdbc:hive2://sandbox-hdp.hortonworks.com:2> show tables; +--------------------------------+ | tab_name | +--------------------------------+ | account | | ... | +--------------------------------+
可以看到有很多表,我們就選擇account這張表:
0: jdbc:hive2://sandbox-hdp.hortonworks.com:2> select * from account limit 1; +---------------------+-------------------------+------------------------------+-----------------------+-------------------------+-------------------------+ | account.account_id | account.account_parent | account.account_description | account.account_type | account.account_rollup | account.custom_members | +---------------------+-------------------------+------------------------------+-----------------------+-------------------------+-------------------------+ | 1000 | NULL | Assets | Asset | ~ | | +---------------------+-------------------------+------------------------------+-----------------------+-------------------------+-------------------------+
非常OK。
啟動spark-sql后查詢account表:
spark-sql> select * from foodmart.account limit 1; Error in query: Table or view not found: `foodmart`.`account`; line 1 pos 14;'GlobalLimit 1 +- 'LocalLimit 1 +- 'Project [*] +- 'UnresolvedRelation `foodmart`.`account`
奇怪
spark-sql> show databases; default
只有default庫。
做了一些搜索,發(fā)現(xiàn)貌似在HDP 3.0之后,Spark訪問Hive表發(fā)生了大的變化,Spark的驗(yàn)證還需要進(jìn)一步研究。
使用docker stop
命令即可:
docker stop sandbox-hdp docker stop sandbox-proxy
使用docker start
命令即可:
docker start sandbox-hdp docker start sandbox-proxy
先stop再remove:
docker stop sandbox-hdp docker stop sandbox-proxy docker rm sandbox-hdp docker rm sandbox-proxy
如果要刪除鏡像的話:
docker rmi hortonworks/sandbox-hdp:3.0.1
感謝各位的閱讀,以上就是“基于Docker的大數(shù)據(jù)開發(fā)環(huán)境怎么實(shí)現(xiàn)”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對基于Docker的大數(shù)據(jù)開發(fā)環(huán)境怎么實(shí)現(xiàn)這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。