Spark学习笔记(一)

以下笔记基于对尚硅谷spark教程的学习,Spark版本3.0

目录

Spark安装

  Local模式

  Standalone模式

  Yarn 模式

Windows下开发调试程序报错


Spark安装


  Local模式


    1.解压缩文件
    2.启动 Local 环境

bin/spark-shell
  Windows的时候为spark-shell.cmd


    3.Web UI 监控页面
      http://虚拟机地址:4040
    4.提交应用

bin/spark-submit --class org.apache.spark.examples.SparkPi --master local[2] ./examples/jars/spark-examples_2.12-3.0.0.jar 10
   Windows的时候为spark-submit.cmd
        1) --class 表示要执行程序的主类,此处可以更换为咱们自己写的应用程序
        2) --master local[2] 部署模式,默认为本地模式,数字表示分配的虚拟 CPU 核数量
        3) spark-examples_2.12-3.0.0.jar 运行的应用类所在的 jar 包,实际使用时,可以设定为咱们自己打的 jar 包
        4) 数字 10 表示程序的入口参数,用于设定当前应用的任务数量


 


  Standalone模式


    1.解压缩文件
    2.修改conf目录配置文件

mv slaves.template slaves
  修改slaves填入集群机器名
mv spark-env.sh.template spark-env.sh
  填入内容:
    export JAVA_HOME=/opt/module/jdk1.8.0_144
    SPARK_MASTER_HOST=linux1
    SPARK_MASTER_PORT=7077


    3.分发spark-standalone目录到集群内其他机器
    4.启动集群

sbin/start-all.sh


    5.查看Master资源监控Web UI界面: http://linux1:8080
    6.提交应用

bin/spark-submit --class org.apache.spark.examples.SparkPi --master spark://linux1:7077 ./examples/jars/spark-examples_2.12-3.0.0.jar 10
        1) --class 表示要执行程序的主类
        2) --master spark://linux1:7077 独立部署模式,连接到 Spark 集群
        3) spark-examples_2.12-3.0.0.jar 运行类所在的 jar 包
        4) 数字 10 表示程序的入口参数,用于设定当前应用的任务数量
        5) --executor-memory 1G 指定每个 executor 可用内存为 1G
        6) --total-executor-cores 2 指定所有executor使用的cpu核数为2个
        7) --executor-cores 指定每个executor使用的cpu核数


    7.配置历史服务

mv spark-defaults.conf.template spark-defaults.conf
修改spark-default.conf文件,配置日志存储路径
  spark.eventLog.enabled true
  spark.eventLog.dir hdfs://linux1:8020/directory
    注意:需要启动 hadoop 集群,HDFS 上的 directory 目录需要提前存在
      sbin/start-dfs.sh
      hadoop fs -mkdir /directory


      修改spark-env.sh文件, 添加日志配置

export SPARK_HISTORY_OPTS="
-Dspark.history.ui.port=18080
-Dspark.history.fs.logDirectory=hdfs://linux1:8020/directory
-Dspark.history.retainedApplications=30"
   参数 1 含义:WEB UI 访问的端口号为 18080
   参数 2 含义:指定历史服务器日志存储路径
   参数 3 含义:指定保存 Application 历史记录的个数,如果超过这个值,旧的应用程序信息将被删除,这个是内存中的应用数,而不是页面上显示的应用数。


      分发配置文件
      重新启动集群和历史服务

sbin/start-all.sh
sbin/start-history-server.sh


      查看历史服务:http://linux1:18080
    8.配置高可用(HA)
      为了解决单点故障问题,需要在集群中配置多个 Master 节点,一旦处于活动状态的 Master发生故障时,由备用 Master 提供服务,保证作业可以继续执行。
      停止集群

sbin/stop-all.sh


      启动 Zookeeper

xstart zk


      修改 spark-env.sh 文件添加如下配置

注释如下内容:
  #SPARK_MASTER_HOST=linux1
  #SPARK_MASTER_PORT=7077
添加如下内容:
  #Master 监控页面默认访问端口为 8080,但是可能会和 Zookeeper 冲突,所以改成 8989,也可以自定义,访问 UI 监控页面时请注意
  SPARK_MASTER_WEBUI_PORT=8989
  export SPARK_DAEMON_JAVA_OPTS="
  -Dspark.deploy.recoveryMode=ZOOKEEPER 
  -Dspark.deploy.zookeeper.url=linux1,linux2,linux3
  -Dspark.deploy.zookeeper.dir=/spark"


      分发配置文件

xsync conf/


      启动集群

sbin/start-all.sh


      启动 linux2 的单独 Master 节点,此时 linux2 节点 Master 状态处于备用状态

sbin/start-master.sh


      提交应用到高可用集群

bin/spark-submit --class org.apache.spark.examples.SparkPi --master spark://linux1:7077,linux2:7077 ./examples/jars/spark-examples_2.12-3.0.0.jar 10


  Yarn 模式


    1.解压缩文件
    2.修改配置文件
      修改 hadoop 配置文件/opt/module/hadoop/etc/hadoop/yarn-site.xml, 并分发

<!--是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是 true -->
<property>
 <name>yarn.nodemanager.pmem-check-enabled</name>
 <value>false</value>
</property>
<!--是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是 true -->
<property>
 <name>yarn.nodemanager.vmem-check-enabled</name>
 <value>false</value>
</property>


      修改 conf/spark-env.sh,添加 JAVA_HOME 和 YARN_CONF_DIR 配置
 

mv spark-env.sh.template spark-env.sh
 修改spark-env.sh
   export JAVA_HOME=/opt/module/jdk1.8.0_144
   YARN_CONF_DIR=/opt/module/hadoop/etc/hadoop


    3.启动 HDFS 以及 YARN 集群
    4.提交应用

bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn --deploy-mode cluster ./examples/jars/spark-examples_2.12-3.0.0.jar 10


    5.查看 http://linux2:8088 页面,点击 History,查看历史页面
    6.配置历史服务器

mv spark-defaults.conf.template spark-defaults.conf
修改spark-defaults.conf文件,配置日志存储路径
  spark.eventLog.enabled true
  spark.eventLog.dir hdfs://linux1:8020/directory
    注意:需要启动 hadoop 集群,HDFS 上的 directory 目录需要提前存在
      sbin/start-dfs.sh
      hadoop fs -mkdir /directory
  spark.yarn.historyServer.address=linux1:18080
  spark.history.ui.port=18080


      修改spark-env.sh文件, 添加日志配置

export SPARK_HISTORY_OPTS="
-Dspark.history.ui.port=18080
-Dspark.history.fs.logDirectory=hdfs://linux1:8020/directory
-Dspark.history.retainedApplications=30"
   参数 1 含义:WEB UI 访问的端口号为 18080
   参数 2 含义:指定历史服务器日志存储路径
   参数 3 含义:指定保存 Application 历史记录的个数,如果超过这个值,旧的应用程序信息将被删除,这个是内存中的应用数,而不是页面上显示的应用数。


      启动历史服务

sbin/start-history-server.sh


      查看历史服务:http://linux2:18080

Windows下开发调试程序报错


  1.报错找不到winutils.exe
    从这里https://github.com/cdarlint/winutils 下载对应版本的文件夹
    解压文件后设置环境变量 HADOOP_HOME 为hadoop-x.x.x的目录
    设置环境变量 PATH追加 %HADOOP_HOME%\bin
    把hadoop-x.x.x\bin\hadoop.dll 复制到 C:\Windows\System32
  2.报错文件夹目录权限

    "%HADOOP_HOME%\bin\winutils.exe" ls E:\tmp\hive
    "%HADOOP_HOME%\bin\winutils.exe" chmod 777 E:\tmp\hive
    "%HADOOP_HOME%\bin\winutils.exe" ls E:\tmp\hive


 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值