莆仙生活网
当前位置: 莆仙生活网 > 知识库 >

pyspark

时间:2024-09-28 21:34:55 编辑:莆仙君

如何在ipython或python中使用Spark

  在ipython中使用spark
  说明:
  spark 1.6.0
  scala 2.10.5
  spark安装路径是/usr/local/spark;已经在.bashrc中配置了SPARK_HOME环境变量。
  方法一
  /usr/local/Spark/bin/pyspark默认打开的是Python,而不是ipython。通过在pyspark文件中添加一行,来使用ipython打开。
  cp pyspark ipyspark
  vi ipyspark
  # 在最前面添加
  IPYTHON=1
  # 启动
  ipyspark
  方法二:
  通过为spark创建一个ipython 配置的方式实现。
  # 为spark创建一个ipython 配置
  ipython profile create spark
  # 创建启动配置文件
  cd ~/.config/ipython/profile_spark/startup
  vi 00-pyspark-setup.py
  在00-pyspark-setup.py中添加如下内容:
  import os
  import sys
  # Configure the environment
  if 'SPARK_HOME' not in os.environ:
  os.environ['SPARK_HOME'] = '/srv/spark'
  # 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", "pyspark"))
  sys.path.insert(0, os.path.join(SPARK_HOME, "python", "lib", "py4j-0.9-src.zip"))
  sys.path.insert(0, os.path.join(SPARK_HOME, "python"))
  启动ipython
  ipython –profile spark
  测试程序
  在ipython中输入一下命令,如果下面的程序执行完后输出一个数字,说明正确。
  from pyspark import SparkContext
  sc = SparkContext( 'local', 'pyspark')
  def isprime(n):
  """
  check if integer n is a prime
  """
  # make sure n is a positive integer
  n = abs(int(n))
  # 0 and 1 are not primes
  if n < 2:
  return False
  # 2 is the only even prime number
  if n == 2:
  return True
  # all other even numbers are not primes
  if not n & 1:
  return False
  # for all odd numbers
  for x in range(3, int(n**0.5)+1, 2):
  if n % x == 0:
  return False
  return True
  # Create an RDD of numbers from 0 to 1,000,000
  nums = sc.parallelize(xrange(1000000))
  # Compute the number of primes in the RDD
  print 逗Result: 地, nums.filter(isprime).count()
  方法三
  将上面的程序放入test.py文件,执行命令python test.py。发现错误。因为没有将pyspark路径加入PYTHONPATH环境变量。
  在~/.bashrc或/etc/profile中添加如下内容:
  # python can call pyspark directly
  export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/pyspark:$SPARK_HOME/python/lib/py4j-0.9-src.zip:$PYTHONPATH
  执行如下命令:
  # 使配置生效
  source ~/.bashrc
  # 测试程序
  python test.py
  此时,已经能够运行了。


在windows中spark的本地模式如何配置

2.1.2 在Windows上安装与配置Spark

本节介绍在Windows系统上安装Spark的过程。在Windows环境下需要安装Cygwin模拟Linux的命令行环境来安装Spark。

(1)安装JDK

相对于Linux、Windows的JDK安装更加自动化,用户可以下载安装Oracle JDK或者OpenJDK。只安装JRE是不够的,用户应该下载整个JDK。

安装过程十分简单,运行二进制可执行文件即可,程序会自动配置环境变量。

(2)安装Cygwin

Cygwin是在Windows平台下模拟Linux环境的一个非常有用的工具,只有通过它才可以在Windows环境下安装Hadoop和Spark。具体安装步骤如下。

1)运行安装程序,选择install from internet。

2)选择网络最好的下载源进行下载。

3)进入Select Packages界面(见图2-2),然后进入Net,选择openssl及openssh。因为之后还是会用到ssh无密钥登录的。

另外应该安装“Editors Category”下面的“vim”。这样就可以在Cygwin上方便地修改配置文件。

最后需要配置环境变量,依次选择“我的电脑”→“属性”→“高级系统设置”→“环境变量”命令,更新环境变量中的path设置,在其后添加Cygwin的bin目录和Cygwin的usr\bin两个目录。

(3)安装sshd并配置免密码登录

1)双击桌面上的Cygwin图标,启动Cygwin,执行ssh-host-config -y命令,出现如图2-3所示的界面。

2)执行后,提示输入密码,否则会退出该配置,此时输入密码和确认密码,按回车键。最后出现Host configuration finished.Have fun!表示安装成功。

3)输入net start sshd,启动服务。或者在系统的服务中找到并启动Cygwin sshd服务。

注意,如果是Windows 8操作系统,启动Cygwin时,需要以管理员身份运行(右击图标,选择以管理员身份运行),否则会因为权限问题,提示“发生系统错误5”。

(4)配置SSH免密码登录

1)执行ssh-keygen命令生成密钥文件,如图2-4所示。

2)执行此命令后,在你的Cygwin\home\用户名路径下面会生成.ssh文件夹,可以通过命令ls -a /home/用户名 查看,通过ssh -version命令查看版本。

3)执行完ssh-keygen命令后,再执行下面命令,生成authorized_keys文件。

cd ~/.ssh/
cp id_dsa.pub authorized_keys
这样就配置好了sshd服务。

(5)配置Hadoop

修改和配置相关文件与Linux的配置一致,读者可以参照上文Linux中的配置方式,这里不再赘述。

(6)配置Spark

修改和配置相关文件与Linux的配置一致,读者可以参照上文Linux中的配置方式,这里不再赘述。

(7)运行Spark

1)Spark的启动与关闭

①在Spark根目录启动Spark。

./sbin/start-all.sh
②关闭Spark。

./sbin/stop-all.sh
2)Hadoop的启动与关闭

①在Hadoop根目录启动Hadoop。

./sbin/start-all.sh
②关闭Hadoop。

./sbin/stop-all.sh
3)检测是否安装成功

正常状态下会出现如下内容。

-bash-4.1# jps
23526 Jps
2127 Master
7396 NameNode
7594 SecondaryNameNode
7681 ResourceManager
1053 DataNode
31935 NodeManager
1405 Worker
如缺少进程请到logs文件夹下查看相应日志,针对具体问题进行解决。