在集群上的pyspark中配置ipython notebook,实现网页远程调用。
2018-03-11 16:20
381 查看
接着之前的在服务器上远程网页调用python,现实中,大数据集无法单服务器处理时,需要调用集群的pyspark,又需要图形显示和脚本运行调试等的方便性,这时也可以类似服务器远程使用ipython notebook一样。
前提是集群上已经安装了pyspark和ipython notebook,我自己的是已经安装了Anaconda。在此只说配置。
这应该已经创建了配置文件目录~/.ipython/profile_pyspark/ 并且生成包含ipython_notebook_config.py的3个文件(有的会没有该文件,就自行创建即可)。
把生成的密文复制下来
进行如下修改:
添加内容如下(路径根据自己集群路径修改哈):
然后source ~/.bashrc,就可以通过启动 pyspark 来启动 IPython Notebook 了.
或者(若没有对默认配置修改,调用自己创建的配置就只能)
注:ipython notebook 都可用jupyter notebook 替换。
不推荐用root用户启动,如果非要用root用户启动需加–allow-root
或者
启动jupyter notebook后,在远程电脑中打开浏览器输入10.43.83.196:8542(ip和端口号)就可以远程访问
报错的最后反馈信息是
网上查了好久,有人说是配置问题,有人说是java版本问题。一直没有找到解决办法。谁有解决的经验欢迎留言
另外,成功的是python3版本,失败的是python2,系统都是centos6.5。集群版本也一样cdh5.9,有些组建的配置内容不一样。节点数目和配置不一样。
可以参考的一些资料:
http://blog.csdn.net/u012432611/article/details/51225555
http://blog.csdn.net/lsshlsw/article/details/49953455
http://blog.csdn.net/sadfasdgaaaasdfa/article/details/47090513
http://blog.csdn.net/dataningwei/article/details/64583468
https://www.cnblogs.com/NaughtyBaby/p/5469469.html
前提是集群上已经安装了pyspark和ipython notebook,我自己的是已经安装了Anaconda。在此只说配置。
基本安装步骤:
1、首先创建一个与PySpark一起使用的IPython配置文件。
ipython profile create pyspark
这应该已经创建了配置文件目录~/.ipython/profile_pyspark/ 并且生成包含ipython_notebook_config.py的3个文件(有的会没有该文件,就自行创建即可)。
2、 生成密码
直接输入命令ipython,打开ipython,创建一个密文的密码:In [1]: from notebook.auth import passwd In [2]: passwd() Enter password: Verify password: sha1:****
把生成的密文复制下来
3、修改默认配置文件ipython_notebook_config.py
编辑文件vim ~/.ipython/profile_pyspark/ipython_notebook_config.py
进行如下修改:
c.NotebookApp.ip='*' c.NotebookApp.password = 'sha1:****刚才复制的那个密文' c.NotebookApp.open_browser = False c.NotebookApp.port =8542 #随便指定一个端口
4、创建~/.ipython/profile_pyspark/startup/00-pyspark-setup.py
文件内容如下:import os import sys spark_home = os.environ.get('SPARK_HOME', None) if not spark_home: raise ValueError('SPARK_HOME environment variable is not set') sys.path.insert(0, os.path.join(spark_home, 'python')) sys.path.insert(0, os.path.join(spark_home, 'python/lib/py4j-0.8.1-src.zip'))#py4j-0.8.1-src.zip的版本自己切换目录ls查询后,做相应修改 execfile(os.path.join(spark_home, 'python/pyspark/shell.py'))
5、设置环境变量
vim ~/.bashrc
添加内容如下(路径根据自己集群路径修改哈):
export SPARK_HOME='/opt/cloudera/parcels/CDH/lib/spark' export PYSPARK_SUBMIT_ARGS='--master yarn --deploy-mode client --num-executors 24 --executor-memory 10g --executor-cores 5' export PYSPARK_DRIVER_PYTHON=ipython export PYSPARK_DRIVER_PYTHON_OPTS="notebook" (去处此参数,可调用 ipython)
然后source ~/.bashrc,就可以通过启动 pyspark 来启动 IPython Notebook 了.
6、启动使用
直接输入 pyspark或者(若没有对默认配置修改,调用自己创建的配置就只能)
ipython notebook --profile=pyspark --config=/home/dgbd/.ipython/profile_pyspark/ipython_notebook_config.py
注:ipython notebook 都可用jupyter notebook 替换。
不推荐用root用户启动,如果非要用root用户启动需加–allow-root
ipython notebook --allow-root --config=配置文件路径
或者
jupyter notebook --allow-root --config=配置文件路径
启动jupyter notebook后,在远程电脑中打开浏览器输入10.43.83.196:8542(ip和端口号)就可以远程访问
其他问题:
我自己在两个集群上都做了配置(1、公司自己集群,2、项目离线环境集群)1成功了,2老是失败。报错的最后反馈信息是
Exception:Java gateway process exited before sending the driver its port number
网上查了好久,有人说是配置问题,有人说是java版本问题。一直没有找到解决办法。谁有解决的经验欢迎留言
另外,成功的是python3版本,失败的是python2,系统都是centos6.5。集群版本也一样cdh5.9,有些组建的配置内容不一样。节点数目和配置不一样。
可以参考的一些资料:
http://blog.csdn.net/u012432611/article/details/51225555
http://blog.csdn.net/lsshlsw/article/details/49953455
http://blog.csdn.net/sadfasdgaaaasdfa/article/details/47090513
http://blog.csdn.net/dataningwei/article/details/64583468
https://www.cnblogs.com/NaughtyBaby/p/5469469.html
相关文章推荐
- 12、 IPython&Jupyter Notebook 的快捷键、Magic 命令以及远程服务器的调用
- 远程链接Ipython Notebook配置
- linux配置远程ipython notebook
- mac本机pySpark配置并且能在本地远程调用服务器Spark以及文件
- ZooKeeper伪分布集群安装及使用 RMI+ZooKeeper实现远程调用框架
- Ubuntu系统下IPython Notebook的远程访问配置
- bbossgroups 2.0-RC 通过JGroups来实现集群节点间远程服务调用,或者多服务器之间远程服务调用
- 在pyspark上配置ipython notebook
- 安装配置远程jupyter notebook(原ipython notebook)
- 安装配置远程jupyter notebook(原ipython notebook)
- spark2.0下实现IPYTHON3.5开发,兼配置jupyter,notebook降低python开发难度
- 安装配置远程ipython notebook
- Ubuntu系统下IPython Notebook的远程访问配置
- C#实现通过程序自动抓取远程Web网页信息
- 利用Castle IOC实现远程调用的接口统一(上)
- 用ASP实现远程抓取网页到本地数据库
- 如何实现JNDI远程调用SessionBean(EJB3)
- C#实现通过程序自动抓取远程Web网页信息
- C#实现通过程序自动抓取远程Web网页信息
- C#实现通过程序自动抓取远程Web网页信息(转载)