安装spark ha集群 1.默认安装好hadoop+zookeeper 2.安装scala 1.解压安装包 tar zxvf scala-2.11.7.tgz 2.配置环境变量 vim /etc/profile #scala export SCALA_HOME=/opt/scala-2.11.7 #CLASSPATH export CLASSPATH=$CLASSPATH:$SCALA_HOME/lib #PATH export PATH=$PATH:$SCALA_HOME/bin 保存退出 source /etc/profile 3.验证 scala -version 3.安装spark 1.解压安装包 tar zxvf spark-1.6.0-bin-hadoop2.4.tgz 2.配置环境变量 vim /etc/profile #spark export SPARK_HOME=/opt/spark-1.6.0 #CLASSPATH export CLASSPATH=$CLASSPATH:$SPARK_HOME/lib #PATH export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin 保存退出 source /etc/profile 3.修改配置文件 1.根据模板复制相关配置文件 cp spark-env.sh.template spark-env.sh cp slaves.template slaves cp log4j.properties.template log4j.properties cp spark-defaults.conf.template spark-defaults.conf 2.创建相关目录 mkdir /opt/spark-1.6.0/logs mkdir /opt/spark-1.6.0/tmp hadoop fs -mkdir /spark //在hdfs上创建存储spark的任务日志文件 3.修改配置文件参数 ####spark-env.sh#### 最后加入 其中hadoop.master为主节点 hadoop.slaver1为备份主节点 export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=hadoop.master:2181,hadoop.slaver1:2181 -Dspark.deploy.zookeeper.dir=/spark" export JAVA_HOME=/usr/java/jdk1.8.0_65 export SPARK_WORKER_CORES=1 export SPARK_WORKER_INSTANCES=1 export SPARK_WORKER_MEMORY=1g ####slaves####将所有的从节点主机名加入 hadoop.slaver1 hadoop.slaver2 hadoop.slaver3 ####log4j.properties#### 无需修改 ####spark-defaults.conf#### spark.eventLog.enabled true spark.eventLog.dir hdfs://ns1:8020/spark spark.history.fs.logDirectory hdfs://ns1:8020/spark spark.eventLog.compress true 4.分发到各个节点 scp -r /opt/spark-1.6.0 hadoop@hadoop.slaver1:/opt scp -r /opt/spark-1.6.0 hadoop@hadoop.slaver2:/opt scp -r /opt/spark-1.6.0 hadoop@hadoop.slaver3:/opt 5.启动 //先启动zookeeper 和 hdfs sbin/start-all.sh //注意切换目录 不然跟hadoop的start-all 冲突 spark-shell --master spark://hadoop.master:7077 //集群模式启动客户端 spark-shell //单机模式启动客户端 6.验证 1.jps 2.web 节点主机名:8080 //如果采用默认端口的話则是8080 主节点web 节点主机名:18080 //主节点 历史任务web 节点主机名:4040 //子节点正在进行任务web 3.HA 在备份主机节点执行 start-master.sh命令 然后在主机节点把master进程kill掉,此时会自行切换至备份节点(需要几秒钟的缓冲时间) 7.常用命令 1.启动 start-all.sh //注意切换目录 start-master.sh stop-master.sh start-slave.sh 主节点:7077 //默认端口 如果不修改的話 start-history-server.sh //启动任务历史服务 2.使用 1.本机模式 运行 spark-shell 2.yarn 打包运行jar包 spark-submit --master spark://spark113:7077 --class org.apache.spark.examples.SparkPi --name Spark-Pi --executor-memory 400M --driver-memory 512M /opt/spark-1.6.0/lib/spark-examples-1.6.0-hadoop2.4.0.jar 3.wordcount val file=sc.textFile("hdfs://ns1:8020/huangzhijian/test.dat") val count=file.flatMap(line => line.split(" ")).map(word => (word,1)).reduceByKey(_+_) count.saveAsTextFile("hdfs://ns1:8020/output") //需保证hdfs上该目录不存在