ToB企服应用市场:ToB评测及商务社交产业平台

标题: 【Spark集群部署系列二】Spark StandAlone模式先容和搭建以及使用 [打印本页]

作者: 王海鱼    时间: 2024-10-17 17:57
标题: 【Spark集群部署系列二】Spark StandAlone模式先容和搭建以及使用
【Spark集群部署系列一】Spark local模式先容和搭建以及使用(内含Linux安装Anaconda)
http://t.csdnimg.cn/0xmky
简介







注意:请先部署好Hadoop集群

   在部署spark集群前,请部署好Hadoop集群,jdk8【固然Hadoop集群需要运行在jdk上】,需要注意hadoop,spark的版本,思量兼容问题。好比hadoop3.0以上的才兼容spark3.0以上的。
   下面是Hadoop集群部署的链接,个人条记,已经成功部署两次了,实时更新,分【一】【二】两部门,需要的本身看。不懂欢迎问,看到了解答。(链接失效的话请参考个人主页)
   hadoop集群部署【一】HDFS集群
http://t.csdnimg.cn/g6w1u
  hadoop集群部署【二】YARN,MapReduce集群
http://t.csdnimg.cn/O7sVz
  
搭建预备工作(每一台机器都要):

   注意:假如之前配置过Spark local模式(参考最开始链接),那么只需要在没有安装过anaconda的机器举行搭建预备工作。
  安装Anaconda

   需要python环境,上传Anaconda,找到放置的位置,切换到该目录下。
  安装Anaconda(我的是Anaconda3-2021.05-Linux-x86_64.sh         版本python3.8)
  tip:我没有试过分发,以是我不知道分发有没有问题,知道的可以说一下,但是不发起大家用,毕竟安装后要初始化anaconda
  1. sh ./Anaconda3-2021.05-Linux-x86_64.sh
复制代码
接下来步骤
   然后不绝空格,出现[yes|no] 就回答yes,懂?
  

  出现这样的就填你要把anaconda安装到那里。(路径)
  

  

  完成后结果(退出终端,重新进来)
  

  更改conda国内源

  1. vim ~/.condarc # 如果以前没有该文件,新建的,里面没有东西很正常
复制代码
  1. channels:
  2.   - defaults
  3. show_channel_urls: true
  4. default_channels:
  5.   - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  6.   - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  7.   - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
  8. custom_channels:
  9.   conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  10.   msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  11.   bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  12.   menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  13.   pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  14.   simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
复制代码
  终端输入 
  1. python
复制代码

  创建spark运行的假造环境

  1. conda create -n pyspark python=3.8
复制代码
   切换假造环境

  1. conda activate pyspark
复制代码

    tip:输入python 版本变化很正常
  

Spark StandAlone部署

上传解压spark

   假如之前配置过Spark local模式,那么下面的步骤看情况处理惩罚
  (我的是 spark-3.2.0-bin-hadoop3.2.tgz)
通过什么工具不管,能上传就行。
找到spark上传的位置,cd 进到该目录,不进去也行,本身在前面加路径哈!解压。
  1.   tar -zxvf spark-3.2.0-bin-hadoop3.2.tgz -C /export/server spark-3.2.0-bin-hadoop3.2/
复制代码
  -C 参数后跟解压到哪(路径)
  1. cd /export/server    #填你自己解压的路径
复制代码
 建立软链接
  1. ln -s spark-3.2.0-bin-hadoop3.2/ spark
复制代码
  1. ll
复制代码


配置环境变量(每一台都需要)

   先在第一台配置
  1. vim /etc/profile
复制代码

  1. export SPARK_HOME=/export/server/spark
  2. export PYSPARK_PYTHON=/export/server/anaconda3/envs/pyspark/bin/python3.8
  3. export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
复制代码
  1. :wq
复制代码
  1. source /etc/profile
复制代码
  1. vim /root/.bashrc
复制代码
添加 
  1. export JAVA_HOME=/export/server/jdk
  2. export PYSPARK_PYTHON=/export/server/anaconda3/envs/pyspark/bin/python3.8
复制代码
  1. :wq
复制代码
  (可以在第一台机器配置好,然后分发到其他机器 两个文件  /etc/profile  /root/.bashrc)
  1. scp -r /etc/profile node2:/etc/profile
复制代码
  1. scp -r /root/.bashrc node2:/root/.bashrc
复制代码
node3同node2         请先配置好node1之后再举行scp操纵,然后其他机器
  1. source /etc/profile
复制代码


修改spark配置文件

   记住权限不够就换用户,好比修改体系配置文件/etc/profile时就需要root用户,固然可以sudo,如何给用户配置sudo权限,这里不做教程
  1. su - 用户名
复制代码
   假如是学习测试,可以不使用hadoop用户为spark最高权限用户,但请注意假如Hadoop集群给的最高权限是hadoop用户,发起使用hadoop用户为spark集群最高权限用户,否则很杂乱,其他用户同理。本教程以hadoop用户为所有的大数据软件最高权限用户。
  1. # 会使用hadoop用户的,一般都已经创建好了,当然这里还是提一下如何创建用户
  2. useradd [-g -d] 用户名  
  3. #选项:-g指定用户的组,不指定-g,会创建同名组并自动加入,指定-g需要组已经存在,如已存在同名组,必须#使用-g
  4. #选项:-d指定用户HOME路径,不指定,HOME目录默认在:/home/用户名
  5. passwd hadoop  # hadoop为用户名,改代码作用是修改用户名密码,学习测试建议为12345678
复制代码
授权hadoop用户为spark最高权限用户

  1. # 切换到spark安装目录下
  2. cd /export/server/
  3. # 授权hadoop用户
  4. chown -R hadoop:hadoop spark*
复制代码
 切换hadoop用户举行操纵
  1. su - hadoop
复制代码
workers

  1. cd /export/server/spark/conf    #注意路径
复制代码
  1.  mv workers.template workers
复制代码
  1. vim workers
复制代码
 删除localhost后填入
  1. node1
  2. node2
  3. node3
复制代码
spark-env.sh 

  1. mv spark-env.sh.template spark-env.sh
复制代码
  1. vim spark-env.sh
复制代码
填入下面内容
  1. ## 设置JAVA安装目录
  2. JAVA_HOME=/export/server/jdk
  3. ## HADOOP软件配置文件目录,读取HDFS上文件和运行YARN集群
  4. HADOOP_CONF_DIR=/export/server/hadoop/etc/hadoop
  5. YARN_CONF_DIR=/export/server/hadoop/etc/hadoop
  6. ## 指定spark老大Master的IP和提交任务的通信端口
  7. # 告知Spark的master运行在哪个机器上
  8. export SPARK_MASTER_HOST=node1
  9. # 告知sparkmaster的通讯端口
  10. export SPARK_MASTER_PORT=7077
  11. # 告知spark master的 webui端口
  12. SPARK_MASTER_WEBUI_PORT=8080
  13. # worker cpu可用核数
  14. SPARK_WORKER_CORES=1
  15. # worker可用内存
  16. SPARK_WORKER_MEMORY=1g
  17. # worker的工作通讯地址
  18. SPARK_WORKER_PORT=7078
  19. # worker的 webui地址
  20. SPARK_WORKER_WEBUI_PORT=8081
  21. ## 设置历史服务器
  22. # 配置的意思是  将spark程序运行的历史日志 存到hdfs的/sparklog文件夹中
  23. SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=hdfs://node1:8020/sparklog/ -Dspark.history.fs.cleaner.enabled=true"
复制代码
   启动hadoop集群(注意安装Hadoop最高权限给的谁)

  1. # 切换最高权限用户,这里以hadoop用户举例。
  2. su - hadoop
复制代码
(临时只需要启动hdfs,假如不行就都启动,方正后面都要启动)
  hdfs
     启动:
  
  1. start-dfs.sh
复制代码
  关闭:
  
  1. stop-dfs.sh
复制代码
    yarn:
     启动:
  
  1. start-yarn.sh
复制代码
  关闭:
  
  1. stop-yarn.sh
复制代码
   HistoryServer
     启动:
  
  1. $HADOOP_HOME/bin/mapred --daemon start historyserver
复制代码
  关闭的话
  
  1. $HADOOP_HOME/bin/mapred --daemon stop historyserver
复制代码
   查看是否有sparklog文件夹
  1. hdfs dfs -ls /
复制代码
没有创建
  1.  hadoop fs -mkdir /sparklog
复制代码
 修改sparklog文件夹权限
  1. hadoop fs -chmod 777 /sparklog
复制代码
spark-defaults.conf 

  1. mv spark-defaults.conf.template spark-defaults.conf
复制代码
  1. vim spark-defaults.conf
复制代码
  1. :set paste   #底线模式,开启粘贴
复制代码
填入 
  1. #park的日期记录功能
  2. spark.eventLog.enabled  true
  3. # 设置spark日志记录的路径
  4. spark.eventLog.dir       hdfs://node1:8020/sparklog/
  5. # 设置spark日志是否启动压缩
  6. spark.eventLog.compress         true
复制代码
log4j.properties  [可选配置]

  1. mv log4j.properties.template log4j.properties
复制代码
  1. vim log4j.properties
复制代码
  1. WARN
复制代码
 
   这个文件的修改不是必须的,  为什么修改为WARN. 由于Spark是个话痨
  会疯狂输出日记, 设置级别为WARN 只输出告诫和错误日记, 不要输出一堆废话,假如报错欠好找错误的话可以调回INFO级别
  分发spark(tab键补全,制止版本没写对)

  1. scp -r spark-3.2.0-bin-hadoop3.2/ node2:$PWD
复制代码
  1. scp -r spark-3.2.0-bin-hadoop3.2/ node3:`pwd`/
复制代码
 在其他机器创建软链接

  1. cd /export/server/   #注意路径
复制代码
  1. ln -s spark-3.2.0-bin-hadoop3.2/ spark
复制代码
启动spark集群

 回到node1(master所在的机器)
  1. cd /export/server/spark  # 注意路径
复制代码
启动historyServer

  1.  sbin/start-history-server.sh 
复制代码
  1. jps
复制代码
能看到java历程HistoryServer则启动成功
   请找到标题【启动Hadoop集群】启动hdfs,yarn,jobhistoryserver
  启动Spark集群

  1. sbin/start-all.sh
复制代码

  1. jps
复制代码

 游览器输入(windows体系上需要配置windows主机名映射,没有配置用maste所在机器的ip取代下面的node1)
  1. http://node1:8080/
复制代码

spark StandAlone模式客户端

pyspark交互式界面:(找到spark/bin目录)
  1. ./pyspark --master spark://node1:7077
  2. # spark://node1:7077 具体填什么查看
  3. # 游览器输入
  4. node1:8080
复制代码

 spark-submit 提交应用程序
  1. ./spark-submit --master spark://node1:7077 文件位置
  2. # spark://node1:7077 具体填什么查看上图
  3. # 游览器输入
  4. node1:8080
  5. #示例 自带程序求圆周率,迭代100次
  6. ./spark-submit --master spark://node1:7077 /export/server/spark/examples/src/main/python/pi.py 100
复制代码
 查看

OK! 完毕。不懂请留言,注意到了,乐意解答。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4