安装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上该目录不存在