spark启动与使用
如果想要启动或者使用spark
需要先执行
zk-startall.sh
jps
可以查看到zookeeper的进程
hadoop142、143不需要进行任何操作,已经被141启动了
start-all.sh
启动集群
结果
切换路径到spark(根据你自己的路径来)
cd/home/hadoop/spark-3.5.0
./sbin/start-all.sh
在jps查看进程,出现worker说明集群已经启动了
出现worker的进程代表集群已经启动,可以通过访问http://hadoop141:8989/来查看界面
只要能进入这个页面显示出后面三个来就没问题了,启动完成后就可以通过Standalone模式提交任务
[root@hadoop141 spark-3.5.0]# ./bin/spark-submit --master=spark://hadoop141:7077 ./examples/src/main/python/pi.py
它的7077指的是这个
确保结束后就是下面这个目录 单路径,如果不是证明有问题的 需要重修对路径解压,确保是单路径
敲回车执行后 出现一个正在跑的程序
等会 就可以看到跑出结果了
还可以通过yarn模式提交
[root@hadoop141 spark-3.5.0]# ./bin/spark-submit --master yarn --deploy-mode client ./examples/src/main/python/pi.py
还有一个是cluster模式
[root@hadoop141 spark-3.5.0]# ./bin/spark-submit --master yarn --deploy-mode cluster ./examples/src/main/python/pi.py
cluster的不太好看 succeeded表示成功了,然后点击ID那个点击进去
会有一个logs(日志),在日志里面就可以查看对应的结果了
它这个是根据你电脑性能来执行的,执行多次结果都是不会重复的
Anaconda安装以及Jupyter安装
具体操作请跳转到PySpark(超详细笔记)
往下找找 写的很详细
配完以后可以在xshell里去启动jupyter notebook
直接访问hadoop141:8888
密码是之前步骤里设置的
这里面就可以执行Python和pyspark
它的路径保存在设置的路径里
可以使用了
进入这个脚本
./bin/spark-shell
启动以后告诉你可以到4040去访问
后边提交的所有东西都会在这看得到
默认是本地模式执行
也可以别的模式操作
刷新以后再来看会发现有一个编译驱动的一个添加,证明是通过你这个东西来提交的了
spark session的有效值被起了一个别名叫spark 是spark session的一个对象 实例化后的一个对象
试着完成一个案例,通过spark的语法去创建一个0~1000之间的 列名是number的一个列表
回到上面来会发现有添加
然后dateframe 它是二维数组 尝试案例
出现stage已经在计算了
刷新可以看到正在运行的job
比如说在这个有向无环图里面 第一部是一个整体的一个构建
然后进行了一个统计计算
然后来到这个里面
首先第一步是切割你的数据,最后两个是不同的Map计算
往下翻可以看到记录的执行结果(18条)
这就是spark里面最简单的记录总数的一个计算
Pycharm
接下来需要安装Pycharm软件
示范 先随便创建个文件夹,然后在里面打开,对于Pycharm来说如果要访问远程集群,必须新建一个解释器
在main里面有一个编辑配置
在+号里面找到这个
如果没有的话在工具部署配置里面
按照这个
这个要取消掉
配置没有的话要配置一下
映射里本地路径不要动 部署路径更改
比如映射到这个里面,需要创建对应的文件
然后他就可以自动的映射了
web路径就这个不要动 然后就可以了 点击确定
文件设置里找到python解释器
就用刚才配好的那个通过SSH去连接
点击下一个
找到python3解释器的路径
直接点击完成
然后就连接上了
点击确定
他会自动完成上传
前面路径映射错了,可以重新修改
比如说在这里面新建文件wordcount
然后对应路径里会出现
接下来我们所执行的所有代码就相当于在集群里面去执行的
首先我们打包实现一个词频统计
import sys
需要先装包,这个路径下载快一点
pip3 install pyspark -i https://pypi.tuna.tsinghua.edu.cn/simple
安装好后,就能在这里面看到你安装的pyspark了,然后就可以写程序了
from pyspark.sql import SparkSession
spark = SparkSession.builder.master("local[*]".appName('PycharmJob').getOrCreate()
print(spark)
右击运行
执行出来了
如果不对,可能是解释器映射不对,重新弄
调用方法获取文本路径
words = spark.sparkContext.textFile("/home/hadoop/word.txt")
print(words)
重新加一个file:就可以获取本地文件夹了
是通过MapPartitionsRDD去走的
这个可以做词频统计,pycharm进行远程提交
刚才有个问题我们word.txt是没有提前创建的,在这个情况下
这样是正常输出的,它调用这个方法去寻找文件,当然找不到也没有关系,没涉及到具体的操作和计算,只是一个转换过程
词频统计获取每一行
然后进行切割计算 换行用
相加,结果collect动作打成一个集合
运行结果
还可以通过hadoop141:7077,用的是远程了
计算结束网页会自动关掉
也可以获取hdfs上路径
词频统计里涉及到的
这里就有进程