Wsl2 + VsCode 一站式搭建Hadoop + Spark环境
想要搭建Linux、Hadoop、Spark等环境,如今通常的做法是在VM、Virtualbox等软件上安装虚拟机
本文介绍在windows子系统(Windows Subsystem for Linux)上搭建相关环境并利用vscode举行Spark程序开辟
WSL2环境准备
简单来说只需在PowerShell一行命令 wsl --install 即可
默认安装Ubuntu
WSL2安装官方文档详细请见
https://learn.microsoft.com/zh-cn/windows/wsl/setup/environment
PowerShell中键入ubuntu即可进入wsl环境
注意到Windows文件资源管理器已经多了一只linux小企鹅,可以像访问Windows文件资源一样访问Wsl
搭建Hadoop伪分布式环境
资源准备
- 修改/opt目录权限:
sudo chown -R yourname /opt # 以下的用户名xuxin替换为用户姓名.
- 在/opt目录下新建两个文件夹module 和 software
/opt/software目录下准备jdk-1.8和hadoop-3.2.3
jdk:< Java Downloads | Oracle>
hadoop:<Apache Hadoop>
- 将下载好的文件直接复制粘贴进/opt/software目录下
- 解压文件
- tar -zxvf /opt/software/jdk-8u212-linux-x64.tar.gz -C /opt/module/
- tar -zxvf /opt/software/hadoop-3.2.3.tar.gz -C /opt/module/
复制代码 配置ssh服务
- 安装ssh server
sudo apt install openssh-server
- 配置免密登录
- cd ~/.ssh/ # 若没有该目录,先执行ssh localhost
- ssh-keygen -t rsa # 出现提示,全部回车即可
- cat ./id_rsa.pub >> ./authorized_keys
复制代码 配置Java环境
- 修改.bashrc文件
vim ~/.bashrc
添加以下内容
- export JAVA_HOME=/opt/module/jdk1.8.0_212
- export PATH=${JAVA_HOME}/bin:$PATH
复制代码
- 使配置文件见效
source ~/.bashrc
- 出现以下内容表示java环境搭建完成
java -version
配置hadoop环境
- cd /opt/module/hadoop-3.2.3
- vim ./etc/hadoop/core-site.xml
复制代码
- <configuration>
- <property>
- <name>hadoop.tmp.dir</name>
- <value>file:/opt/module/hadoop-3.2.3/tmp</value>
- <description>Abase for other temporary directories.</description>
- </property>
- <property>
- <name>fs.defaultFS</name>
- <value>hdfs://localhost:9000</value>
- </property>
- <!--
- Access hadoop ui,Use your username
- -->
- <property>
- <name>hadooop.http.staticuser.user</name>
- <value>xuxin</value>
- </property>
- </configuration>
复制代码
- cd /opt/module/hadoop-3.2.3
- vim ./etc/hadoop/hdfs-site.xml
复制代码
- <configuration>
- <property>
- <name>dfs.replication</name>
- <value>1</value>
- </property>
- <property>
- <name>dfs.namenode.name.dir</name>
- <value>file:/opt/module/hadoop-3.2.3/tmp/dfs/name</value>
- </property>
- <property>
- <name>dfs.datanode.data.dir</name>
- <value>file:/opt/module/hadoop-3.2.3/tmp/dfs/data</value>
- </property>
- </configuration>
复制代码
- cd /opt/module/hadoop-3.2.3
- ./bin/hdfs namenode -format
复制代码
- cd /opt/module/hadoop-3.2.3/
- ./sbin/start-dfs.sh
复制代码
- 欣赏器访问localhost:9870可访问web页面
Utilities -> Browse the file system 检察hdfs文件系统
- 如果必要web端举行操纵,可以在Hadoop目录下关闭安全模式
./bin/hadoop dfsadmin -safemode leave
运行wordcount示例代码
- cd /opt/module/hadoop-3.2.3/
- mkdir input
- vim test.txt
复制代码
- I learn C language
- I like Java
- I do not like Python
复制代码
- hdfs创建用户目录
./bin/hadoop fs -mkdir -p /user/xuxin
- 由于指定了用户目录,因此在命令中就可以利用相对路径如 input,其对应的绝对路径就是 /user/xuxin/input
./bin/hadoop fs -put ./input input
- 在web端可见已经上传乐成
- 运行实例wordcount代码
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.3.jar wordcount input output
- 检察output输出
./bin/hadoop fs -cat output/*
OK,至此乐成完成hadoop环境准备
Spark简单示例
资源准备
- 下载spark-3.2.4版本
<Downloads | Apache Spark>
- 同样的方式将文件直接复制粘贴进/opt/software目录下
- 解压
- cd /opt/software
- tar -zxvf ./spark-3.2.4-bin-hadoop3.2.tgz -C ../module
复制代码 配置spark环境
- mv spark-env.sh.template spark-env.sh
- vim spark-env.sh
复制代码
- 添加一行
export SPARK_DIST_CLASSPATH=$(/opt/module/hadoop-3.2.3/bin/hadoop classpath)
运行示例代码
- cd /opt/module/spark-3.2.4-bin-hadoop3.2
- ./bin/run-example SparkPi
复制代码
- 运行结果
- 观察到输出结果: Pi is roughly 3.1451557257786287
配置PySpark环境
Spark On Yarn
yarn准备
- cd /opt/module/hadoop-3.2.3/etc/hadoop
- vim mapred-site.xml
复制代码 添加以下内容
- <property>
- <name>mapreduce.framework.name</name>
- <value>yarn</value>
- </property>
复制代码
- 修改 yarn-site.xml配置文件
vim yarn-site.xml
- <property>
- <name>yarn.nodemanager.aux-services</name>
- <value>mapreduce_shuffle</value>
- </property>
复制代码
- 开启yarn
./sbin/start-yarn.sh
检察当进步程
- 可以简单编写脚本方便hadoop启动与关闭
- #!/bin/bash
- if [ $# -lt 1 ]
- then
- echo "No Args Input..."
- exit ;
- fi
- case $1 in
- "start")
- echo "==================== 启动 hadoop集群 ===================="
- echo "------------- 启动 hdfs -------------"
- "/opt/module/hadoop-3.2.3/sbin/start-dfs.sh"
- echo "------------- 启动 yarn -------------"
- "/opt/module/hadoop-3.2.3/sbin/start-yarn.sh"
- echo "GO SEE http://localhost:9870/explorer.html#/ EXPLORE YOUR HDFS!"
- ;;
- "stop")
- echo "==================== 关闭 hadoop集群 ===================="
- echo "------------- 关闭 yarn -------------"
- "/opt/module/hadoop-3.2.3/sbin/stop-yarn.sh"
- echo "------------- 关闭 hdfs -------------"
- "/opt/module/hadoop-3.2.3/sbin/stop-dfs.sh"
- ;;
- *)
- echo "Input Args Error..."
- ;;
- esac
复制代码- my_hadoop.sh start # 开启hdfs & yarn
- my_hadoop.sh stop # 关闭yarn & hdfs
复制代码 安装Miniconda3
- 资源准备
<Miniconda — miniconda documentation>
选择Linux版本下载
- 同样方式复制到/opt/software目录下并运行
- cd /opt/software
- bash ./Miniconda3-latest-Linux-x86_64.sh
复制代码
- 跟着指引安装即可, 安装目录可以选择 /opt/module/miniconda3
- 安装完成
- 重启shell可以看见前边多了一个(base)
- 创建conda虚拟环境
conda create -n pyspark python=3.10
配置spark文件
- HADOOP_CONF_DIR=/opt/module/hadoop-3.2.3
- YARN_CONF_DIR=/opt/module/hadoop-3.2.3
复制代码
- export PYSPARK_PYTHON=/opt/module/miniconda3/envs/pyspark/bin/python
- export PYSPARK_DRIVER_PYTHON=/opt/module/miniconda3/envs/pyspark/bin/python
复制代码 Vscode配置远程连接
插件准备及python表明器选择
- 安装Remote Development插件
- 安装Python插件
- 左侧找到远程资源管理器选择Ubuntu并在当前窗口连接
- 在家目录创建pyspark-project文件夹
- cd ~
- mkdir pyspark-project
复制代码
- 在vscode中选择此文件夹打开
- 安装python库pyspark
ctrl + ` 打开终端举行安装
- conda activate pyspark
- pip install pyspark==3.2.0 # pyspark版本不能太高,否则有兼容性问题
复制代码
测试WordCount程序
- # coding:utf8
- '''
- word_count.py
- 单词计数
- '''
- from pyspark import SparkConf, SparkContext
- if __name__ == '__main__':
- conf = SparkConf().setAppName("WordCount")
- sc = SparkContext(conf=conf)
- input_path = "input/test.txt"
- file_rdd = sc.textFile(input_path)
- words_rdd = file_rdd.flatMap(lambda line: line.split(" "))
- words_with_one_rdd = words_rdd.map(lambda x: (x, 1))
- result_rdd = words_with_one_rdd.reduceByKey(lambda a, b: a + b)
- result_rdd.coalesce(1).saveAsTextFile("output")
-
复制代码
- cd /opt/module/spark-3.2.4-bin-hadoop3.2
- ./bin/spark-submit --master yarn ~/pyspark-project/test/word_count.py
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |