本文主要讲解“如何实现基于Docker的大数据开发环境”。本文的解释简单明了,易学易懂。接下来,请跟随边肖的思路,一起学习学习《如何实现基于Docker的大数据开发环境》!
大数据开发严重依赖运行环境和数据。例如,在开发Spark应用程序时,它通常依赖于Hive,但是在本地开发环境中没有Hive,因此在本地和服务器之间复制代码效率不高。我认为使用Docker在本地构建单机大数据集群,然后将代码复制到容器中进行测试,可以改善这种情况。我自己也探索过这个想法。这个镜像安装了Hadoop、Hive、Spark等组件,基本可以满足需求。但是也存在一些问题,比如有时需要调整配置,以保持与生产环境的一致性。虽然可以做到,但是工作量还是挺大的。
事实上,CDH和HDP都提供了类似的独立映像,其中HDP的组件版本相对较新,与公司的技术栈保持一致,下面我们来探索一下。如果体验比较好的话,我们以后会用它进行相关的开发。
00-1010
Sandbox获取
安装Docker 17.09或更高版本。
对于Windows和Mac,Docker需要配置10G以上的内存。
00-1010可以访问https://www . cloud era.com/downloads/hortonworks-sandbox/HDP . html点击页面下载,或者直接用wget从命令行下载:
$ wget-no-check-certificate https://archive . cloudera.com/hwx-sandbox/HDP/HDP-3 . 0 . 1/HDP _ 3 . 0 . 1 _ Docker-deploy-scripts _ 18120587 fc7fb . zip解压缩并执行脚本:
$ unzipcdp _ 3 . 0 . 1 _ docker-deploy-scripts _ 18120587 fc 7 FB . zip
archive : HDp _ 3 . 0 . 1 _ docker-deploy-scripts _ 18120587 fc 7 FB . zip
创建:资产/
膨胀: assets/generate-proxy-deploy-script . sh
充气:assets/nginx.conf
充气:锁-展开-hdp30.sh
执行$shdocker-deploy-hdp30.sh后,会开始拉docker镜像,需要下载几十克的数据,需要耐心等待。
执行00-1010脚本后,您可以看到两个容器通过使用Dockers启动:
containeridimagecommandcreatedstatustors
nbsp; 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
这个容器先忽略,关注 sandbox-hdp
这个就可以,这时所有HDP的组件都已经启动了。
UI验证
因为已经做了端口映射,如果要访问特定的UI,直接访问localhost对应的端口就可以,可以先访问 localhost:1080
的Splash页面:
这里提供了向导,点击左边的Launch Dashboard可以打开Ambari登陆页面和HDP的Tutorial页面,点击右边的Quick Links会打开下一级向导,包含Ambari、Zeppelin、Atlas、Ranger等组件的跳转链接:
其中Ambari的登陆密码可以参考https://www.cloudera.com/tutorials/learning-the-ropes-of-the-hdp-sandbox.html这个页面获取,根据不同用途可以选择不同的用户:
用户 | 角色 | 密码 |
---|---|---|
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的情况读者可以自行一一验证,下面来验证一下底层的存储和计算情况。
功能验证
命令行进入容器:
docker exec -it sandbox-hdp bash
HDFS验证
简单的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
Hive验证
Sandbox里已经内置了一些测试数据,select一下即可。
首先启动hive命令行:
[root@sandbox-hdp /]# hive
查看有哪些数据库:
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验证
启动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库。
做了一些搜索,发现貌似在HDP 3.0之后,Spark访问Hive表发生了大的变化,Spark的验证还需要进一步研究。
Sandbox管理
停止Sandbox
使用docker stop
命令即可:
docker stop sandbox-hdp docker stop sandbox-proxy
重启Sandbox
使用docker start
命令即可:
docker start sandbox-hdp docker start sandbox-proxy
清理Sandbox
先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的大数据开发环境怎么实现”的内容了,经过本文的学习后,相信大家对基于Docker的大数据开发环境怎么实现这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/143765.html