详解 jupyter notebook 集成 spark 环境安装
1 相关介绍
jupyter notebook是一个Web应用程序,允许你创建和分享,包含活的代码,方程的文件,可视化和解释性文字。用途包括:数据的清洗和转换、数值模拟、统计建模、机器学习和更多。支持40多中语言。python ,R,go,scala等。
Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。
Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。
Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。
尽管创建 Spark 是为了支持分布式数据集上的迭代作业,但是实际上它是对 Hadoop 的补充,可以在 Hadoop 文件系统中并行运行。通过名为 Mesos 的第三方集群框架可以支持此行为。Spark 由加州大学伯克利分校 AMP 实验室 (Algorithms, Machines, and People Lab) 开发,可用来构建大型的、低延迟的数据分析应用程序。
大致了解后,就开始看看怎么搭建这样一个集成的环境吧。
2 安装步骤
安装之前保证环境有java环境。输入命令java -version和javac验证
2.1 安装anaconda
anacnda带有ipython和jupyter notebook
下载完成后是一个.sh文件。执行bash Anaconda2-4.1.0-Linux-x86_64.sh进行安装。默认的安装路径是/User/anaconda2/,当然也可以修改安装目录。
安装完成后添加相应的PATH路径。
jupyter kernelspec list
查看jupyter已经安装的kernel有
jupyter notebook --ip=125.65.45.180 --no-browser
开启jupyter notebook服务,ip一般指定机器自己的ip。端口默认情况下是8888或者8889,我这里是8889。也可以自己指定。
开启后在browser输入 http://testland.orientsoft.cn:8889/tree#
机器名称换成自己指定的ip
会出现页面
说明jupyter notebook安装完成
2.2 安装scala kernel
解压
xz -d jupyter-scala_2.10.5-0.2.0-SNAPSHOT.tar.xz
tar xvf jupyter-scala_2.10.5-0.2.0-SNAPSHOT.tar
安装
cd jupyter-scala_2.10.5-0.2.0-SNAPSHOT/bin
chmod u+x jupyter-scala
bash jupyter-scala
完成后会生成一个文件。这里请注意。后面配置hi会用到
Generated /home/student/.ipython/kernels/scala210/kernel.json
验证
jupyter kernelspec list
说明scala kernel安装完成
2.3 安装spark
解压
tar xvf spark-1.5.1-bin-hadoop2.6.tgz
加压后需要设置一个环境变量
在你相应的/user/.bash_rc中添加
export SPARK_HOME="..../spark-1.5.1-bin-hadoop2.6:$PATH"
即添加你解压spark后的目录。
2.4 将spark(python版)环境加入python notebook。
在目录$user/.ipython/profile_spark/startup下面新建notebook启动文件00-first.py,文件内容如下:
import os
import sys
# Configure the environment
if 'SPARK_HOME' not in os.environ:
os.environ['SPARK_HOME'] = '/home/student/wp/envi/spark-1.5.1-bin-hadoop2.6'
# Create a variable for our root path
SPARK_HOME = os.environ['SPARK_HOME']
# Add the PySpark/py4j to the Python Path
sys.path.insert(0, os.path.join(SPARK_HOME, "python", "build"))
sys.path.insert(0, os.path.join(SPARK_HOME, "python"))
可以用此配置文件启动notebook:
jupyter notebook --config=00-first.py --no-browser --ip=自己的ip。
这样新建python文件就可以使用spark环境了。
以下主要是安装scala版本的notebook spark
2.5 安装sbt(simple build tools)
因为wget后的文件名称过长,所以我的命令是:
wget -O sbt-0.13.11.tgz -b https://dl.bintray.com/sbt/native-packages/sbt/0.13.11/sbt-0.13.11.tgz
下载完成后,配置相关PATH路径,命令sbt sbt-version验证。执行这个命令后,,就耐心等待吧,很久很久。。。。。。。因为要下载很多jar包。
出现
说明sbt安装完成
2.6 下载incubator(编译spark kernel)
git clone https://github.com/apache/incubator-toree.git
2.7 编译spark kernel
注意使用incubator编译spark kernel之前,请确保sbt正确安装。
cd 到你解压后的incubator-toree目录。里面有Makefile文件
执行
make build
进行编译(耐心等待吧,很久很久。最好去睡个午觉。。。。。。)
等到出现这个:
说明编译成功
接下来: make dist
cd dis/toree/bin
记住这个run.sh路径
cd到你的User/.ipython/kernels。如果这个目录下面没有spark,新建spark目录,然后在spark目录下面新建文件vim kernel.json
kernel.json内容为
{
"display_name": "Spark 1.5.1 (Scala 2.10.4)",
"lauguage_info": {"name": "scala"},
"argv": [
//这里改成你自己的目录,就是上面的run.sh 的路径
"/Users/zhangsan/anaconda3/incubator-toree/dist/toree/bin/run.sh",
"--profile",
"{connection_file}"
],
"codemirror_mode": "scala",
"env": {
"SPARK_OPTS": "--master=local[2] --driver-java-options=-Xms1024M --driver-java-options=-Xms4096M --driver-java-options=-Dlog4j.logLevel=info",
"MAX_INTERPRETER_THREADS": "16",
"CAPTURE_STANDARD_OUT": "true",
"CAPTURE_STANDARD_ERR": "true",
"SEND_EMPTY_OUTPUT": "false",
//这里改成你自己的目录
"SPARK_HOME": "/Users/zhangsan/Documents/spark-1.5.1-bin-hadoop2.6",
//这里改成你自己的目录
"PYTHONPATH": "/Users/zhangsan/Documents/spark-1.5.1-bin-hadoop2.6/python:/Users/zhangsan/Documents/spark-1.5.1-bin-hadoop2.6/python/lib/py4j-0.8.2.1-src.zip"
}
}
注意上面有3处需要改成你自己的目录值。。
此时执行jupyter kernelspec list;
2.8开启notebook服务
浏览器中:
到此基本完成全部安装
详解 jupyter notebook 集成 spark 环境安装的更多相关文章
- 如何基于Jupyter notebook搭建Spark集群开发环境
摘要:本文介绍如何基于Jupyter notebook搭建Spark集群开发环境. 本文分享自华为云社区<基于Jupyter Notebook 搭建Spark集群开发环境>,作者:apr鹏 ...
- 详解LUA开发工具及其环境配置
LUA开发工具及其环境配置是本文要介绍的内容,主要是来了解并学习lua开发工具的使用和环境的配置,第一次接触LUA的话,就跟本人一起学习吧.看我能不能忽悠到你. LUA是语言,那么一定有编写的工具.第 ...
- Linux 下Redis集群安装部署及使用详解(在线和离线两种安装+相关错误解决方案)
一.应用场景介绍 本文主要是介绍Redis集群在Linux环境下的安装讲解,其中主要包括在联网的Linux环境和脱机的Linux环境下是如何安装的.因为大多数时候,公司的生产环境是在内网环境下,无外网 ...
- RabbitMQ详解(一)------简介与安装(Docker)
RABBITMQ详解(一)------简介与安装(DOCKER) 刚刚进入实习,在学习过程中没有接触过MQ,RabbitMQ 这个消息中间件,正好公司最近的项目中有用到,学习了解一下. 首先什么是MQ ...
- windows jupyter notebook 切换默认环境
windows jupyter notebook 切换默认环境 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog ...
- Ubuntu18.04 + CUDA9.0 + cuDNN7.3 + Tensorflow-gpu-1.12 + Jupyter Notebook深度学习环境配置
目录 一.Ubuntu18.04 LTS系统的安装 1. 安装文件下载 2. 制作U盘安装镜像文件 3. 开始安装 二.设置软件源的国内镜像 1. 设置方法 2.关于ubuntu镜像的小知识 三.Nv ...
- Ubuntu16.04 + CUDA9.0 + cuDNN7.3 + Tensorflow-gpu-1.12 + Jupyter Notebook 深度学习环境配置
目录 一.Ubuntu16.04 LTS系统的安装 二.设置软件源的国内镜像 1. 设置方法 2.关于ubuntu镜像的小知识 三.Nvidia显卡驱动的安装 1. 首先查看显卡型号和推荐的显卡驱动 ...
- PL/SQL Developer安装详解(32位客户端免安装版)
PL/SQL Developer是一个集成开发环境,专门开发面向Oracle数据库的应用.PL/SQL也是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL).PL/S ...
- Python,Jupyter Notebook,IPython快速安装教程
0.安装环境 Windows10,Python3.5.1,IPython,jupyter notebook,and other functionality 官方安装文档Linux版3.x 官方安装文档 ...
随机推荐
- Java API —— HashMap类 & LinkedHashMap类
1.HashMap类 1)HashMap类概述 键是哈希表结构,可以保证键的唯一性 2)HashMap案例 HashMap<String,String> ...
- PHP无限极分类生成树方法
你还在用浪费时间又浪费内存的递归遍历无限极分类吗,看了该篇文章,我觉得你应该换换了.这是我在OSChina上看到的一段非常精简的PHP无限极分类生成树方法,整理分享了. function genera ...
- Web内容管理系统 Magnolia 启程-挖掘优良的架构(3)
Author and Public instances 第一个关键观念:instance-实例.每一个项目都必须至少有一个Author实例和至少一个Public实例.下面将告诉你为什么: 基本概念:J ...
- WebActivatorEx
using System; using NLog; using System.Web.Optimization; [assembly: WebActivatorEx.PreApplicationSta ...
- bzoj1109
我们设f[i]为保留第i个木块最多的符合未知数 显然f[i]=max(f[j])+1 满足i>j a[i]>a[j] i-j>=a[i]-a[j] 我们把最后一个式子变成a[i]-i ...
- BZOJ_1024_[SHOI2008]_生日快乐_(dfs)
描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1024 给出一个\(x*y\)的距形,要求平行于边切,最终切成\(n\)个面积相等的小距形,求长 ...
- web交互方式
轮询:客户端定时向服务器发送Ajax请求,服务器接到请求后马上返回响应信息并关闭连接. 优点:后端程序编写比较容易. 缺点:请求中有大半是无用,浪费带宽和服务器资源. 实例:适于小型应用. 长轮询:客 ...
- 推荐 15 个 Angular.js 应用扩展指令(参考应用)
几天前我们看到Angular 1.4.0发布了-一个以社团为驱动的发布版本涵盖了400多个GitHub的提交,增加了对特性的提升,比如动画,以及可用性. 官方新闻发布稿 覆盖了绝大部分,这同样值得放于 ...
- 3732 Ahui Writes Word
// N个物品 放进容量为C的背包里面 要求价值最大// 一看 第一反应是0 1背包 不过 N=100000 C=10000// 注意到 v,c在 10以内// 那么 最多就100种组合了 然后就转化 ...
- 【转】TLB(Translation Lookaside Buffers,TLB)的作用
原文网址:http://sdnydubing.blog.163.com/blog/static/137470570201122810503396/ 从虚拟地址到物理地址的转换过程可知:使用一级页表进行 ...