您好,登录后才能下订单哦!
本篇内容介绍了“Spark环境搭建与测试方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
官方推荐:
Spark runs on Java 6+, Python 2.6+ and R 3.1+. For the Scala API, Spark 1.4.0 uses Scala 2.10. You will need to use a compatible Scala version (2.10.x).
scala2.11.x需要下载额外的spark支持包
本机环境:
ubuntu14.04 + jdk1.8 + python2.7 + scala2.10.5 + hadoop2.6.0 + spark1.4.0
下载scala,下载地址为:http://www.scala-lang.org/download/2.10.5.html#Other_resources
上传scala安装包 并解压
配置环境变量,vim /etc/profile添加如下:
export JAVA_HOME=/usr/local/java/jdk1.8.0_45 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export HADOOP_HOME=/home/nob/opt/hadoop-2.6.0 export SCALA_HOME=/home/nob/opt/scala-2.10.5 export SPARK_HOME=/home/nob/opt/spark-1.4.0-bin-hadoop2.6 export PATH=${JAVA_HOME}/bin:${HADOOP_HOME}/bin:${SCALA_HOME}/bin:${SPARK_HOME}/bin:$PATH
source /etc/profile后,输入scala -version可以看到版本信息
下载解压到:/home/nob/opt/spark-1.4.0-bin-hadoop2.6
配置运行环境,编辑spark-env.sh
nob@nobubuntu:~/opt/spark-1.4.0-bin-hadoop2.6$ vim conf/spark-env.sh export JAVA_HOME=/usr/local/java/jdk1.8.0_45 export SCALA_HOME=/home/nob/opt/scala-2.10.5 export HADOOP_HOME=/home/nob/opt/hadoop-2.6.0 export HADOOP_CONF_DIR=/home/nob/opt/hadoop-2.6.0/etc/hadoop export SPARK_MASTER_IP=nobubuntu export SPARK_WORKER_MEMORY=512M
SPARK_MASTER_IP为master节点的ip或hostname
nob@nobubuntu:~/opt/spark-1.4.0-bin-hadoop2.6$ sbin/start-all.sh starting org.apache.spark.deploy.master.Master, logging to /data/server/spark-1.4.0-bin-hadoop2.6/sbin/../logs/spark-nob-org.apache.spark.deploy.master.Master-1-nobubuntu.out nobubuntu: org.apache.spark.deploy.worker.Worker running as process 10297. Stop it first. nob@nobubuntu:~/opt/spark-1.4.0-bin-hadoop2.6$ jps 8706 DataNode 9062 ResourceManager 10775 Jps 9192 NodeManager 10569 Master 10297 Worker 8572 NameNode 8911 SecondaryNameNode nob@nobubuntu:~/opt/spark-1.4.0-bin-hadoop2.6$
jps可以看到Master和Worker进程,访问http://nobubuntu:8080/可以看到运行的详细信息
使用PySpark shell, 在Spark解压的源码路径下,运行
bin/pyspark
在提示符下,依次输入下面的命令
>>> lines = sc.textFile("README.md") >>> lines.count() >>> lines.first()
经过上面的运行,发现shell环境中打印的日志过多, 为此我需要调整以下日志的级别.为此,我在
conf目录下面新建一个文件log4j.properties,它是log4j.properties.template的副本,将其中
下面的行
log4j.rootCategory=INFO, console
改为
log4j.rootCategory=WARN, console
然后重新打开shell,发现调试信息少了很多
打开Scala版本的shell,运行
bin/spark-shell scala> val lines = sc.textFile("README.md") scala> lines.cout() scala> lines.first()
一个独立的应用,这里演示python,当时你也可以使用scala或者java都很简单,自官方文档
"""SimpleApp.py""" from pyspark import SparkContext logFile = "YOUR_SPARK_HOME/README.md" # Should be some file on your system sc = SparkContext("local", "Simple App") logData = sc.textFile(logFile).cache() numAs = logData.filter(lambda s: 'a' in s).count() numBs = logData.filter(lambda s: 'b' in s).count() print "Lines with a: %i, lines with b: %i" % (numAs, numBs)
使用 bin/spark-submit来执行上面的脚本
# Use spark-submit to run your application $ YOUR_SPARK_HOME/bin/spark-submit --master local[4] SimpleApp.py ... Lines with a: 46, Lines with b: 23
“Spark环境搭建与测试方法”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。