温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。
Fayson的github: https://github.com/fayson/cdhproject
提示:代码块部分可以左右滑动查看噢
1
文档编写目的
Cloudera在2018年11月29日发布了CDH5.16.1版本,5.16.1的新功能可以参考前一篇文章《0466-CDH5.16.1和CM5.16.1的新功能》,这一次随着CDH5.16的同时没有发布新的CDSW,比如CDSW1.5,但前一段时间就已经发布了CDSW1.4.2。CDH5.13版本以后支持CDSW的Parcel安装,本篇文章Fayson就主要讲述如何通过CM5.16使用Parcel包安装CDSW1.4.2。
CDSW需要DNS服务和泛域名解析,可以参考Fayson以前的文章《如何在Windows Server2008搭建DNS服务并配置泛域名解析》、《如何利用Dnsmasq构建小型集群的本地DNS服务器》、《如何在Windows Server2012搭建DNS服务并配置泛域名解析》,《如何在RedHat6上使用Bind搭建DNS服务》或《如何在RedHat7上使用Bind搭建DNS服务》,CDSW1.4.2的新功能可以参考《产品更新 | Cloudera 数据科学工作台CDSW1.4.2新功能及更新》。搭建DNS服务推荐Dnsmasq,小巧可爱特方便。
- 内容概述
1.部署CDSW parcel及安装CSD文件
2.添加CDSW节点到集群并部署Gateway角色
3.安装DNS服务并配置泛域名解析
4.安装CDSW服务
5.测试CDSW
- 测试环境
1.Redhat7.4
2.采用root用户操作
3.CM/CDH5.16.1
4.CDSW版本1.4.2
- 前置条件
1.CM和CDH已安装且正常运行
2.集群已部署Spark2 On Yarn模式
3.集群已部署Anaconda
4.集群已配置好DNS服务并配置CDSW节点的泛域名解析
5.CDSW节点已经通过CM加入到集群中
2
部署CDSW Parcel包
1.下载CDSW的Parcel,下载地址如下
代码语言:javascript复制https://archive.cloudera.com/cdsw1/1.4.2/parcels/CDSW-1.4.2.p1.624065-el7.parcel
https://archive.cloudera.com/cdsw1/1.4.2/parcels/CDSW-1.4.2.p1.624065-el7.parcel.sha
https://archive.cloudera.com/cdsw1/1.4.2/parcels/manifest.json
2.将下载的文件部署在Apache所在服务器的/var/www/html/cdsw1.4.2目录下
代码语言:javascript复制[root@ip-172-31-13-38 ~]# cd /var/www/html/cdsw1.4.2
[root@ip-172-31-13-38 cdsw1.4.2]# ll
total 4321424
-rw-r--r-- 1 root root 4425122809 Oct 12 04:21 CDSW-1.4.2.p1.624065-el7.parcel
-rw-r--r-- 1 root root 41 Oct 12 04:21 CDSW-1.4.2.p1.624065-el7.parcel.sha
-rw-r--r-- 1 root root 4231 Oct 12 04:21 manifest.json
3.通过浏览器测试是否部署成功
看到以上界面说明部署成功。
3
安装CSD文件
1.下载CSD文件,使CM支持CDSW安装,文件下载地址
代码语言:javascript复制https://archive.cloudera.com/cdsw1/1.4.2/csd/CLOUDERA_DATA_SCIENCE_WORKBENCH-CDH5-1.4.2.jar
2.将下载CLOUDERA_DATA_SCIENCE_WORKBENCH-CDH5-1.4.2.jar文件放在CM所在服务器的/opt/cloudera/csd目录下
代码语言:javascript复制[root@ip-172-31-13-38 ~]# cd /opt/cloudera/csd/
[root@ip-172-31-13-38 csd]# ll
total 12
-rw-r--r-- 1 root root 10740 Oct 12 04:21 CLOUDERA_DATA_SCIENCE_WORKBENCH-CDH5-1.4.2.jar
[root@ip-172-31-13-38 csd]#
3.重启Cloudera-scm-server服务
代码语言:javascript复制[root@ip-172-31-13-38 csd]# systemctl restart cloudera-scm-server
[root@ip-172-31-13-38 csd]# systemctl status cloudera-scm-server
● cloudera-scm-server.service - LSB: Cloudera SCM Server
Loaded: loaded (/etc/rc.d/init.d/cloudera-scm-server; bad; vendor preset: disabled)
Active: active (exited) since Sun 2018-12-09 07:19:15 UTC; 17s ago
Docs: man:systemd-sysv-generator(8)
Process: 26365 ExecStop=/etc/rc.d/init.d/cloudera-scm-server stop (code=exited, status=0/SUCCESS)
Process: 26416 ExecStart=/etc/rc.d/init.d/cloudera-scm-server start (code=exited, status=0/SUCCESS)
Dec 09 07:19:10 ip-172-31-13-38.ap-southeast-1.compute.internal systemd[1]: Starting LSB: Cloudera SCM Server...
Dec 09 07:19:10 ip-172-31-13-38.ap-southeast-1.compute.internal su[26440]: (to cloudera-scm) root on none
Dec 09 07:19:15 ip-172-31-13-38.ap-southeast-1.compute.internal cloudera-scm-server[26416]: Starting cloudera-scm-server: [ OK ]
Dec 09 07:19:15 ip-172-31-13-38.ap-southeast-1.compute.internal systemd[1]: Started LSB: Cloudera SCM Server.
[root@ip-172-31-13-38 csd]#
4
添加CDSW节点到集群
1.登录CM,新建一个主机模板
2.选择模板拥有的角色
3.完成主机模板创建
4.使用添加主机引导,进行主机添加,将cdsw master主机添加到集群,如下图所示为cdsw.fayson.com新节点,关于如何扩容,请参考Fayson以前的文章《如何给Kerberos环境下的CDH集群添加Gateway节点》
5.选择cdsw master主机,应用主机模板
5
配置CDSW的Parcle库
1.配置parcel库
2.下载、分配并激活
3.完成激活
6
安装DNS服务并配置泛域名解析
1.安装dnsmasq
代码语言:javascript复制[root@cdsw ~]# yum -y install dnsmasq
2.验证安装
代码语言:javascript复制[root@cdsw ~]# dnsmasq -v
3.配置DNS服务以及泛域名解析,在/etc/dnsmasq.conf文件末尾增加以下配置。
代码语言:javascript复制[root@cdsw ~]# vim /etc/dnsmasq.conf
resolv-file=/etc/resolv.dnsmasq.conf
strict-order
listen-address=172.31.14.51
addn-hosts=/etc/hosts
address=/cdsw.fayson.com/172.31.14.51
address=/cdsw/172.31.14.51
配置说明:
resolve-file:定义Dnsmasq从哪里获取上游DNS服务器的地址, 默认是从/etc/resolv.conf获取。在此我们定义的是从/etc/resolv.Dnsmasq.conf文件中获得。
strict-order:表示严格按照resolv-file文件中的顺序从上到下进行DNS解析,直到第一个解析成功为止。
listen-address:定义Dnsmasq监听的地址,默认是监控DNS本机的所有网卡上。如果想让局域网内的其他机器使用Dnsmasq解析域名的话,需要添加本机的IP地址。
address:自定义域名解析的IP地址,在此以cdsw-demo.cloudera.com这个域名为例。注意Dnsmasq是支持泛域名解析的,以上配置就是一个典型的泛域名解析实例。
address:也可以过滤某些网站,比如如果不想让客户端解析youk.com这个域名的话,我们则把该域名解析到一台不存在的服务器上或者解析到127.0.0.1这个地址。如:address=/ cdsw-demo.cloudera.com/127.0.0.1
4.启动dnsmasq服务
代码语言:javascript复制[root@cdsw ~]# systemctl start dnsmasq
[root@cdsw ~]# systemctl enable dnsmasq
5.修改/etc/resolv.conf文件配置,在nameserver中增加创建的DNS服务器IP地址,Fayson这里是将cdsw本机配置为dns服务器,所以将cdsw这台机器的内网IP地址配置到该文件中。
代码语言:javascript复制[root@cdsw ~]# vim /etc/resolv.conf
6.泛域名解析测试
代码语言:javascript复制nslookup 172.31.13.133
nslookup cdsw.fayson.com
nslookup xxx.cdsw.fayson.com
7
安装CDSW服务
1.进入CM主页,选择集群点击“添加服务”
2.进入添加服务引导界面, 选择“Cloudera Data Science Workbench”,点击“继续”
3.选择Master和Worker,点击“继续”,Fayson的环境只有一台机器,Worker节点不用选择,为空即可。
4.输入Domain和Block Device,点击“继续”
注意:/dev/xvdb必须是一块大于100GB的裸盘,生产环境建议500GB以上,并配置多块。
5.首次运行CDSW,点击“继续”
6.完成CDSW安装
主页显示
CDSW启动需要一段时间,等待10-20分钟后再访问CDSW控制台。
8
测试CDSW功能
1.Fayson使用的是AWS环境,访问CDSW需要用内网的里的Windows机器,我们这里先配置Windows机器连接到我们刚配置的DNS服务。
2.进入CDSW服务,点击链接登录CDSW控制台
3.点击CDSW Web UI进入CDSW登录界面
4.点击“Sign Up fo a New Account”注册,首次注册的账号默认为管理员账号
5.使用admin用户登录CDSW
6.点击New Project创建一个Python工程
7.工程创建完成后,打开“Open Workbench”,启动一个python的会话
8.执行示例代码
这里Fayson就简单的创建一个Python工程,运行工程里的示例代码测试,更多的功能及用法可以看看Fayson前面写的关于CDSW的一些文章。
9
总结
- CDSW访问时需要用到泛域名,因此必须为CDSW Master节点配置泛域名解析,具体可以参考Fayson以前的文章《如何在Windows Server2008搭建DNS服务并配置泛域名解析》、《如何利用Dnsmasq构建小型集群的本地DNS服务器》、《如何在Windows Server2012搭建DNS服务并配置泛域名解析》,《如何在RedHat6上使用Bind搭建DNS服务》或《如何在RedHat7上使用Bind搭建DNS服务》
- CDSW节点是运行在CM管理的Gateway节点上的,所有CDSW的节点需要满足CDH的前置条件检查,具体可以参考《CDH安装前置准备》
- CDSW所有节点需要加入CDH集群,并部署HDFS 、Yarn、Spark2的Gateway
- CDSW Master节点需要有多块DISK,磁盘空间大于100G,不需要对磁盘进行格式化分区操作。
- CDSW1.4更吃资源了,Fayson在4核16GB的环境下虽然可以安装成功过,但是无法运行会话,调整为8核32GB内存才成功。