一、安装ipython

下载ipython, https://pypi.python.org/packages/source/i/ipython/ipython-2.2.0.tar.gz#md5=b91d3724f655a8e16d022772f696cfd5

cd /app/softwares/ipython
tar -zxvf ipython-2.2.0.tar.gz
cd ipython-2.2.0
python2.7 setup.py install
ln -s /usr/local/python2.7/bin/ipython /usr/bin/ipython

二、配置ipython notebook

ipython profile create nbserver
cd ~/.ipython/profile_nbserver/ openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mycert.pem -out mycert.pem

在出现的提示中进行信息填写:

Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:Guangdong
Locality Name (eg, city) [Default City]:Shenzhen
Organization Name (eg, company) [Default Company Ltd]:*
Organizational Unit Name (eg, section) []:ShuJuPingTaiBu
Common Name (eg, your name or your server's hostname) []:*
Email Address []:*

生成加密的密码:

python2.7 -c "import IPython;print IPython.lib.passwd()"

Enter password:
Verify password:
sha1:5ba5d1a5aa4f:6edaa277f374497b1d026b799b473b3ef7f8c636

ipython profile create nbserver

vi2 ipython_notebook_config.py

# This starts plotting support always with matplotlib
c.IPKernelApp.pylab = 'inline' # You must give the path to the certificate file. # If using a Linux VM:
c.NotebookApp.certfile = u'/root/.ipython/profile_nbserver/mycert.pem' # Create your own password as indicated above
c.NotebookApp.password = u'sha1:5ba5d1a5aa4f:6edaa277f374497b1d026b799b473b3ef7f8c636' # Network and browser details. We use a fixed port (9999) so it matches
# our Windows Azure setup, where we've allowed traffic on that port c.NotebookApp.ip = '*'
c.NotebookApp.port = 9999
c.NotebookApp.open_browser = False

启动ipython notebook server

 ipython notebook --profile=nbserver

安装pyzmq,需要安装zeromq

下载zeromq,http://download.zeromq.org/zeromq-4.0.4.tar.gz

./configure
make && make install

下载pyzmq,https://pypi.python.org/packages/source/p/pyzmq/pyzmq-14.3.1.tar.gz#md5=7196b4a6fbf98022f17ffa924be3d68d

ln -s /usr/local/lib/libzmq.so.3 /usr/local/include/
python2.7 setup.py install --zmq=/usr/local/

安装Jinja2, 需要安装distribute

下载jinja2,https://pypi.python.org/packages/source/J/Jinja2/Jinja2-2.7.3.tar.gz

python2.7 setup.py install

下载distribute,https://pypi.python.org/packages/source/d/distribute/distribute-0.7.3.zip#md5=c6c59594a7b180af57af8a0cc0cf5b4a

python2.7 setup.py install

安装makeupsafe,https://pypi.python.org/packages/source/M/MarkupSafe/MarkupSafe-0.23.tar.gz

python2.7 setup.py install

安装tornado,需要安装backports.ssl_match_hostname和certifi

https://pypi.python.org/packages/source/t/tornado/tornado-4.0.2.tar.gz
https://pypi.python.org/packages/source/b/backports.ssl_match_hostname/backports.ssl_match_hostname-3.4.0.2.tar.gz
https://pypi.python.org/packages/source/c/certifi/certifi-14.05.14.tar.gz

安装sqlite3

http://blog.csdn.net/gl1987807/article/details/7253021
安装 sqlite-devel.x86_64

yum install sqlite-devel.x86_64

安装sqlite-devel之后,仍然报sqlite3模块不存在的问题,解决该问题,参考http://stackoverflow.com/questions/1210664/no-module-named-sqlite3
重新编译python2.7.5

cp /app/softwares/python/Python-2.7.5/build/lib.linux-x86_64-2.7/_sqlite3.so /usr/local/python2.7/lib/python2.7/sqlite3/

安装MathJax,https://github.com/mathjax/MathJax/archive/2.4.0.tar.gz

cd /app/softwares/ipython
python2.7 -m IPython.external.mathjax MathJax-2.4.0.tar.gz

测试 ipython notebook使用,参考示例:http://www.cnblogs.com/cbscan/p/3545084.html

from IPython.display import Latex
Latex(r"$\sqrt{x^2+y^2}$") Out[1]:
$\sqrt{x^2+y^2}$ %load_ext sympyprinting
from sympy import *
x, y = symbols("x,y")
sqrt(x**2+y**2) ImportError: No module named sympy 

下载安装sympy,https://pypi.python.org/packages/source/s/sympy/sympy-0.7.5.tar.gz

from sympy import init_printing ;
init_printing()
from sympy import *
x, y = symbols("x,y")
sqrt(x**2+y**2) Out[7]:
$$\sqrt{x^{2} + y^{2}}$$
%pylab inline

plot(random.randn(100));

ImportError: No module named matplotlib

下载安装matplotlib,https://pypi.python.org/packages/source/m/matplotlib/matplotlib-1.4.0.tar.gz#md5=1daf7f2123d94745feac1a30b210940c

安装新版freetype,http://download.savannah.gnu.org/releases/freetype/freetype-2.5.3.tar.gz

安装新版numpy
https://pypi.python.org/packages/source/n/numpy/numpy-1.9.0.tar.gz#md5=510cee1c6a131e0a9eb759aa2cc62609

https://pypi.python.org/packages/source/m/mock/mock-1.0.1.tar.gz#md5=c3971991738caa55ec7c356bbc154ee2

https://pypi.python.org/packages/source/n/nose/nose-1.3.4.tar.gz#md5=6ed7169887580ddc9a8e16048d38274d

https://pypi.python.org/packages/source/p/pyparsing/pyparsing-2.0.2.tar.gz#md5=b170c5d153d190df1a536988d88e95c1

https://pypi.python.org/packages/source/p/python-dateutil/python-dateutil-2.2.tar.gz#md5=c1f654d0ff7e33999380a8ba9783fd5c

https://pypi.python.org/packages/source/s/six/six-1.8.0.tar.gz#md5=1626eb24cc889110c38f7e786ec69885

三、在ipython notebook中整合spark

在/etc/profile中添加

export PYTHONPATH=$SPARK_HOME/python/:$PYTHONPATH
export PYTHONPATH=$SPARK_HOME/python/lib/py4j-0.8.2.1-src.zip:$PYTHONPATH
export PYSPARK_PYTHON=python2.7

在python中测试:

>>> from pyspark import SparkConf, SparkContext
>>> conf = SparkConf().setMaster("spark://ip:19002").setAppName("pyspark")
>>> sc = SparkContext(conf = conf)
>>> data = [1, 2, 3, 4, 5]
>>> distData = sc.parallelize(data, 1)
>>> distData
ParallelCollectionRDD[0] at parallelize at PythonRDD.scala:315
>>> distData.count()
>>> distData.first()

另外,也可以使用下述命令导入spark模块,并初始化SparkContext

execfile("/app/spark/python/pyspark/shell.py")

之后可直接使用sc,测试如下:

file = sc.textFile("/tmp/test_spark/input")
data = file.flatMap(lambda line: line.split(" "))
data.collect()

  

源码安装ipython,并在ipython中整合spark的更多相关文章

  1. mysql-5.5.28源码安装过程中错误总结

    介绍一下关于mysql-5.5.28源码安装过程中几大错误总结,希望此文章对各位同学有所帮助.系统centOS 6.3 mini (没有任何编译环境)预编译环境首先装了众所周知的 cmake(yum ...

  2. Linux系统源码安装过程中的prefix选项

    在linux和unix环境中,源码安装是最常用的软件安装方式,一些软件除了提供源码外,也提供各种发行版的二进制安装包(如基于redhat包管理工具的rpm包),但强烈建议使用源码安装方式.原因是:(1 ...

  3. Linux系统源码安装软件过程中configure选项-prefix的作用

    在linux和unix环境中,源码安装是最常用的软件安装方式,一些软件出了提供源码外,也提供各种发行版的二进制安装包(如基于redhat包管理工具的rpm包),但强烈建议使用源码安装方式. 在linu ...

  4. Linux中源码安装编译Vim

    Linux中源码安装编译Vim Linux下学习工作少不了编辑器,Vim能使你的工作效率成倍的提高.在Ubuntu上安装vim使用命令直接安装很简单.但有时还是需要自己手动编译安装.例如: vim中的 ...

  5. centos7 中源码安装nginx

    使用nginx有一段时间了,还是有很多东西不懂的,在这里做一下自己学习过程中的一些整理,能使自己得到提升. 1.环境:centos7 1511  最小化安装 2.下载nginx,可以在系统中下载,也可 ...

  6. Linux 中mysql安装(源码安装方式)

    本文是介绍以源码安装的方式编译和安装Mysql 5.6(可以指定安装路径),也可以不采用源码安装方式,直接用安装包的方式. 源码安装方式慎用,容易报错. 1.卸载旧版本 rpm -qa | grep ...

  7. linux中的源码安装

    前两天自己在笔记本上装了CentOs版本的虚拟机,接着要装Python3,是源码安装的挺费劲,个人总结了一些源码安装的经验,今天在这里给大家分享一下. 1. 首先准备环境,安装必要的编译工具gcc g ...

  8. gdb源码安装过程中的问题:no termcap library found

    gdb使用源码安装的时候遇到错误:no termcap library found ./configure -->  make --> make install 解决办法,下载termca ...

  9. mono-3.4.0 源码安装时出现的问题 [do-install] Error 2 [install-pcl-targets] Error 1 解决方法

    Mono 3.4修复了很多bug,继续加强稳定性和性能(其实Mono 3.2.8 已经很稳定,性能也很好了),但是从http://download.mono-project.com/sources/m ...

随机推荐

  1. alert()与console.log()的区别

    [1]alert() [1.1]有阻塞作用,不点击确定,后续代码无法继续执行 [1.2]alert()只能输出string,如果alert输出的是对象会自动调用toString()方法 e.g. al ...

  2. 一起学微软Power BI系列-官方文档-入门指南(7)发布与共享-终结篇+完整PDF文档

    接触Power BI的时间也只有几个月,虽然花的时间不多,但通过各种渠道了解收集,谈不上精通,但对一些重要概念和细节还是有所了解.在整理官方文档的过程中,也熟悉和了解了很多概念.所以从前到后把微软官方 ...

  3. .NET平台开源项目速览(12)哈希算法集合类库HashLib

    .NET的System.Security.Cryptography命名空间本身是提供加密服务,散列函数,对称与非对称加密算法等功能.实际上,大部分情况下已经满足了需求,而且.NET实现的都是目前国际上 ...

  4. Java设计模式之建造者模式(Builder)

    前言: 最近一直在学习okHttp,也对其做了一些整理,okHttp和Retrofit结合大大加速我们的开发效率,源码里面采用了很多设计模式,今天我们来学习一下其中的设计模式之一建造者模式. 建造者模 ...

  5. android标题栏上面弹出提示框(二) PopupWindow实现,带动画效果

    需求:上次用TextView写了一个从标题栏下面弹出的提示框.android标题栏下面弹出提示框(一) TextView实现,带动画效果,  总在找事情做的产品经理又提出了奇葩的需求.之前在通知栏显示 ...

  6. CodeIgniter笔记-去掉index.php

    1.修改Apache 的配置文件把LoadModule rewrite_module modules/mod_rewrite.so该行前的#去掉. 2.将 AllowOverride None ,修改 ...

  7. scikit-learn 线性回归算法库小结

    scikit-learn对于线性回归提供了比较多的类库,这些类库都可以用来做线性回归分析,本文就对这些类库的使用做一个总结,重点讲述这些线性回归算法库的不同和各自的使用场景. 线性回归的目的是要得到输 ...

  8. T-SQL:毕业生出门需知系列(六)

    第6课 用通配符进行过滤 6.1 LIKE 操作符 前面介绍的所有操作符都是针对已知值进行过滤.但是,这种过滤方法并不是任何时候都好用. 例如:怎样搜索产品名中包含文本 bean bag 的所有产品? ...

  9. 附录C 编译安装Hive

    如果需要直接安装Hive,可以跳过编译步骤,从Hive的官网下载编译好的安装包,下载地址为http://hive.apache.org/downloads.html . C.1  编译Hive C.1 ...

  10. 原创:微信小程序源码解说:石头剪刀布(附源码下载)

    我的博客:来源链接 昨天看有个石头剪刀布的练习,就拿出来做了一下,布局的代码浪费了很多时间,果然CSS这块的还不是很熟练,下面直接上图上代码了. JS: var numAi = 0 var timer ...