官方文档
http://spark.apache.org/docs/latest/
一、本地运行spark
- jdk8+,scala2.1
- 下载spark,如:spark-2.2.0-bin-hadoop2.7.tgz
- 解压:tar -zxvf spark-2.2.0-bin-hadoop2.7.tgz
- 测试运行:./bin/run-example SparkPi 10,依赖前提是jdk8+安装完成,可以看到完成pi的计算结果
- ./bin/spark-shell –master local[2],启动spark的命令交互式窗口,用于学习saprk的功能
- master有:local、yarn、spark://ip:port、mesos
二、集群运行spark
- 配置文件:conf/spark-env.sh
- 启动spark的服务:/sbin/start-all.sh
- master上执行jps:Master
- slave上执行jps:Worker
- 使用hdfs和yarn要启动hadoop的服务
- startdfs 启动hdfs
- startyarn 启动yarn
- master上jps查看到的结果为:
3136 NameNode
3312 SecondaryNameNode
3417 Jps
2969 Master
- slave上jps查看到的结果为:
2755 Jps
2681 DataNode
2573 Worker
- webUI
job:http://ip:4040
spark:http://ip:8080 - -
spark-env.sh
JAVA_HOME=/mnt/hgfs/download/jdk1.8.0_141
HADOOP_CONF_DIR= $HADOOP_HOME/etc/hadoop
测试代码(idea开发环境使用spark读取hdfs数据)
val conf = new SparkConf().setAppName("TestSpark1").setMaster("spark://192.168.159.128:7077")
val sc = new SparkContext(conf)
val rdd = sc.textFile("hdfs://192.168.159.128:9000/new-hadoop/*.xl")
rdd.map(_.trim).map(f=>(f, 1)).reduceByKey(_+_).map(f=>(f._1, f._2)).groupByKey().saveAsTextFile("hdfs://192.168.159.128:9000/result/" + System.currentTimeMillis())
println(rdd.count())