2022-03-08 18:59阅读: 144评论: 0推荐: 0

2.安装Spark与Python练习

一、安装Spark

《Spark2.4.0入门:Spark的安装和使用》
博客地址:http://dblab.xmu.edu.cn/blog/1307-2/

1.1 基础环境

1.1.1 安装Spark之前需要安装:

Linux系统
Java环境(Java8或JDK1.8以上版本)
Hadoop环境

Hadoop安装教程地址:http://dblab.xmu.edu.cn/blog/install-hadoop/
按照这个教程,就可以完成JDK和Hadoop这二者的安装

1.1.2 安装JDK与Hadoop平台镜像文件:

下载虚拟机镜像文件
Oracle VM VirtualBox
管理
导入虚拟电脑
已经下载到本地的镜像文件,导入,就可以生成Ubuntu虚拟机
进入Ubuntu系统时,系统登录用户名是hadoop,密码是123456
里面安装的MySQL数据库的root用户对应的密码也是hadoop

1.1.3 环境准备检查

1.2 下载安装文件

Spark安装包下载地址: http://spark.apache.org/downloads.html

登录Linux,打开Firefox,访问官网
进入下载页面后,点击主页右侧的“Download Spark”按钮进入下载页面
第1项Spark release一般默认选择最新的发行版本
第2项package type则选择“Pre-build with user-provided Hadoop [can use with most Hadoop distributions]”,可适用于多数Hadoop版本
选择好之后,再点击第3项给出的链接就可以下载Spark了

Windows --> Linux文件传输:
从windows网盘下载或复制
从Windows传到Linux

开始安装:
解压安装包spark-2.4.0-bin-without-hadoop.tgz至路径 /usr/local/ 注意,下载的路径或文件名不同,命令的相应地方不同。 
更改文件名
修改文件夹权限

$ cd ~/下载
$ sudo tar -zxf ~/下载/spark-2.4.0-bin-without-hadoop.tgz -C /usr/local/  #解压
$ cd /usr/local
$ sudo mv ./spark-2.4.0-bin-without-hadoop/ ./spark   # 更改文件夹名
$ sudo chown -R hadoop ./spark          # 修改文件夹权限,此处的 hadoop 为系统用户名

1.3 配置相关文件

配置Spark 的classpath

$ cd /usr/local/spark
$ cp ./conf/spark-env.sh.template ./conf/spark-env.sh   #拷贝配置文件

编辑该配置文件,在文件最后面加上如下一行内容:

export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath)

保存配置文件后,就可以启动、运行Spark了

若需要使用HDFS中的文件,则在使用Spark前需要启动Hadoop

start-dfs.sh

1.4 配置环境变量

gedit ~/.bashrc

export SPARK_HOME=/usr/local/spark
export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/lib/py4j-0.10.9-src.zip:PYTHONPATH
export PYSPARK_PYTHON=python3
export PATH=$PATH:$SPARK_HOME/bin

source ~/.bashrc

查看配置结果

1.5 运行pyspark

执行如下命令启动pyspark(无参数,默认是local[*]模式):

$ cd /usr/local/spark
$ ./bin/pyspark

(启动pyspark成功后在输出信息的末尾可以看到“>>>”的命令提示符)

1 在pyspark中运行代码

可以在里面输入python代码进行测试:

>>> print('spark')
>>> 8*2+5
>>> 6*502-1
>>> sc

可以使用命令“exit()”退出pyspark:

>>> exit()

Spark任务执行流程

四个步骤
1.构建DAG(有向无环图)(调用RDD上的方法)
2.DAGScheduler将DAG切分Stage(切分的依据是Shuffle),将Stage中生成的Task以TaskSet的形式给TaskScheduler
3.TaskScheduler调度Task(根据资源情况将Task调度到相应的Executor中)
4.Executor接收Task,然后将Task丢入到线程池中执行

二、Python编程练习:英文文本的词频统计

2.1 准备文本文件(新建并编辑实验所需的英文文本)

$ gedit article.txt

2.2 实现英文文本的词频统计

2.2.1 方法一:使用python3运行py文件

(1)编写py文件

$ gedit wordcount.py

# wordcount.py
# 读文件
file = open("/usr/local/spark/article.txt","r",encoding='UTF-8').read()

# 预处理(大小写、标点符号)
file = file.lower()    # 替换为小写
for str in '.?!,:;-_()[]{}"`!@#$%^&*+=*/\<|>':
  file = file.replace(str, " ")    # 替换标点符号为空格

# 分词
words = file.split()

# 统计每个单词出现的次数
wordcount = {}
for word in words:
	wordcount[word] = wordcount.get(word,0)+1
wclist = list(wordcount.items())    # 列表统计

# 按词频大小排序--降序
wclist.sort(key=lambda x:x[1], reverse=True)

# 打印列表
print(wclist)

(2)使用python3运行wordcount.py

$ python3 wordcount.py

运行结果

2.2.2 方法二:在pyspark中用shell命令实现词频统计

(1)启动spark-shell

$ pyspark

# 导包
>>> import os
>>> import shutil

# 读文件
>>> textFile = sc.textFile("file:///usr/local/spark/article.txt")
>>> textFile.first()

注:first()是一个“行动”(Action)类型的操作,会启动真正的计算过程,从文件中加载数据到变量textFile中,并取出第一行文本,另因为Spark采用了惰性机制,在执行转换操作的时候,即使我们输入了错误的语句,pyspark也不会马上报错,而是等到执行“行动”类型的语句时启动真正的计算,那个时候“转换”操作语句中的错误就会显示出来:拒绝连接!

# 分词(指令将文档类的内容“拍扁”成一个个单词,然后按照“ ”(空格)的样式切割)
>>> word = textFile.flatMap(lambda line:line.split(" "))

# 统计每个单词出现的次数————转换成键值对并计数,将文档中的内容按照(key,value)的方式封装,其中value为1;指令将封装好的map中的同一个key下面的value值进行相加
>>> count = word.map(lambda word:(word,1)).reduceByKey(lambda a, b:a + b)

# 将封装好的map按照key的大小进行降序(sortBy()默认为升序,参数传入False则为降序)
>>> count = count.sortBy(lambda x:x[1],False)

# 查询一下生成的Rdd内容的样式
>>> count.collect()

# 删除输出目录(非必需)
>>> if os.path.exists("file:///usr/local/spark/output_wordcount"):
...   shutil.rmtree("file:///usr/local/spark/output_wordcount", True)

# 将统计结果写入结果文件
>>> count.saveAsTextFile("file:///usr/local/spark/output_wordcount")

查看结果

注:方法一和方法二结果稍有不同,原因是方法二没有进行预处理。

三、根据自己的编程习惯搭建编程环境

此处使用PyCharm作为Python编程环境

Ubuntu 16.04 + PyCharm + spark 运行环境配置

1. 检查JAVA配置环境

可以用命令java -version或者javac -version来看你的环境有没有配置完成


出现版本号说明JDK环境配置成功

2. 官网下载地址:http://www.jetbrains.com/pycharm/ ,选择平台为Linux

PyCharm分为社区版和专业版,专业版功能更加齐全但需收费,这里我们下载社区版

3. 在终端中用cd命令跳转到你的下载目录,复制你下载的PyCharm压缩包的名字,然后执行如下命令解压缩

$ sudo tar -zxvf ~/下载/pycharm-community-2021.3.2.tar.gz -C /usr/local/   # 解压
$ sudo mv /usr/local/pycharm-community-2021.3.2 /usr/local/PyCharm   # 改名
$ sudo chown -R hadoop /usr/local/PyCharm    # 授权
$ /usr/local/PyCharm/bin/pycharm.sh    # 启动

4. PyCharm启动界面

5. 新建一个项目测试运行环境

配置完成!

本文作者:stu(dying)

本文链接:https://www.cnblogs.com/DingyLand/p/homework_02_.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   stu(dying)  阅读(144)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
🔑
  1. 1 Dancing with my phone (Explicit) HYBS
  2. 2 Catch (Feat. Hwa Sa) Epik High (에픽하이)
  3. 3 건물 사이에 피어난 장미 (Rose Blossom) H1-KEY
  4. 4 The Weekend 88rising,BIBI
  5. 5 天气未报 余佳运
  6. 6 和你 余佳运
  7. 7 九月底 余佳运
  8. 8 POP/STARS K/DA,Madison Beer,(G)I-DLE,Jaira Burns
  9. 9 Uh-Oh (G)I-DLE
  10. 10 For You (G)I-DLE
  11. 11 데이지(雏菊) PENTAGON
  12. 12 BAD PENTAGON
和你 - 余佳运
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

作词 : 余佳运

作曲 : 余佳运

许多回忆 藏在心底

总来不及 都告诉你

和你一起 爬过山顶 入过海里

难免粗心 时而大意

难过开心 你都参与

笑到抽筋 哭到决堤

和你一起 想去东京 飞到巴黎

那些事情 全因为你

我想和你 赏最美的风景

看最长的电影 听动人的旋律

是因为你和我

会陪你到下个世纪

那是多么的幸运

可爱的你 爱哭的你

善良的你 美好的你

和你一起 聊着过去 说起曾经

那些画面都 是你

我想和你 赏最美的风景

看最长的电影 听动人的旋律

是因为你

喔我 会陪你到下个世纪

那是多么的幸运

我要和你 赏最美的风景

看最长的电影 听动人的旋律

是因为你

喔我 和你最珍贵的记忆

那是多么的幸运

我是多么的幸运