scala和spark的包都在官网找就可以了!
spark 有几种形式,standalon形式就是spark单独集群,这个会起一个进程,提供spark 的job的进度查看,而spark on yarn 不需要启动这个进程了。yarn的resourcemanage的控制台就做了spark的那个控制台的工作。。总的来说spark on yarn 的安装还是特别简单的!
java高级交流群:37341439 ,如果文章有看不懂的地方可以加群啊~我会随时回复的!!欢迎学习spark和hadoop和storm和hbase的同志进群分享学习心得啊!咱们群不是培训机构,纯粹个人学习分享,互相学习,互相提高!
1:需要在各个机器安装scala ,安装taz包
2:需要编译spark
记得编译的用户要安装scala 并且设置SCALA_HOME变量
如果报protobuf错误,可能是因为protobuf和pom.xml的版本不一致,可以修改pom.xml里面的protobuf版本号
<protobuf.version>2.5.0</protobuf.version>
用maven编译:编译命令如下:
export MAVEN_OPTS=“-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m”
mvn -Dyarn.version=2.2.0 -Dhadoop.version=2.2.0 -Pnew-yarn -DskipTests package
3:编译完成后要将编译后的内核打成jar包,命令如下:
SPARK_HADOOP_VERSION=2.2.0 SPARK_YARN=true ./sbt/sbt assembly
打包完成后会在以下目录下生成一些jar包
assembly/target/scala-2.10/*.jar
examples/target/scala-2.10/*.jar
其中:assembly/target/scala-2.10/spark-assembly-0.9.1-hadoop2.2.0.jar 是内核jar。spark 的job运行需要依赖的jar包
examples/target/scala-2.10/spark-examples-assembly-0.9.1.jar 是官方的hello word程序。
4:运行hello world
需要在提交用户添加如下环境变量:
export JAVA_HOME=/usr/java/jdk1.7.0_45
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export HADOOP_INSTALL=/opt/hadoop
export HADOOP_HOME=$HADOOP_INSTALL
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
export SCALA_HOME=/usr/local/scala
export PATH=$SCALA_HOME/bin:$PATH
export SPARK_HOME=/usr/local/spark
export SPARK_JAR=/usr/local/assembly/target/scala-2.10/spark-assembly-0.9.1-hadoop2.2.0.jar
export PATH=$SPARK_HOME/bin:$PATH
5:修改conf目录下的spark-env.sh,添加环境变量
export SPARK_HOME=/usr/local/spark
export SPARK_JAR=/usr/local/spark/assembly/target/scala-2.10/spark-assembly-0.9.1-hadoop2.2.0.jar
export PATH=$SPARK_HOME/bin:$PATH
提交job 的命令
./spark-class org.apache.spark.deploy.yarn.Client --jar /usr/local/spark/examples/target/scala-2.10/spark-examples-assembly-0.9.1.jar --class org.apache.spark.examples.JavaSparkPi --args yarn-standalone --num-workers 1 --master-memory 1G --worker-memory 1G --worker-cores 1
如果执行的时候报这个错误,是因为/usr/local/assembly/target/scala-2.10/ 目录有2个jar包。将spark-assembly_2.10-0.9.1-hadoop2.2.0.jar删除或者移动一下
Found multiple Spark assembly jars in /usr/local/spark/assembly/target/scala-2.10:
注意::
不需要在hadoop启停用户添加
spark 和scala环境变量哦~