本问题来自阿里云开发者社区的【11大垂直技术领域开发者社群】。https://developer.aliyun.com/article/706511 点击链接欢迎加入感兴趣的技术领域群。
Spark的安装分为几种模式,其中一种是本地运行模式,只需要在单节点上解压即可运行,这种模式不需要依赖Hadoop 环境。 运行 spark-shell 本地模式运行spark-shell非常简单,只要运行以下命令即可,假设当前目录是$SPARK_HOME $ MASTER=local $ bin/spark-shell MASTER=local就是表明当前运行在单机模式。如果一切顺利,将看到下面的提示信息: Created spark context.. Spark context available as sc. 这表明spark-shell中已经内置了Spark context的变量,名称为sc,我们可以直接使用该变量进行后续的操作。 spark-shell 后面设置 master 参数,可以支持更多的模式, 我们在sparkshell中运行一下最简单的例子,统计在README.md中含有Spark的行数有多少,在spark-shell中输入如下代码: scala>sc.textFile("README.md").filter(_.contains("Spark")).count 如果你觉得输出的日志太多,你可以从模板文件创建 conf/log4j.properties : $ mv conf/log4j.properties.template conf/log4j.properties 然后修改日志输出级别为WARN: log4j.rootCategory=WARN, console 如果你设置的 log4j 日志等级为 INFO,则你可以看到这样的一行日志 INFO SparkUI: Started SparkUI at http://10.9.4.165:4040,意思是 Spark 启动了一个 web 服务器,你可以通过浏览器访问 http://10.9.4.165:4040来查看 Spark 的任务运行状态等信息。 pyspark 运行 bin/pyspark 的输出为: $ bin/pyspark Python 2.7.6 (default, Sep 9 2014, 15:04:36) [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin Type "help", "copyright", "credits" or "license" for more information. Spark assembly has been built with Hive, including Datanucleus jars on classpath Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 15/03/30 15:19:07 WARN Utils: Your hostname, june-mac resolves to a loopback address: 127.0.0.1; using 10.9.4.165 instead (on interface utun0) 15/03/30 15:19:07 WARN Utils: Set SPARK_LOCAL_IP if you need to bind to another address 15/03/30 15:19:07 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable Welcome to ____ __ / __/__ ___ _____/ /__ _\ \/ _ \/ _ / __/ _/ /__ / .__/\_,_/_/ /_/\_\ version 1.3.0 /_/ Using Python version 2.7.6 (default, Sep 9 2014 15:04:36) SparkContext available as sc, HiveContext available as sqlCtx. 你也可以使用 IPython 来运行 Spark: IPYTHON=1 ./bin/pyspark 如果要使用 IPython NoteBook,则运行: IPYTHON_OPTS="notebook" ./bin/pyspark 从日志可以看到,不管是 bin/pyspark 还是 bin/spark-shell,他们都有两个内置的变量:sc 和 sqlCtx。 SparkContext available as sc, HiveContext available as sqlCtx sc 代表着 Spark 的上下文,通过该变量可以执行 Spark 的一些操作,而 sqlCtx 代表着 HiveContext 的上下文。 spark-submit 在Spark1.0之后提供了一个统一的脚本spark-submit来提交任务。 对于 python 程序,我们可以直接使用 spark-submit: $ mkdir -p /usr/lib/spark/examples/python$ tar zxvf /usr/lib/spark/lib/python.tar.gz -C /usr/lib/spark/examples/python$ ./bin/spark-submit examples/python/pi.py 10 对于 Java 程序,我们需要先编译代码然后打包运行: $ spark-submit --class "SimpleApp" --master local[4] simple-project-1.0.jar Spark 运行模式 Spark 的运行模式多种多样、灵活多变,部署在单机上时,既可以用本地模式运行,也可以用伪分布式模式运行,而当以分布式集群的方式部署时,也有众多的运行模式可以供选择,这取决于集群的实际情况,底层的资源调度既可以依赖于外部的资源调度框架,也可以使用 Spark 内建的 Standalone 模式。对于外部资源调度框架的支持,目前的实现包括相对稳定的 Mesos 模式,以及还在持续开发更新中的 Hadoop YARN 模式。 在实际应用中,Spark 应用程序的运行模式取决于传递给 SparkContext 的 MASTER 环境变量的值,个别模式还需要依赖辅助的程序接口来配合使用,目前所支持的 MASTER 环境变量由特定的字符串或 URL 所组成。例如: Local[N]:本地模式,使用 N 个线程。 Local Cluster[Worker,core,Memory]:伪分布式模式,可以配置所需要启动的虚拟工作节点的数量,以及每个工作节点所管理的 CPU 数量和内存尺寸。 Spark://hostname:port:Standalone 模式,需要部署 Spark 到相关节点,URL 为 Spark Master 主机地址和端口。 Mesos://hostname:port:Mesos 模式,需要部署 Spark 和 Mesos 到相关节点,URL 为 Mesos 主机地址和端口。 YARN standalone/Yarn cluster:YARN 模式一,主程序逻辑和任务都运行在 YARN 集群中。 YARN client:YARN 模式二,主程序逻辑运行在本地,具体任务运行在 YARN 集群中。 运行 Spark 通过命令行运行 Spark ,有两种方式:bin/pyspark 和 bin/spark-shell。 运行 bin/spark-shell 输出的日志如下: $ ./bin/spark-shell --master local 你可以从模板文件创建 conf/log4j.properties ,然后修改日志输出级别: mv conf/log4j.properties.template conf/log4j.properties 修改 log4j.rootCategory 的等级为输出 WARN 级别的日志: log4j.rootCategory=WARN, console 如果你设置的 log4j 日志等级为 INFO,则你可以看到这样的一行日志 INFO SparkUI: Started SparkUI at http://10.9.4.165:4040 ,意思是 Spark 启动了一个 web 服务器,你可以通过浏览器访问 http://10.9.4.165:4040 来查看 Spark 的任务运行状态。 从日志可以看到,不管是 bin/pyspark 还是 bin/spark-shell,他们都有两个内置的变量:sc 和 sqlCtx。 SparkContext available as sc, HiveContext available as sqlCtx sc 代表着 Spark 的上下文,通过该变量可以执行 Spark 的一些操作,而 sqlCtx 代表着 HiveContext 的上下文。
“答案来源于网络,供您参考” 希望以上信息可以帮到您!
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。