sparkling water将h2o和Spark相结合,在spark平台上运行h2o服务。提供了Scala,Python,R的接口,下面是spark water的一个整体架构图。 

安装

这里只简单介绍下PySparkling的安装 
首先安装Hadoop和Spark,没有问题了再安装Sparkling Water。 
PySparkling支持的一些版本

h2o_pysparkling_1.6 - for Spark 1.6.x
h2o_pysparkling_1.5 - for Spark 1.5.x
h2o_pysparkling_1.4 - for Spark 1.4.x
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

这里我使用了Spark1.60的版本。 
1、pip安装一些包

pip install h2o_pysparkling_1.6
pip install requests
pip install tabulate
pip install six
pip install future
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5

注:在worker节点上也要安装这些环境,否则会报错。

2、配置环境

export SPARK_HOME="/path/to/spark/installation"
export MASTER='local[*]'
  • 1
  • 2
  • 1
  • 2

3、运行测试 
在spark water文件夹下运行shell启动

bin/pysparkling --conf spark.executor.memory=2G 
  • 1
  • 1

也可以通过ipython和notebook启动

PYSPARK_DRIVER_PYTHON="ipython" PYSPARK_DRIVER_PYTHON_OPTS="notebook" bin/pysparkling
  • 1
  • 1

启动成功可以在http://master:4040查看pysparkling的状态

测试:

from pysparkling import *
import h2o
hc = H2OContext.getOrCreate(sc)
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

Demo

1、sparkcontext 初始化的demo

from pysparkling import *
from pyspark import SparkContext
from pyspark.sql import SQLContext
import h2o
# initiate SparkContext
sc = SparkContext("local", "App Name", pyFiles=[])# initiate SQLContext
sqlContext = SQLContext(sc)# initiate H2OContext
hc = H2OContext.getOrCreate(sc)# stop H2O and Spark services
h2o.shutdown(prompt=False)
sc.stop()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

2、芝加哥犯罪数据 
其中用了SparkSQL来查询数据,最后用GBM和DL模型来训练数据 
数据集可以从这儿下载

demo

出现的问题

1、spark执行任务时出现Java.lang.OutOfMemoryError: GC overhead limit exceeded和java.lang.OutOfMemoryError: Java heap space 
Sun 官方对此的定义是:“并行/并发回收器在GC回收时间过长时会抛出OutOfMemroyError。”过长的定义是,超过98%的时间用来做GC并且回收了不到2%的堆内存。用来避免内存过小造成应用不能正常工作。 
解决方法: 
在spark-env.sh中将下面两个参数调大,提高机器可用的堆空间。

export SPARK_EXECUTOR_MEMORY=2000M
export SPARK_DRIVER_MEMORY=2000M
  • 1
  • 2
  • 1
  • 2

另一种可能的原因是executor core数量太多,导致了多个core之间争夺gc时间以及资源(应该主要是内存资源),最后导致大部分的时间都花在了gc上,可以减少core的数量直到到1

SPARK_EXECUTOR_CORES=1
  • 1
  • 1

2、在启动和运行时会出现各种问题,大部分都是虚拟机内存分配不够,虚拟机内存最好分配3G以上,不然会出现各种奇葩的错误。

H2O学习笔记(八)——Sparkling Water相关推荐

  1. ReactJS学习笔记八:动画

    ReactJS学习笔记八:动画 分类: react学习笔记 javascript2015-07-06 20:27 321人阅读 评论(0) 收藏 举报 react动画 目录(?)[+] 这里只讨论Re ...

  2. 【opencv学习笔记八】创建TrackBar轨迹条

    createTrackbar这个函数我们以后会经常用到,它创建一个可以调整数值的轨迹条,并将轨迹条附加到指定的窗口上,使用起来很方便.首先大家要记住,它往往会和一个回调函数配合起来使用.先看下他的函数 ...

  3. python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑

    python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑 许多人在安装Python第三方库的时候, 经常会为一个问题困扰:到底应该下载什么格式的文件? 当我们点开下载页时, 一 ...

  4. ROS学习笔记八:创建ROS msg和srv

    ROS学习笔记八:创建ROS msg和srv 本节主要讲述了如何创建和建立ROS msg和srv,同时使用命令行工具rosmsg.rossrv和roscp. msg和srv简介 msg:描述ROS m ...

  5. Halcon 学习笔记八:颜色识别

    Halcon 学习笔记八:颜色识别 一.图像处理需要的知识 二.图像处理的预处理和分割过程 二.颜色识别的方法 三.例子一 四.例子二 五.例子三 一.图像处理需要的知识 1.图像处理基础(rgb(h ...

  6. ZooKeeper学习笔记(八):ZooKeeper集群写数据原理

    写数据原理 写流程直接请求发送给Leader节点 这里假设集群中有三个zookeeper服务端 ACK (Acknowledge character)即是确认字符,在数据通信中,接收站发给发送站的一种 ...

  7. MongoDB 学习笔记八 复制、分片、备份与恢复、监控

    MongoDB 学习笔记八 复制.分片.备份与恢复.监控 MongoDB复制(副本集) 什么是复制? MongoDB 复制原理 MongoDB 副本集设置 副本集添加成员 MongoDB 分片 分片 ...

  8. python3第三方库手册_python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑...

    python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑 许多人在安装Python第三方库的时候, 经常会为一个问题困扰:到底应该下载什么格式的文件? 当我们点开下载页时, 一 ...

  9. Polyworks脚本开发学习笔记(八)-组合运用命令批量改名

    Polyworks脚本开发学习笔记(八)-组合运用命令批量改名 需求解析 以下是使用包边比较点创建的一组包边点(即Gap点)和曲面点-包边点(即Flush点),这种命名方式不太常规,改为Gap和Flu ...

  10. Redis 学习笔记八:集群模式

    Redis 学习笔记八:集群模式 作者:Grey 原文地址: 博客园:Redis 学习笔记八:集群模式 CSDN:Redis 学习笔记八:集群模式 前面提到的Redis 学习笔记七:主从复制和哨兵只能 ...

最新文章

  1. 微服务生态与 Spring Cloud Alibaba
  2. Hook技术之4 在自己的进程中注入一个Dll到别人的进程
  3. 应用存储和持久化数据卷:存储快照与拓扑调度(至天)
  4. git创建与管理远程分支
  5. Java枚举的定义,使用
  6. JDK源码解析之java.util.AbstractCollection
  7. C++设计模式-AbstractFactory抽象工厂模式
  8. Ghost for linux 工具备份还原系统
  9. Linux—图解rsyslog及通过 Loganalyzer实现集中式日志管控
  10. linux远程桌面MacOS,如何在Linux或macOS中使用远程桌面连接到Windows 10 | MOS86
  11. Selenium2.0功能测试之唯一元素的定位
  12. 各种图示的介绍及绘制(boxplot、stem)
  13. 0 y 100写成c语言,c语言100编程实例
  14. python-Key Error问题
  15. Word:快速插入水平分隔线(转)
  16. OpenSSL 生成CA证书及终端用户证书
  17. 云服务器+Dock+搭建个人博客网站
  18. 快圣诞节了,用Python 送你一棵圣诞树
  19. python_变量特性、作用域、函数
  20. 泰国服务器怎么挑选?

热门文章

  1. 51单片机led流水灯程序
  2. NetWare网络操作系统
  3. 需要管理员权限解决办法
  4. MFC程序运行中修改Static Text的Caption属性
  5. linux下使用PulseAudio获取扬声器的音量和是否静音
  6. 程序员跟产品经理打起来了,事情的真相是...
  7. 统计学之算术平均数、调和平均数、几何平均数、位置平均数详解
  8. pr怎么导出html格式的字幕,PR字幕怎么导出,导出只有视频。急急
  9. 金融信创云:从遥不可及到价值担当
  10. 用 Python 构建实时股票警报消息系统机器人