配置:解压,配置文件:
配置文件:conf/spark-env.sh export JAVA_HOME=/opt/module/jdk1.8.0_144 export SPARK_MASTER_HOST=bigdata166 export SPARK_MASTER_PORT=7077 # 下面的可以不写,默认 export SPARK_WORKER_CORES=1 export SPARK_WORKER_MEMORY=1024m
配置slaves:
配置文件:conf/slave bigdata166
启动一下:
sbin/start-all.sh
登陆页面(8080端口)bigdata166:8080
单机版配置完成,后台166一个worker一个master结束
sbin/stop-all.sh
配置完全分布式:
添加配置从节点,分发,启动(基于slaves文件)
主节点sbin/start-all.sh即可
注:其它机器上运行start-all无法启动master,需要手动sbin/start-master.sh才行
测试程序:
bin/spark-submit --master spark://bigdata166:7077 --class \ org.apache.spark.examples.SparkPi examples/jars/spark-examples_2.11-2.1.0.jar 1000
踩坑记录:先别认为是包的问题,先看看两个路径(submit和jar包的路径对不对!)
如果启动spark shell时没有指定master地址,但是也可以正常启动spark shell和执行spark shell中的程序,其实是启动了spark的local模式,该模式仅在本机启动一个进程,没有与集群建立联系。
案例程序:
sc.textFile("hdfs://192.168.43.166:9000/data/data.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).saveAsTextFile("hdfs://192.168.43.166:9000/outpu t/spark/wc")
自定义程序:
spark-submit --masterspark://bigdata166:7077 --class mydemo.WordCount jars/wc.jar\ hdfs://192.168.43.166:9000/data/data.txt \ hdfs://192.168.43.166:9000/output/spark/wc1
spark-submit --master spark://bigdata166:7077 --class mydemo.JavaWordCount jars/wc.jar hdfs://192.168.43.166:9000/data/data.txt