作者:唐辉
1.CDSW Experiments简介
从CDSW (Cloudera Data Science Workbench) 1.4开始,CDSW中新增了一个Experiments 功能,它允许数据科学家运行批处理实验,跟踪不同版本的代码,并进行参数输入和输出。Experiments 是批量执行的工作负载,将代码、输入参数和输出模板化。此功能还提供轻量级跟踪输出数据的功能,包括文件、指标和元数据用以进行比较。
- 测试环境:
1.RedHat7.2
2.CDH5.16.1
2.问题描述
当我们在项目中添加一个脚本,这里使用官方示例 add.py
import sysimport cdswargs = len(sys.argv) - 1 sum = 0x = 1while (args >= x): print ("Argument %i: %s" % (x, sys.argv[x])) sum = sum + int(sys.argv[x]) x = x + 1print ("Sum of the numbers is: %i." % sum)
参数如下:
![afa420ab19571407c8dedfe90852efe7.png](https://i-blog.csdnimg.cn/blog_migrate/4fc46cd8cb3d61eee867a8aefc5bad56.jpeg)
run experiments ,会出现如下错误
![fbd9ce16c6ec87a47f90b9b1b14f4971.png](https://i-blog.csdnimg.cn/blog_migrate/c5cafafc43fa5d305e733d3d2ba4218f.jpeg)
3.解决办法
关于上面的问题主要在于run experiments 时,会run /home/cdsw/cdsw-build.sh,这个脚本中会执行pip install sklearn,当我们在离线的环境下,无法安装sklearn 包,就会出现该问题,那么解决该问题有两种办法
3.1.添加定制镜像,引入sklearn的安装包
如何定制镜像可以参考Fayson 之前的文章《如何基于CDSW基础镜像定制Docker》和《如何在CDSW中定制Docker镜像》这里不多描述,定制完成后选择新的镜像并保存
![91542dd570e353d004ed022d76df03a9.png](https://i-blog.csdnimg.cn/blog_migrate/6dbde12f426fb46103ebe61ff56a135a.jpeg)
然后重新打开会话,run experiments
![0984e0e68f448d42fbffa9c50bf24d9f.png](https://i-blog.csdnimg.cn/blog_migrate/63e004cc3a1701a33415da1a331237eb.jpeg)
发现可以正常pip install sklearn,并成功执行完成
3.2.到会话中注释/home/cdsw/cdsw-build.sh 文件中的pip install sklearn
进入会话中,点击_Terminal access
![0af89d3100e598fb63a5368fd096a4f4.png](https://i-blog.csdnimg.cn/blog_migrate/b13038623e67193228474e74c1465515.jpeg)
注释/home/cdsw/cdsw-build.sh 文件中的pip install sklearn
![e21fd973d9bbdd7ce948404e10b2467b.png](https://i-blog.csdnimg.cn/blog_migrate/87f7cd29acca1764e1e38048bf30e271.jpeg)
然后再重新执行,也可以正常执行完成
![3112dbf343c80aa8651f631e2702d189.png](https://i-blog.csdnimg.cn/blog_migrate/acedce7ca5b0d4eb83c5e18b2e57027e.jpeg)
![729fcbd2859ce2aea044bba2aded0d4f.png](https://i-blog.csdnimg.cn/blog_migrate/c0f4b5ead995a2f1faad48f6ea5b342e.jpeg)
参考文档:
https://www.cloudera.com/documentation/data-science-workbench/latest/topics/cdsw_experiments.htm
l