Intellij IDEA中创建Spark项目

1.设置ssh无密码登陆
ssh-******之后一路回车
cd .ssh 进入隐藏文件夹
touch authorized_keys 创建文件
cat id_rsa.pub > authorized_keys 将ssh文件夹中的id_rsa.pub导入到新建的文件中
chmod 600 authorized_keys 设置权限

2.接http://blog.****.net/u014273195/article/details/70834562中的scala项目,编写一个WordCount程序

Intellij IDEA中创建Spark项目


几点注意:

1. 如果本地运行,即在IDEA中打印结果,需要在RUN --Edit configuration 中,设置vm option "-Dspark.master=local"

      2. 本地运行打印的日志较多,可使用以下方法,添加“Logger.getLogger("org").setLevel(Level.ERROR)”

import org.apache.log4j.{Level, Logger}

object Example {
  Logger.getLogger("org").setLevel(Level.ERROR)

  def main(args: Array[String]) {
    ......
  }
}


3.配置jar包

点击File--Project structure--artifacts--JAR--from mudules

Intellij IDEA中创建Spark项目

选择项目,类,并选择JAR包类型,选择第二个

Intellij IDEA中创建Spark项目

点击OK就可以了


4.build jar包

选择build artifacts后选择build

Intellij IDEA中创建Spark项目


5.启动集群

启动master ./sbin/start-master.sh

启动worker ./bin/spark-class

提交作业 ./bin/spark-submit

1) 启动master

cd spark-1.6.2-bin-hadoop2.6/ 进入文件夹

./sbin/start-master.sh 启动master

jps 查看master是否启动

Intellij IDEA中创建Spark项目

2) 启动worker 

spark-class命令 + worker类 + url地址(启动http://localhost:8080/端口后的地址)

Intellij IDEA中创建Spark项目

./bin/spark-class org.apache.spark.deploy.worker.Worker spark://elephy-VirtualBox:7077

Intellij IDEA中创建Spark项目

新建一个终端输入jps可以看到启动了一个master和一个worker


3) 提交作业

spark-submit命令 + --master + url地址 + class + jar包地址

我们的scala类名是Count,刚才build好的jar包在IdeaProjects/scalaproject1/out/artifacts/scalaproject1_jar/scalaproject1.jar,我们把这个jar包复制到主文件夹中,因此jar包地址为/home/elephy/scalaproject1.jar,于是输入以下命令

cd spark-1.6.2-bin-hadoop2.6/

./bin/spark-submit --master spark://elephy-VirtualBox:7077 --class Count /home/elephy/scalaproject1.jar
Intellij IDEA中创建Spark项目

运行完成后可以在http://localhost:8080/看到提交作业的运行情况,并且在主文件夹中出现result文件夹

Intellij IDEA中创建Spark项目

Intellij IDEA中创建Spark项目