spark 集群搭建

1. 解压spark安装包, 重命名(版本使用: hadoop-2.7.1.tar.gz   +   spark-2.3.0-bin-hadoop2.7.tgz)
2. 进入  /home/spark/spark-2.2.0/conf  目录
3. cp slaves.template slaves

4. vim slaves

  将结尾的 localhost(伪分布式) 修改成自己的work节点, 比如 hadoop2 hadoop3(每行一条), 保存退出

5. cp spark-env.sh.template spark-env.sh vim spark-env.sh 添加:

  export JAVA_HOME=/usr/java/jdk1.8.0_11
  export SPARK_MASTER_IP=hadoop1
  export SPARK_MASTER_HOST=hadoop1
  export SPARK_MASTER_PORT=7077
  export SPARK_WORKER_CORES=2   每个Worker进程管理2个core

  export SPARK_WORKER_MEMORY=2G  每个Worker进程管理2g内存

  # 想要spark运行在yarn上, 需要增加如下配置(每个节点机器上的spark都需要进行配置)

  export HADOOP_CONF_DIR=/home/hadoop/hadoop-2.7.1/etc/hadoop    

  如果需要修改 ssh 端口号,  加入如下:

  export SPARK_SSH_OPTS="-p 2222"

  如果出现安全模式错误,  执行  hdfs dfsadmin -safemode leave,  离开安全模式

6. scp -r spark-2.2.0 root@hadoop3:/home/spark   将spark整体拷贝到其他节点机器上

7. 在 master 节点机器上, 进入spark下的sbin 目录中执行 ./start-all.sh 各个节点上执行: jps
  master节点上出现 Master 进程
  slave 节点上出现 Worker 进程

8. 8080端口为spark 的 web 监控端口, 7070为spark 的 数据传输端口
9. http://hadoop1:8080 可以看到spark管理界面
10. spark在 Standalone 上运行分为俩种模式
  1.client (适合测试)
    Driver 进程是在客户端启动的
    Driver 的作用是:
      分发任务
      回收 task 计算结果
      回收 task 执行情况
      心跳
    可以在提交应用程序的客户端上监控task的执行情况
    适用场景: 调试/测试环境(应为会占用网卡流量)
    执行命令:
    1>
--total-executor-cores 3 表示适用多少个core 来执行, 不指定默认是配置文件总的所有的core
     2> 1000 表示启动多少个线程来执行这个任务
./spark-submit --master spark://hadoop1:7077 --total-executor-cores 3 
  --class org.apache.spark.examples.SparkPi ../examples/jars/spark-examples_2.11-2.3.0.jar 1000

  2.cluster
    Driver 进程是在集群某一台 Worker 上启动的,
    无法查看 task 的启动执行情况
    适用场景: 生产环境
  执行命令 :
    
--deploy-mode cluster 指定执行模式, 默认为 client模式
./spark-submit --master spark://hadoop1:7077 --deploy-mode cluster 
  --total-executor-cores 3 --class org.apache.spark.examples.SparkPi ../examples/jars/spark-examples_2.11-2.3.0.jar 1000
  查看结果:   浏览器中:  http://hadoop1:8080 ----->找到 Completed Drivers (2)(已经完成的Driver) ----->   点击Worker中的链接   ----->
         找到
Finished Drivers (1) ------> 找到后面对应的 stdout 就可以看到执行情况和结果
 
 执行python 脚本
    ./spark-submit --master spark://hadoop1:7077 /data/UserCountStatistical.py 10

修改 spark 中 ssh 链接端口 vi spark-env.sh
  export SPARK_SSH_OPTS="-p 16022"
  
原文地址:https://www.cnblogs.com/redhat0019/p/8797044.html