在Ubuntu20.04搭建Hadoop分布式平台和分布式内存计算平台Pyspark然后用hadoop加载数据文件统计出单词出现次数
1.搭建Hadoop平台
详见上一篇博客:(9条消息) 在Ubuntu20.04里安装Hadoop详细步骤(图文),亲测成功!_菜鸡的学习之路的博客-CSDN博客
2.搭建Pyspark平台
使用pip方式安装(直接下载有点慢,用了清华大学的镜像,但是好像换了镜像以后我下载的也挺慢的,不知道大家怎么样):
pip install pyspark -i https://pypi.tuna.tsinghua.edu.cn/simple/
设置Spark和Hadoop环境变量:打开终端,并编辑你的 Bash 配置文件(例如 .bashrc
)。
nano .bashrc
添加以下行来设置 Spark和Hadoop 的环境变量:
export SPARK_HOME=/home/hadoop/.local/lib/python3.8/site-packages/pyspark
export PATH=$SPARK_HOME/bin:$PATH
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
export YARN_CONF_DIR=/usr/local/hadoop/etc/hadoop
#下面两行是后面加的,所以下面截图里没有
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
重新加载环境变量:保存配置文件后,运行以下命令来重新加载环境变量:
source ~/.bashrc
3.统计单词出现次数
①启动 HDFS:
cd /usr/local/hadoop
./sbin/start-dfs.sh
输入jps查看是否启动成功:
jps
②启动 YARN:
cd /usr/local/hadoop
./sbin/start-yarn.sh
③创建输入文件并上传到 HDFS:
-
创建一个文本文件(例如
input.txt
)并输入一些文本内容,保存后退出。cd ~ nano input.txt
-
使用以下命令将文件上传到 HDFS(先创建input文件夹再上传):
创建文件夹input:
cd /usr/local/hadoop hdfs dfs -mkdir /input
查看是否创建成功:
cd bin
hdfs dfs -ls /
上传input.txt到input:
hadoop fs -put /home/hadoop/input.txt /input
查看是否上传成功:
hadoop fs -ls /input
④创建一个 Python 脚本(例如 word_count.py
)并使用以下代码进行单词计数:
创建脚本:
cd ~
nano word_count.py
python代码:
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("WordCount").getOrCreate()
lines = spark.read.text("hdfs://localhost:9000/input/input.txt").rdd.map(lambda r: r[0])
counts = lines.flatMap(lambda x: x.split(" ")).map(lambda x: (x, 1)).reduceByKey(lambda a, b: a + b)
counts.saveAsTextFile("hdfs://localhost:9000/output/wordcount")
spark.stop()
保存退出。
⑤运行python脚本
spark-submit word_count.py
⑥查看计数结果,使用以下命令从 HDFS 中获取计数结果:
cd /usr/local/hadoop/bin
hdfs dfs -cat /output/wordcount/part-*
到这里就结束啦!