spark在windows下的安装
这里的spark开发环境, 不是为apache spark开源项目贡献代码, 而是指基于spark的大数据项目开发.
Spark提供了2个交互式shell, 一个是pyspark(基于python), 一个是spark_shell(基于scala). 这两个环境其实是并列的, 并没有相互依赖关系, 所以如果仅仅是使用pyspark交互环境, 而不使用spark-shell的话, 甚至连scala都不需要安装.
pyspark运行环境配置:
====================
有空要完整将这篇文章翻译 https://districtdatalabs.silvrback.com/getting-started-with-spark-in-python
1. 安装python2.7, Windows下官方推荐使用 anaconda 版本的 Python 2.7, 已经包含了很多科学计算包,https://store.continuum.io/cshop/anaconda/, 将python加到path环境变量中
2. 安装jdk. pyspark运行环境其实不依赖scala, 但jdk是必需的. 安装jdk1.7, 将java加到path环境变量中, 并设置JAVA_HOME环境变量.
3. 从apache spark网站下载spark-1.1.0-bin-hadoop2.4.tgz预编译包, 并解压.
选择预编译包, 免去了从源码直接编译的麻烦.
在启动spark shell, 碰到了个错误:
Failed to initialize compiler: object scala.runtime in compiler mirror not found.
根据谷老师的提示, 修改了spark-class2.cmd文件, 具体在第91行设置 JAVA_OPTS 变量时, 再额外加一个选项 -Dscala.usejavacp=true , 即能解决这个问题.
另外, 在使用Spark Sql, 按照example查询people.txt, 碰到了 StackOverflowError 问题,
经查询 http://f.dataguru.cn/thread-351552-1-1.html, 需要修改JVM的 thread stack size. 同样还是91行, 增加 -Xss10m 选项即可.
最终91行为:
set JAVA_OPTS=-XX:MaxPermSize=128m %OUR_JAVA_OPTS% -Xms%OUR_JAVA_MEM% -Xmx%OUR_JAVA_MEM% -Dscala.usejavacp=true -Xss10m
5. 补配hadoop环境变量 HADOOP_HOME
启动pyspark shell后, 运行一个简单 parallelize+collect 就会报错, 具体错误是, Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
显然, spark这是要知道winutils.exe的全路径, 所以第一要安装winutils.exe, 第二要让spark知道安装到哪里了. 谷歌得到的信息是winutils.exe 是Hadoop windows 下的一个binary.
我理解原因是, Spark driver程序的机器不必安装的Hadoop, 但仍然需要配置一下Hadoop运行环境, 这包括 HADOOP_HOME 环境变量, 以及 winutils.exe 程序.
64 bit 编译包下载地址, https://github.com/srccodes/hadoop-common-2.2.0-bin/archive/master.zip
32 bit 版本下载: http://yunpan.cn/csHEXGEaqVrLT 访问密码 8199 ,详见作者博客<<Hadoop:Windows 7 32 Bit 编译与运行>> http://www.cnblogs.com/smartbooks/p/3694760.html
下载解压后, 命令行中运行一下 winutils.exe, 看看是否和你的windows兼容. 如果兼容的话, 设置HADOOP_HOME为 C:\Program\hadoop-common-2.2.0-bin-master
参考文章: http://www.srccodes.com/p/article/39/error-util-shell-failed-locate-winutils-binary-hadoop-binary-path
6. 补配spark环境变量 SPARK_HOME, 同上
这步对于交互式环境并不是必须的, 但对于scala/python语言编程是必须的
7. 执行pyspark 验证是否可以工作
在shell中, 输入 sc.parallelize(range(1000)).count() ,得到了正确的值
scala版本环境搭建,
安装 scala-2.11.4.msi, 并将scala的bin目录放到OS 的PATH 环境变量, 其它步骤参考上面.
监控spark的作业
http://localhost:4040/stages/
为 pyspark shell 增加代码补全功能之方法1 ---- 使用DreamPie
bin/pyspark 是一个交互性的shell, 但是没有代码提示功能. 我比较喜欢DreamPie, 将下面代码存为c:/pyspark_shell.py, 然后在DreamPie执行execfile(r'c:\pyspark_shell.py'), 即能得到一个带代码提示环境.
# -*- coding:utf- -*-
# file: c:\pyspark_shell.py
# 使用, 在dreampie输入, 即得到了pyspark交互shell: execfile('c:\pyspark_shell.py')
__author__ = "Hari Sekhon"
__version__ = "0.1" # https://github.com/harisekhon/toolbox/blob/master/.ipython-notebook-pyspark.00-pyspark-setup.py
import glob
import os
import sys
spark_home=r'c:\program1\spark-1.1.1-bin-hadoop2.4'
hadoop_home=r'c:\program1\hadoop-common-2.2.0-bin-master'
python_bin=r'c:\pythonenv\Python27' # 这步是将pyspark和py4j 加到 PYTHONPATH. 我测试了直接Windows的PYTHONPATH加下面的路径, 并不管用
sys.path.insert(, os.path.join(spark_home, 'python')) # add pyspark
sys.path.insert(, os.path.join(spark_home, r'python\build')) # add py4j # 这步是设置了 SPARK_HOME 和 HADOOP_HOME
# 我测试了即使是在Windows设置了环境变量, 也不管用
# 所以在程序中, 设置了 SPARK_HOME 和 HADOOP_HOME
os.environ['SPARK_HOME']=spark_home
os.environ['HADOOP_HOME']=hadoop_home #在worker机器上, 需要将python放到操作系统的Path环境变量中, 我手工设置了PATH环境变量,
#但在代码中却读PATH环境变量, 却发现没有python路径,
#无奈我在pyspark_shell.py 代码中将python加到path环境变量.
os.environ['PATH']=os.environ['PATH']+';'+python_bin #执行D:\program\spark-1.1.-bin-hadoop2.\python\pyspark\shell.py
execfile(os.path.join(spark_home,r'python\pyspark\shell.py'))
为 pyspark shell 增加代码补全功能之方法2 ---- 使用ipython qtconsole
这个方法比方法1简单一些, 使用ipython 的自动补全功能.
rem ========================================
rem Launch pyspark in ipython qtconsole
rem ======================================== setlocal set ANACONDA_PY_HOME=D:\pythonenv\python277
SET SPARK_HOME=D:\program\spark-1.5.2-bin-hadoop2.6 set PYSPARK_PYTHON=%ANACONDA_PY_HOME%\python.exe
set PYSPARK_DRIVER_PYTHON=%ANACONDA_PY_HOME%\Scripts\ipython.exe
set PYSPARK_DRIVER_PYTHON_OPTS=qtconsole %SPARK_HOME%\bin\pyspark.cmd endlocal
Spark 1.5 在我的Windows下运行(机器只有3GB内存), 报如下错误,
Error occurred during initialization of VM
Could not reserve enough space for object heap
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
显然是内存不足, 最终的解决方法是: 在OS系统环境变量中, 加上 _JAVA_OPTIONS, 取值为 -Xms300m -Xmx700m -XX:PermSize=64m -XX:MaxPermSize=256m -Dscala.usejavacp=true -Xss10m
我试着在spark-class2.cmd 和 spark-env.cmd 中设置_JAVA_OPTIONS变量, 但没有成功.
小内存设置:
_JAVA_OPTIONS: -Xms300m -Xmx700m -XX:PermSize=64m -XX:MaxPermSize=256m -Dscala.usejavacp=true -Xss10m
大内存设置:
_JAVA_OPTIONS: -Xms800m -Xmx1500m -XX:PermSize=64m -XX:MaxPermSize=256m
spark在windows下的安装的更多相关文章
- Spark在Windows下的环境搭建(转)
原作者:xuweimdm 原文网址:http://blog.csdn.net/u011513853/article/details/52865076 由于Spark是用Scala来写的,所以Spa ...
- Spark学习笔记--Spark在Windows下的环境搭建
本文主要是讲解Spark在Windows环境是如何搭建的 一.JDK的安装 1.1 下载JDK 首先需要安装JDK,并且将环境变量配置好,如果已经安装了的老司机可以忽略.JDK(全称是JavaTM P ...
- 二、Spark在Windows下的环境搭建
由于Spark是用Scala来写的,所以Spark对Scala肯定是原生态支持的,因此这里以Scala为主来介绍Spark环境的搭建,主要包括四个步骤,分别是:JDK的安装,Scala的安装,Spar ...
- Spark学习笔记--Spark在Windows下的环境搭建(转)
本文主要是讲解Spark在Windows环境是如何搭建的 一.JDK的安装 1.1 下载JDK 首先需要安装JDK,并且将环境变量配置好,如果已经安装了的老司机可以忽略.JDK(全称是JavaTM P ...
- memcache的windows下的安装和简单使用
原文:memcache的windows下的安装和简单使用 memcache是为了解决网站访问量大,数据库压力倍增的解决方案之一,由于其简单实用,很多站点现在都在使用memcache,但是memcach ...
- Windows下pry安装和配置
Windows下pry安装和配置 pry是一个增强型的交互式命令行工具,比irb强大. 有自动完成功能,自动缩进,有颜色.有更强大的调试功能. pry 安装很简单. 在终端输入: gem instal ...
- Windows下虚拟机安装Mac OS X ----- VM12安装Mac OS X 10.11
Windows下虚拟机安装Mac OS X -– VM12安装Mac OS X 10.11 随着Iphone在国内大行其道,越来越多的开发者涌入iOS开发大军 中,但都苦于没有苹果机,本文即将介绍WI ...
- Windows下memcache安装使用
Windows下Memcache安装 随着时间的推移,网上现在能找到的在 Windows下安装 Memcache 的文档大多已经过时.雪峰这里再简要介绍一下当下最新版的安装和配置方法. Memcach ...
- Windows 下如何安装配置Snort视频教程
Windows 下如何安装配置Snort视频教程: 第一步: http://www.tudou.com/programs/view/UUbIQCng360/ 第二部: http://www.tudou ...
随机推荐
- 用ProGet搭建内部的NuGet服务器(更新安装步骤)
以下是转自dudu的文章,但是我发觉时间的问题,他的安装方法已经不适用了,所以这里我更新了安装方法: 最近团队内部用的一个很简陋的NuGet服务器出问题了,nuget push发包,客户端显示发布成功 ...
- wordpress /wp-content/plugins/wp-symposium/server/php/UploadHandler.php File Arbitrary Upload Vul
catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 Relevant Link:2. 漏洞触发条件3. 漏洞影响范围4. 漏 ...
- 遍历map集合
for(var key in map){ if(data.hasOwnProperty(key)){ var value = map[key]; } }
- UVA1555-- Garland(推导+二分)
题意:有n个灯,给定第一盏灯A的高度,接下去每盏灯的高度按照公式计算,求使所有灯都不会落在地上(允许碰触)的B的最低高度. uva 输出 double 用 %f,这一波坑的! #include < ...
- Myeclipse 加载ojdbc14.jar步骤
目的:加载驱动程序,需要找到驱动的具体位置,就是找到其驱动的类名,Class.forName("oracle.jdbc.driver.OracleDriver");//加载并注册驱 ...
- 获取URL列表,设置代理请求URL,https的加密方式处理
做了一个测试的一个小工具,需求如下: 1.有一批URL列表,需要知道哪个URL请求响应内容中包含http:关键字的. 2.url请求包括http和https 2种协议 3.要部署在linux服务器上, ...
- java连接数据源-读取tomcat数据源配置
读取数据源配置,获取连接 1.配置数据源 D:\apache-tomcat-7.0.70\conf\context.xml <Resource name="jdbc/news" ...
- JS+JavaBean判断管理员增删改的操作权限
目标:用户分管理员和普通用户2种,都可以登陆,但是管理员才可以执行增删改的权限,普通用户可以看,但是执行的时候提示权限不足 帖代码片段:我只会这一种,在JSP页面判断 省略得权限数值方法: <% ...
- java的对象的总结:(PO,VO,DAO,BO,POJO)
一.PO:persistant object 持久对象,可以看成是与数据库中的表相映射的java对象.最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合.PO中应该不包含任何对数 ...
- BZOJ1972: [Sdoi2010]猪国杀
“此题注意样例少了个J,且牌堆可能用完牌,若牌用完则不停取最后一张”.——hzwer 然后直接模拟,认真读题,理清思路. #include<cstdio> #include<list ...