1、sh /usr/intellijIDEA/idea-IC-141.3056.4/bin/idea.sh
选择新建project
2、新建project name,并配置相关sdk
project sdk:/usr/java/latest/
scala sdk:/usr/lib/scala/lib
3、点击finish,选择project structure->model,在src下新建main和scr 源目录
4、点击library, 新建sacla sdk,选择lib(/usr/lib/scala/lib)
5、点击新建java,选择spark lib(/usr/lib/discover/lib/spark-assembly-1.4.1-hadoop2.5.2-transwarp.jar)
6、点击ok
7、点击ok
如何用的hbase和kafka可以把/usr/lib/hbase/lib和usr/lib/kafka/libs下的也导进去
8、点击main.scala新建package
9、新建scala class
10、kind选择object
11、输入如下内容
12、新建join类输入 如下内容
package main.scala.week2
/**
* Created by root on 1/5/16.
*/
import org.apache.spark.{SparkContext, SparkConf}
import org.apache.spark.SparkContext._
object SogouQA {
def main(args: Array[String]) {
if (args.length == 0) {
System.err.println("Usage: SogouQA <file1> <file2>")
System.exit(1)
}
//val conf = new SparkConf().setAppName("SogouQA")
val conf = new SparkConf().setAppName("SogouQA").setMaster("local")
val sc = new SparkContext(conf)
//val rdd1 = sc.textFile("SogouQ1.txt")
sc.textFile(args(0)).map(_.split("\t")).filter(_.length==6).map(x=>(x(1),1)).reduceByKey(_+_).map(x=>(x._2,x._1)).sortByKey(false).map(x=>
(x._2,x._1)).saveAsTextFile(args(1))
//sc.textFile("SogouQ1.txt").map(_.split("\t")).filter(_.length==6).map(x=>(x(1),1)).reduceByKey(_+_).map(x=>(x._2,x._1)).sortByKey(false).map(x=>(x._2,x._1)).saveAsTextFile("output/oupt")
sc.stop()
}
}
13、新建artifact
报错MANIFEST.MF存在时,删除该文件,然后重启Idea
14、build artfacts
15、运行打包 好的week2.jar
运行代码: /usr/bin/spark-submit --master spark://datanode:7077 --class week2.SogouQA --executor-memory 1g week2.jar SogouQ1.txt output/outp3
报如下错误
错误提示找不到/var/log/discover,可以修改log4j.properties
修改discover.log.file=${log.name},为一个指定文件,修改如下
错误2:
解决方法:类要加上main.scala,并且val conf = new SparkConf().setAppName("join").setMaster("local")(给代码指定一个提交模式,目前指定的是standalone 生产环境下一般用yarn-cluster模式 )
辅:
可以用一个sh执行
/usr/bin/spark-submit \
--master spark://datanode:7077 \
--class cn.spark.core.SogouQA \
--executor-memory 1g \
spark-test.jar \
SogouQ1.txt output/oupt2
16、OK