标签:file 包管理 local virt 基础 alt 管理器 mac 安装jdk
这里面我们介绍一下spark的安装,并通过一个python的例子来简单的体会一下spark的使用。
安装环境:mac 10.13.6,spark版本:2.3.1,python版本:3.6.5
brew install apache-spark
pip install pyspark
然后我们访问:http://localhost:8080/,就可以看到集群相关的信息。
再次访问http://localhost:8080/,可以在workers里面看到我们启动的worker信息。
from pyspark import SparkContext, SparkConf conf = SparkConf().setAppName("FirstApp").setMaster("spark://CNhuxhu.local:7077") sc = SparkContext(conf=conf) lines = sc.textFile(‘/usr/local/Cellar/apache-spark/2.3.1/README.md‘) print(‘counts = ‘, lines.count())
spark-submit --master local[4] simpleSpark.py
可以在控制台看到如下的打印信息:
counts = 103
py4j.protocol.Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD.collectAndServe.
这是由于我们的mac本地安装的java版本有jdk8和jdk10,但是默认的是jdk10。spark2.3.1要求的jdk版本是1.8,所以修改系统的jdk版本问题解决。vim ~/.zshrc,添加以下内容
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home
usr/libexec/java_home -V
可以查看系统安装的所有java以及JAVA_HOME的信息
Matching Java Virtual Machines (2): 10.0.2, x86_64: "Java SE 10.0.2" /Library/Java/JavaVirtualMachines/jdk-10.0.2.jdk/Contents/Home 1.8.0_162, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home /Library/Java/JavaVirtualMachines/jdk-10.0.2.jdk/Contents/Home
项目是由maven构建的,在pom.xml添加所需的依赖。
<dependency> <!-- Spark dependency --> <groupId>org.apache.spark</groupId> <artifactId>spark-sql_2.11</artifactId> <version>2.3.1</version> </dependency>
我们编写的java代码如下:
package com.linux.huhx; import org.apache.spark.sql.Dataset; import org.apache.spark.sql.SparkSession; /** * user: huxhu * date: 2018/8/11 3:40 PM **/ public class SimpleSpark { public static void main(String[] args) { String logFile = "/usr/local/Cellar/apache-spark/2.3.1/README.md"; // Should be some file on your system SparkSession spark = SparkSession.builder().appName("Simple Application").getOrCreate(); Dataset<String> logData = spark.read().textFile(logFile).cache(); long numAs = logData.filter(s -> s.contains("a")).count(); long numBs = logData.filter(s -> s.contains("b")).count(); System.out.println("Lines with a: " + numAs + ", lines with b: " + numBs); spark.stop(); } }
mvn package打包项目,在target目录下生成可执行的sparkLearn-1.0-SNAPSHOT.jar文件。最后执行spark-submit命令
spark-submit --class "com.linux.huhx.SimpleSpark" --master local[4] target/sparkLearn-1.0-SNAPSHOT.jar
可以在控制台看到如下的日志打印
Lines with a: 61, lines with b: 30
标签:file 包管理 local virt 基础 alt 管理器 mac 安装jdk
原文地址:https://www.cnblogs.com/huhx/p/firstpythonsparkdemo.html