1、安装spark(Hadoop、JAVA JDK已安装)
命令如下:
sudo tar -zxf /home/ra/spark-1.6.2-bin-without-hadoop.tgz -C /usr/local/
cd /usr/local
sudo mv ./spark-1.6.2-bin-without-hadoop/ ./spark
sudo chown -R ra:ra ./spark
安装后,修改Spark的配置文件spark-env.sh
cp /usr/local/spark/conf/spark-env.sh.template /usr/local/spark/conf/spark-env.sh
sudo gedit /usr/local/spark/conf/spark-env.sh
编辑spark-env.sh文件,在第一行添加以下配置信息:
export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath)
配置完成后就可以直接使用,通过运行Spark自带的示例,验证Spark是否安装成功。
cd /usr/local/spark
bin/run-example SparkPi 2>&1 | grep “Pi is”#通过 grep 命令进行过滤
2、使用 Spark Shell 编写代码
(1)启动Spark Shell
bin/spark-shell
启动spark-shell后,会自动创建名为sc的spark context对象和名为sqlContext的sql context对象,如图:
(2)加载text文件
spark创建sc,可以加载本地文件和HDFS文件创建RDD。下面用Spark自带的本地文件README.md文件测试。
val textFile = sc.textFile(“file:///usr/local/spark/README.md”)
(3)简单RDD操作具体命令及运行截图如下
(4)退出spark
输入exit或者:quit
3、独立应用程序编程
(1)Scala独立应用编程
安装sbt,下载sbt-launch.jar
进行如下操作
sudo mkdir /usr/local/sbt
sudo chown -R sun /usr/local/sbt # 此处的sun 为我电脑虚拟机用户名
cd /usr/local/sbt
执行如下命令将sbt-launch.jar拷贝至 /usr/local/sbt 中
cp ~/下载/sbt-launch.jar .
接着在 /usr/local/sbt 中创建 sbt 脚本,getdit ./sbt,添加如下内容:
#!/bin/bash
SBT_OPTS="-Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -X:MaxPermSize=256M"
java $SBT_OPTS -jar dirname $0
/sbt-launch.jar “$@”
保存后,为 ./sbt 脚本增加可执行权限:
chmod u+x ./sbt
最后运行如下命令,检验 sbt 是否可用
./sbt sbt-version,需要等待下载
如下信息显示成功:
(2)Scala应用程序代码
在终端中执行如下命令创建一个文件夹 sparkapp 作为应用程序根目录:
cd ~ # 进入用户主文件夹
mkdir ./sparkapp # 创建应用程序根目录
mkdir -p ./sparkapp/src/main/scala # 创建所需的文件夹结构
在./sparkapp/src/main/scala下建立一个名为SimpleApp.scala 的文件(gedit ./sparkapp/src/main/scala/SimpleApp.scala),添加代码如下:
该程序依赖 Spark API,因此需要通过 sbt 进行编译打包。 ./sparkapp 中新建文件 simple.sbt(gedit ./sparkapp/simple.sbt),添加内容如下,声明该独立应用程序的信息以及与 Spark 的依赖关系:
libraryDependencies += “org.apache.spark” %% “spark-core” % “1.6.3”//安装的spark为1.6.3版本,信息如下
(3)使用 sbt 打包 Scala 程序
为保证 sbt 能正常运行,先执行如下命令检查整个应用程序的文件结构:
cd ~/sparkapp
find .
文件结构如下:
接着,通过如下代码将整个应用程序打包成 JAR(首次运行同样需要下载依赖包 ):
/usr/local/sbt/sbt package,需要等待下载
如图则打包成功:
(4)通过 spark-submit 运行程序
将生成的 jar 包通过 spark-submit 提交到 Spark 中运行,命令如下:
/usr/local/spark/bin/spark-submit --class “SimpleApp”
~/sparkapp/target/scala-2.10/simple-project_2.10-1.0.jar 2>&1 | grep “Lines
with a:”
得到如下结果:
4、Java独立应用编程
(1)安装maven
ubuntu中没有自带安装maven,需要手动安装maven。下载即可
选择安装在/usr/local/maven中:
sudo unzip ~/下载/apache-maven-3.3.9-bin.zip
-d /usr/local
cd /usr/local
sudo mv apache-maven-3.3.9/ ./maven
sudo chown -R sun ./maven #sun为我的电脑虚拟机用户名
(2)Java应用程序代码
在终端执行如下命令创建一个文件夹sparkapp2作为应用程序根目录
cd ~ #进入用户主文件夹
mkdir -p ./sparkapp2/src/main/java
在./sparkapp2/src/main/java 下建立一个名为 SimpleApp.java 的文件(gedit ./sparkapp2/src/main/java/SimpleApp.java),添加代码如下:
该程序依赖Spark Java API,因此我们需要通过Maven进行编译打包。在./sparkapp2中新建文件pom.xml(gedit ./sparkapp2/pom.xml),添加内容如下,声明该独立应用程序的信息以及与Spark的依赖关系:
(3)使用maven打包java程序
为了保证maven能够正常运行,先执行如下命令检查整个应用程序的文件结构:
cd ~/sparkapp2
find
文件结构如下图:
接着,通过如下代码将这整个应用程序打包成Jar,首次运行同样下载依赖包,需要等待
/usr/local/maven/bin/mvn package
出现下图,生成Jar包成功:
(4)通过spark-submit 运行程序
最后,通过将生成的jar包通过spark-submit提交到Spark中运行,如下命令:
/usr/local/spark/bin/spark-submit --class “SimpleApp”
~/sparkapp2/target/simple-project-1.0.jar 2>&1 | grep “Lines with a”
最后得到的结果如下: