WSL + Vscode一站式搭建Hadoop伪分布式 + Spark环境

打印 上一主题 下一主题

主题 855|帖子 855|积分 2565

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目录下新建两个文件夹modulesoftware
    /opt/software目录下准备jdk-1.8hadoop-3.2.3
    jdk:< Java Downloads | Oracle>
    hadoop:<Apache Hadoop>
  • 将下载好的文件直接复制粘贴进/opt/software目录下

  • 解压文件
  1. tar -zxvf /opt/software/jdk-8u212-linux-x64.tar.gz -C /opt/module/
  2. tar -zxvf /opt/software/hadoop-3.2.3.tar.gz -C /opt/module/
复制代码
配置ssh服务



  • 安装ssh server
    sudo apt install openssh-server
  • 配置免密登录
  1. cd ~/.ssh/    # 若没有该目录,先执行ssh localhost
  2. ssh-keygen -t rsa    # 出现提示,全部回车即可
  3. cat ./id_rsa.pub >> ./authorized_keys
复制代码
配置Java环境



  • 修改.bashrc文件
    vim ~/.bashrc
    添加以下内容
  1. export JAVA_HOME=/opt/module/jdk1.8.0_212
  2. export PATH=${JAVA_HOME}/bin:$PATH
复制代码


  • 使配置文件见效
    source ~/.bashrc
  • 出现以下内容表示java环境搭建完成
    java -version

配置hadoop环境



  • 修改core-site.xml文件
  1. cd /opt/module/hadoop-3.2.3
  2. vim ./etc/hadoop/core-site.xml
复制代码


  • 改为如下配置
  1. <configuration>
  2. <property>
  3. <name>hadoop.tmp.dir</name>
  4. <value>file:/opt/module/hadoop-3.2.3/tmp</value>
  5. <description>Abase for other temporary directories.</description>
  6. </property>
  7. <property>
  8. <name>fs.defaultFS</name>
  9. <value>hdfs://localhost:9000</value>
  10. </property>
  11. <!--
  12. Access hadoop ui,Use your username
  13.   -->
  14. <property>
  15. <name>hadooop.http.staticuser.user</name>
  16. <value>xuxin</value>
  17. </property>
  18. </configuration>
复制代码


  • 同样修改hdfs.xml文件
  1. cd /opt/module/hadoop-3.2.3
  2. vim ./etc/hadoop/hdfs-site.xml
复制代码


  • 改为如下配置
  1. <configuration>
  2. <property>
  3. <name>dfs.replication</name>
  4. <value>1</value>
  5. </property>
  6. <property>
  7. <name>dfs.namenode.name.dir</name>
  8. <value>file:/opt/module/hadoop-3.2.3/tmp/dfs/name</value>
  9. </property>
  10. <property>
  11. <name>dfs.datanode.data.dir</name>
  12. <value>file:/opt/module/hadoop-3.2.3/tmp/dfs/data</value>
  13. </property>
  14. </configuration>
复制代码


  • namenode初始化
  1. cd /opt/module/hadoop-3.2.3
  2. ./bin/hdfs namenode -format
复制代码


  • 出现类似日记信息表示初始化乐成

  • 启动hdfs
  1. cd /opt/module/hadoop-3.2.3/
  2. ./sbin/start-dfs.sh
复制代码


  • 欣赏器访问localhost:9870可访问web页面
    Utilities -> Browse the file system 检察hdfs文件系统
  • 如果必要web端举行操纵,可以在Hadoop目录下关闭安全模式
    ./bin/hadoop dfsadmin -safemode leave
运行wordcount示例代码



  • 创建 test.txt文件
  1. cd /opt/module/hadoop-3.2.3/
  2. mkdir input
  3. vim test.txt
复制代码


  • 测试文件内容
  1. I learn C language
  2. I like Java
  3. 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目录下
  • 解压
  1. cd /opt/software
  2. tar -zxvf ./spark-3.2.4-bin-hadoop3.2.tgz -C ../module
复制代码
配置spark环境



  • 修改配置文件
  1. mv spark-env.sh.template spark-env.sh
  2. vim spark-env.sh
复制代码


  • 添加一行
    export SPARK_DIST_CLASSPATH=$(/opt/module/hadoop-3.2.3/bin/hadoop classpath)
运行示例代码

  1. cd /opt/module/spark-3.2.4-bin-hadoop3.2
  2. ./bin/run-example SparkPi
复制代码


  • 运行结果

  • 观察到输出结果: Pi is roughly 3.1451557257786287
配置PySpark环境

Spark On Yarn

yarn准备



  • 修改mapred-site.xml配置文件
  1. cd /opt/module/hadoop-3.2.3/etc/hadoop
  2. vim mapred-site.xml
复制代码
添加以下内容
  1. <property>
  2. <name>mapreduce.framework.name</name>
  3. <value>yarn</value>
  4. </property>
复制代码


  • 修改 yarn-site.xml配置文件
    vim yarn-site.xml
  1. <property>
  2. <name>yarn.nodemanager.aux-services</name>
  3. <value>mapreduce_shuffle</value>
  4. </property>
复制代码


  • 开启yarn
    ./sbin/start-yarn.sh
    检察当进步程

  • 可以简单编写脚本方便hadoop启动与关闭

    • 简单参考 my_hadoop.sh

  1. #!/bin/bash
  2. if [ $# -lt 1 ]
  3. then
  4.         echo "No Args Input..."
  5.         exit ;
  6. fi
  7. case $1 in
  8. "start")
  9.         echo "==================== 启动 hadoop集群 ===================="
  10.         echo "------------- 启动 hdfs -------------"
  11.          "/opt/module/hadoop-3.2.3/sbin/start-dfs.sh"
  12.         echo "------------- 启动 yarn -------------"
  13.          "/opt/module/hadoop-3.2.3/sbin/start-yarn.sh"
  14.         echo "GO SEE http://localhost:9870/explorer.html#/ EXPLORE YOUR HDFS!"
  15. ;;
  16. "stop")
  17.         echo "==================== 关闭 hadoop集群 ===================="
  18.         echo "------------- 关闭 yarn -------------"
  19.         "/opt/module/hadoop-3.2.3/sbin/stop-yarn.sh"
  20.         echo "------------- 关闭 hdfs -------------"
  21.          "/opt/module/hadoop-3.2.3/sbin/stop-dfs.sh"
  22. ;;
  23. *)
  24.                 echo "Input Args Error..."
  25. ;;
  26. esac
复制代码
  1. my_hadoop.sh start # 开启hdfs & yarn
  2. my_hadoop.sh stop  # 关闭yarn & hdfs
复制代码
安装Miniconda3



  • 资源准备
    <Miniconda — miniconda documentation>
    选择Linux版本下载
  • 同样方式复制到/opt/software目录下并运行
  1. cd /opt/software
  2. bash ./Miniconda3-latest-Linux-x86_64.sh
复制代码


  • 跟着指引安装即可, 安装目录可以选择 /opt/module/miniconda3

  • 安装完成

  • 重启shell可以看见前边多了一个(base)

  • 创建conda虚拟环境
    conda create -n pyspark python=3.10
配置spark文件



  • 在spark-env.sh文件中添加:
  1. HADOOP_CONF_DIR=/opt/module/hadoop-3.2.3
  2. YARN_CONF_DIR=/opt/module/hadoop-3.2.3
复制代码


  • 在.bashrc中添加配置:
  1. export PYSPARK_PYTHON=/opt/module/miniconda3/envs/pyspark/bin/python
  2. export PYSPARK_DRIVER_PYTHON=/opt/module/miniconda3/envs/pyspark/bin/python
复制代码
Vscode配置远程连接

插件准备及python表明器选择



  • 安装Remote Development插件
  • 安装Python插件

  • 左侧找到远程资源管理器选择Ubuntu并在当前窗口连接

  • 在家目录创建pyspark-project文件夹
  1. cd ~
  2. mkdir pyspark-project
复制代码


  • 在vscode中选择此文件夹打开

  • 安装python库pyspark
    ctrl + ` 打开终端举行安装
  1. conda activate pyspark
  2. pip install pyspark==3.2.0  # pyspark版本不能太高,否则有兼容性问题
复制代码


  • python选择pyspark虚拟环境为表明器

测试WordCount程序



  • 编写word_count.py程序
  1. # coding:utf8
  2. '''
  3. word_count.py
  4. 单词计数
  5. '''
  6. from pyspark import SparkConf, SparkContext
  7. if __name__ == '__main__':
  8.     conf = SparkConf().setAppName("WordCount")
  9.     sc = SparkContext(conf=conf)
  10.     input_path = "input/test.txt"
  11.     file_rdd = sc.textFile(input_path)
  12.     words_rdd = file_rdd.flatMap(lambda line: line.split(" "))
  13.     words_with_one_rdd = words_rdd.map(lambda x: (x, 1))
  14.     result_rdd = words_with_one_rdd.reduceByKey(lambda a, b: a + b)
  15.     result_rdd.coalesce(1).saveAsTextFile("output")
  16.    
复制代码


  • 实行代码
  1. cd /opt/module/spark-3.2.4-bin-hadoop3.2
  2. ./bin/spark-submit --master yarn ~/pyspark-project/test/word_count.py
复制代码


  • 运行结果

  • 输出文件:

    The end

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

徐锦洪

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表