技术标签: Hadoop实操
简介
Cloudera Data Science Workbench为从单个交互式会话中启动多个称为workers的引擎实例提供了基本支持。任何R或Python会话均可用于生成workers。这些工作程序可以配置为在启动时运行脚本(例如Python文件)或命令中。
可以使用 launch_workers函数。以及另外两个函数是list_workers 和 list_workers。来自所有工作程序的输出将显示在启动它们的会话的控制台中。会话退出时,这些workers将终止。
Python示例
Python分布式运算基本语法
import cdsw
workers=cdsw.launch_workers(n=2,cpu=0.2,memory=0.5,code="print('Hello from a CDSW Woker')")
list_workers
cdsw.list_workers()
stop_worker
cdsw.stop_workers()
编辑Python文件master.py;在Master引擎中,该脚本将启动三个工作程序并接受来自Workers的传入连接。
# master.py
import cdsw, socket
# Launch two CDSW workers. These are engines that will run in
# the same project, execute a given code or script, and exit.
workers = cdsw.launch_workers(n=3, cpu=0.2, memory=0.5, script="worker.py")
# Listen on TCP port 6000
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(("0.0.0.0", 6000))
s.listen(1)
# Accept two connections, one from each worker. Workers will
# execute worker.py.
conn, addr = s.accept()
for i in range(3):
# Receive a message from each worker and return a response.
data = conn.recv(20)
if not data: break
print("Master received:", data)
conn.send("Hello From Server!".encode())
conn.close()
编辑worker.py文件;Workers将执行脚本中的命令,并返回给Master。
# worker.py
import os, socket
# Open a TCP connection to the master.
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((os.environ["CDSW_MASTER_IP"], 6000))
# Send some data and receive a response.
s.send("Hello From Worker!".encode())
data = s.recv(1024)
s.close()
print("Worker received:", data)
执行master.py,可以看到执行了三次worker.py。
R语言示例
基本语法
library("cdsw")
workers <- launch.workers(n=2,cpu=0.2,memory=0.5, env="",code="print('Hello From a CDSW Workers')")
由于解析 launch.workers函数的bug,因此定义env 参数。如果未定义env 参数,env参数在内部序列化为与Cloudera Data Science Workbench不兼容的格式。此bug不会影响Python引擎。
编写master.r文件,在Master引擎中,该脚本将启动两个工作程序并接受来自Workers的传入连接。
# master.r
library("cdsw")
# Launch two CDSW workers. These are engines that will run in
# the same project, execute a given code or script, and exit.
workers <- launch.workers(n=2, cpu=0.2, memory=0.5, env="", script="worker.r")
# Accept two connections, one from each worker. Workers will
# execute worker.r.
for(i in c(1,2)) {
# Receive a message from each worker and return a response.
con <- socketConnection(host="0.0.0.0", port = 6000, blocking=TRUE, server=TRUE, open="r+")
data <- readLines(con, 1)
print(paste("Server received:", data))
writeLines("Hello from master!", con)
close(con)
}
编写worker.r文件;Workers将执行以下命令,并返回到Master。
# worker.r
print(Sys.getenv("CDSW_MASTER_IP"))
con <- socketConnection(host=Sys.getenv("CDSW_MASTER_IP"), port = 6000, blocking=TRUE, server=FALSE, open="r+")
write_resp <- writeLines("Hello from Worker", con)
server_resp <- readLines(con, 1)
print(paste("Worker received: ", server_resp))
close(con)
执行master.r,可以看到执行了两次worker.r
参考文档
https://docs.cloudera.com/documentation/data-science-workbench/1-6-x/topics/cdsw_parallel_computing.html
文章浏览阅读8.1k次,点赞2次,收藏19次。目录:前言Docker配置 ZoneminderZoneminder 配置摄像头Homeassistant 接入前言上次的文章中提到了很多关于我家用黑苹果作为服务器所运行的功能。请参考mac 篇一:macOS server + Docker,我的家庭服务解决方案其中有很多服务器是跑再docker上的,全平台通用。类似于plex,calibre之类的,张大妈上面已经有很多类似的文章了。真正的视频监控..._docker nvr
文章浏览阅读9k次。LVM是Logical Volume Manager(逻辑卷管理器)的简写,它为主机提供了更高层次的磁盘存储管理能力。LVM可以帮助系统管理员为应用与用户方便地分配存储空间。在LVM管理下的逻辑卷可以按需改变大小或添加移除。另外,LVM可以为所管理的逻辑卷提供定制的命名标识。因此,使用LVM主要是方便了对存储系统的管理,增加了系统的扩展性。一、准备lvm环境1.硬盘的准备添加了一块硬盘/dev/h_linux lv open
文章浏览阅读2.3w次,点赞2次,收藏32次。一.网络的基本静态几何特征度分布网络中所有节点viv_i的度kik_i的平均值称为网络的平均度,记为\,即 =1N∑i=1Nki =\frac{1}{N}\sum_{i=1}^{N}k_i 平均路径长度网络的平均路径长度L定义为任意两个节点之间的距离的平均值,即: L=1C2N∑1≤i
文章浏览阅读1.1w次,点赞3次,收藏31次。先给出一些结论:GRU和LSTM的性能在很多任务上不分伯仲。GRU 参数更少因此更容易收敛,但是数据集很大的情况下,LSTM表达性能更好。从结构上来说,GRU只有两个门(update和reset),LSTM有三个门(forget,input,output),GRU直接将hidden state 传给下一个单元,而LSTM则用memory cell 把hidden state 包装起来。基..._gru和lstm 效果对比
文章浏览阅读608次。一.DOTS环境搭建1.首先要下载2019版本的Unity。2.创建好工程后找到Window→Package Manager→找到Entites下载下来。如下图如果搜索不到系应该Advanced选项为Show preview packages就会发现增加了许多测试包其中就包含一下所需要的Entities3.导入Entities后在Package Manager面板中找到HybridRenderer也下载下来导入工程中这个是用来显示物体的,没有这个包我们创建的物体是看不到的4.以上两个包都下载导入之_unity dots项目 build步骤
文章浏览阅读5.8k次,点赞2次,收藏7次。【场景】在学习docker的时候,经常会编译docker镜像,很多都是基于上一个Dockerfile修改编译而来,因此出现了很多REPOSITORY 和 TAG 为 none 的镜像。每次 docker images 查看镜像,都会列出一长串,有的时候一屏还展示不全,所以就想要删除某些镜像。但是一个一个删又很费时,那就只有批量删除了。【实战】使用 grep 函数查找出所有包含 none 的镜..._docker 删除名字中带有某种字符的镜像
文章浏览阅读3.1w次,点赞15次,收藏96次。Sprinboot2.4整合Swagger3(springdoc-openapi-ui)一、创建Springboot项目,引入pom依赖二、配置类请求头携带token三、配置文件四、接口定义五、实现类六、实体类定义七、运行项目查看效果参考文档:https://github.com/swagger-api/swagger-core/wiki/Swagger-2.X—Annotations一、创建Springboot项目,引入pom依赖 <dependency> _springdoc 注解
文章浏览阅读2k次。java.lang.Object↳android.hardware.camera类概述相机类用于设置图像捕获设置,启动/停止预览、拍照、和检索视频帧的编码。这个类是一个为相机服务客户,管理实际相机硬件。访问设备的相机,你必须申报相机在你的Android Manifest许可。当然也要包括manifest元素声明应用程序所使用的_安卓相机 报错camera_error_unknown
文章浏览阅读628次。Oracle中的AWR,全称为Automatic Workload Repository,自动负载信息库。它收集关于特定数据库的操作统计信息和其他统计信息,Oracle以固定的时间间隔(默认为1个小时)为其所有重要的统计信息..._shared pool advisory
文章浏览阅读2.9k次。表单排列方式设置不生效解决方案_antform表单非空提示后 布局位置改变
文章浏览阅读1.7w次,点赞2次,收藏2次。位运算--将二进制整数的奇偶位互换_将一个二进制整数的奇数位翻转
文章浏览阅读7.7k次,点赞25次,收藏133次。近期秋招也即将结束,经过几个offer的对比,最终选择了深信服。以下我会以聊天的形式分享一些安服类岗位的面经,有想要进一步了解的同学可以评论或者私信我。感觉今年的就业形势真的不好,考研也很难,能感受到周围人的压力,同为学生我感同身受,所以希望我的分享能有些帮助,祝大家都能找到满意的工作,实现自己的目标,有一个好的人生起点。_深信服安全运营工程师面试