为了让Scala运行起来还是很麻烦,为了大家方便,还是记录下来:
2.1 进入设置菜单。
2.2 点击安装JetBrains plugin
2.3 输入scala查询插件,点击安装
说明:我的IDEA已经安装,所以这里面没有显示出来安装按钮,否则右边有显示绿色按钮。
通过菜单:File----》New Project 选择Scala工程。
并且设置项目基本信息,如下图:
1)点击右上角的方块:
2)在左边选择Libraries---》+---》Scala SDK--》选择版本为2.10.4
说明:如果不存在这个版本可以通过左下角的download去下载。
3)选择添加Java的Jar文件,选择Spark和Hadoop关联的Jar
我这里添加的是:spark-assembly-1.6.1-hadoop2.6.0.jar 这个是spark安装时候自带的lib里面有,很大。
定位到jar所在的目录后,刷新,选择这个文件,点击OK,会花费比较长时间建索引。
4)在Src源码目录新建文件:WordCount.scala
且输入如下代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
import
org.apache.spark.{SparkConf, SparkContext}
import
org.apache.spark.SparkContext.
_
object
WordCount {
def
main(args
:
Array[String]) {
if
(args.length <
1
) {
System.err.println(
"Usage:
)
System.exit(
1
)
}
val
conf
=
new
SparkConf().setAppName(
"WordCount"
)
val
sc
=
new
SparkContext(conf)
val
line
=
sc.textFile(args(
0
))
val
words
=
line.flatMap(
_
.split(
""
)).map((
_
,
1
))
val
reducewords
=
words.reduceByKey(
_
+
_
).collect().foreach(println)
sc.stop()
}
}
|
5)编译运行:
需要输入参数,所以要设置下相关参数信息:
随便复制个文件过去,然后设置下:
Exception in thread "main" org.apache.spark.SparkException: A master URL must be set in your configuration
at org.apache.spark.SparkContext.
解决办法:需要设置下SparkContext的地址:
16/06/25 12:14:18 ERROR Shell: Failed to locate the winutils binary in the hadoop binary path
java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
解决办法:
http://stackoverflow.com/questions/19620642/failed-to-locate-the-winutils-binary-in-the-hadoop-binary-path
可能是因为我没有安装hadoop的原因,设置下相关信息就可以:
下载:
设置:HADOOP_HOME为下载后解压内容的上级目录,然后在PATH里面添加%HADOOP_HOME%/bin;
1)异常内容:类或Object XXX已经被定义
解决办法: 这个可能是工程里面设置了两个source目录,需要删除一个。
2)异常内容:sparkContext.class 依赖不存在
解决办法:需要引入hadoop的jar包,我这里是:spark-assembly-1.6.1-hadoop2.6.0.jar
3)异常内容:Error:(17, 29) value reduceByKey is not a member of org.apache.spark.rdd.RDD[(String, Int)]
解决办法: 导入这个: import org.apache.spark.SparkContext._
4)异常内容:Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/util/concurrent/ThreadFactoryBuilder
解决办法:添加依赖Jar :guava-11.0.2.jar
5)异常内容:Exception in thread "main" java.lang.NoSuchMethodError: scala.collection.immutable.HashSet$.empty()Lscala/collection/immutable/HashSet;
解决办法:更改scala-sdk版本为2.10,如果没有通过如下方式下载:(速度奇慢)
1、设置下导出Jar信息:
2、设置导出的工程还导出的Main类:
3、通过选择点击-号删除其他依赖的class
4、导出Jar包:
5、上传后执行Jar包
./spark-submit --master spark://inas:7077 --class WordCount --executor-memory 512m /home/hadoop/sparkapp/scalatest4.jar hdfs://inas:9000/user/hadoop/input/core-site.xml
说明: hadoop文件为以前新建的,在提交之前需要先启动hadoop再自动spark,然后再用以上办法提交。
启动Hdfs: ./start-dfs.sh
启动spark:./sbin/start-all.sh(没试过)
可以通过如下方法启动:
~/project/spark-1.3.0-bin-hadoop2.4 $./sbin/start-master.sh
~/project/spark-1.3.0-bin-hadoop2.4 $./bin/spark-class org.apache.spark.deploy.worker.Worker spark://inas:7077
注意:必须使用主机名
启动模式为standaline模式。
Spark Standalone Mode 多机启动,则其他主机作为worker启动,设置master主题。
原文链接:http://www.cnblogs.com/seaspring/p/5615976.html
作者:明翼(XGogo)
出处:http://www.cnblogs.com/seaspring/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。