所需文件:

更新日期为2021/5/8:

Linux 内核更新包

JDK1.8

maven3.8.1

hadoop3.3.0

spark3.1.1

WSL?WSL2?

WSL是适用于 Linux 的 Windows 子系统可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具、实用工具和应用程序 - 且不会产生传统虚拟机或双启动设置开销。

您可以:

  • 在 Microsoft Store 中选择你偏好的 GNU/Linux 分发版。
  • 运行常用的命令行软件工具(例如 grepsedawk)或其他 ELF-64 二进制文件。
  • 运行 Bash shell 脚本和 GNU/Linux 命令行应用程序,包括:
    • 工具:vim、emacs、tmux
    • 语言:NodeJS、Javascript、Python、Ruby、C/ C++、C# 与 F#、Rust、Go 等。
    • 服务:SSHD、MySQL、Apache、lighttpd、MongoDBPostgreSQL
  • 使用自己的 GNU/Linux 分发包管理器安装其他软件。
  • 使用类似于 Unix 的命令行 shell 调用 Windows 应用程序。
  • 在 Windows 上调用 GNU/Linux 应用程序。

WSL 2 是适用于 Linux 的 Windows 子系统体系结构的一个新版本,它支持适用于 Linux 的 Windows 子系统在 Windows 上运行 ELF64 Linux 二进制文件。 它的主要目标是 提高文件系统性能,以及添加 完全的系统调用兼容性

这一新的体系结构改变了这些 Linux 二进制文件与Windows 和计算机硬件进行交互的方式,但仍然提供与 WSL 1(当前广泛可用的版本)中相同的用户体验。

单个 Linux 分发版可以在 WSL 1 或 WSL 2 体系结构中运行。 每个分发版可随时升级或降级,并且你可以并行运行 WSL 1 和 WSL 2 分发版。 WSL 2 使用全新的体系结构,该体系结构受益于运行真正的 Linux 内核。

简而言之WSL类似于windows提供的虚拟机,同时相比VMWare Workstation拥有更好的IO性能且支持硬件直通。

WSL的官方文档地址:https://docs.microsoft.com/zh-cn/windows/wsl/

安装WSL和WSL2

参考官方文档:文档地址

执执行手动安装步骤即可。

以管理员身份打开 PowerShell 并运行如下代码安装WSL

  1. dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

检查系统是否支持WSL2:

  • 对于 x64 系统:版本 1903 或更高版本,采用 内部版本 18362 或更高版本。
  • 对于 ARM64 系统:版本 2004 或更高版本,采用 内部版本 19041 或更高版本。
  • 低于 18362 的版本不支持 WSL 2。

若要检查 Windows 版本及内部版本号,选择 Windows 徽标键 + R,然后键入“winver”,选择“确定”。

如果不支持WSL2,可以直接重启电脑,安装Linux发行版即可。

以管理员身份打开 PowerShell 并运行如下代码启用虚拟机功能

  1. dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

重启计算机

下载安装 Linux 内核更新包:点击下载

打开 PowerShell,然后在安装新的 Linux 发行版时运行以下命令,将 WSL 2 设置为默认版本

  1. wsl --set-default-version 2

安装Linux发行版

安装完成后点击启动,首次启动需要输入用户名和密码。

子系统安装java

首先描述一下如何进行Windows和Linux之间的文件操作:

方法一:通过 \\wsl$ 访问 Linux 文件时将使用 WSL 分发版的默认用户。 因此,任何访问 Linux 文件的 Windows 应用都具有与默认用户相同的权限。

方法二:通过VS Code访问Linux文件

参考文档:CSDN博客

正式安装:

将所需的文件复制到WSL的目录中,我一般遵循实体机的习惯放置到下载目录。

cd到存放目录使用tar命令解压压缩文件:

  1. tar -zxvf jdk-8u291-linux-x64.tar.gz

使用cp命令修改文件名便于后续操作(jdk1.8.0_291为解压后文件)

  1. cp -r jdk1.8.0_291 jdk8

将jdk移动到某个目录,我放在了/usr/bin/java/。(通过mkdir创建java目录并移动)

  1. sudo mkdir /usr/bin/java/
  1. sudo mv jdk8 /usr/bin/java/

添加java到环境中:

  1. sudo vi /etc/profile

使用vi编辑器在最后面添加:请将JAVA_HOME路径修改为你的jdk目录,可以通过pwd查看当前目录,直接复制输出即可。

  1. export JAVA_HOME=/usr/bin/java/jdk8
  2. export PATH=$JAVA_HOME/bin:$PATH
  3. export CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

添加完成后按ESC键输入:wq!保存并退出。

使用如下命令刷新:

  1. source /etc/profile

输入 java -version和javac -version测试无异常即可。

子系统安装Maven

安装步骤与Java基本相同,解压到制定目录,添加到环境。

写入:(同样注意修改路径)

  1. # maven
  2. export MAVEN_HOME=/usr/bin/maven
  3. export PATH=$PATH:$MAVEN_HOME/bin

使用source /etc/profile刷新后使用mvn -v检查能否正常使用。

子系统安装Hadoop

安装ssh服务端:

  1. sudo apt-get update
  2. sudo apt-get install openssh-server -y

如果提示已经安装请删除后重新安装。安装完成后重启ssh服务:

  1. sudo service ssh --full-restart

使用如下命令测试ssh:

  1. ssh localhost

执行该命令后会,会出现“yes/no”选择提示,输入“yes”,然后按提示输入密码。如果出现以下提示:

修改/etc/ssh/sshd_config文件中PasswordAuthentication为yes

重启服务即可。

进入SSH后,输入命令“exit”退出刚才的SSH,就回到了原先的终端窗口;然后,可以利用ssh-keygen生成密钥,并将密钥加入到授权中,命令如下:

  1. cd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhost
  2. ssh-keygen -t rsa # 会有提示,都按回车即可
  3. cat ./id_rsa.pub >> ./authorized_keys # 加入授权

此时,再执行ssh localhost命令,无需输入密码就可以直接登录了。

下面安装hadoop

Hadoop包括三种安装模式:

单机模式:只在一台机器上运行,存储是采用本地文件系统,没有采用分布式文件系统HDFS;

伪分布式模式:存储采用分布式文件系统HDFS,但是,HDFS的名称节点和数据节点都在同一台机器上;

分布式模式:存储采用分布式文件系统HDFS,而且,HDFS的名称节点和数据节点位于不同机器上。

本文只介绍Hadoop的安装方法

解压hadoop到制定目录:(我放在了/opt/hadoop)

配置环境

  1. #Hadoop
  2. export HADOOP_HOME=/opt/hadoop
  3. export PATH=.:${JAVA_HOME}/bin:${HADOOP_HOME}/bin:$PATH

刷新后使用hadoop verson命令检查:

子系统安装Spark

解压spark到制定目录:(我放在了/opt/spark)

关联用户:

  1. sudo chown -R pteromyini ./spark #pteromyini是你的用户名

修改Spark的配置文件spark-env.sh模板文件

  1. cd /opt/spark/
  2. cp ./conf/spark-env.sh.template ./conf/spark-env.sh

修改配置文件

  1. sudo vi /opt/spark/conf/spark-env.sh

添加以下信息:(修改hadoop目录为你的目录)

  1. export SPARK_DIST_CLASSPATH=$(/opt/hadoop/bin/hadoop classpath)

有了上面的配置信息以后,Spark就可以把数据存储到Hadoop分布式文件系统HDFS中,也可以从HDFS中读取数据。如果没有配置上面信息,Spark就只能读写本地数据,无法读写HDFS数据。

配置环境:

  1. #Spark
  2. export SPARK_HOME=/opt/spark
  3. export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PATH
  4. export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/lib/py4j-0.10.9-src.zip:$PYTHONPATH
  5. export PYSPARK_PYTHON=python3

PYTHONPATH环境变量主要是为了在Python3中引入pyspark库,PYSPARK_PYTHON变量主要是设置pyspark运行的python版本。

.bashrc中必须包含JAVA_HOME,HADOOP_HOME,SPARK_HOME,PYTHONPATH,PYSPARK_PYTHON,PATH这些环境变量。如果已经设置了这些变量则不需要重新添加设置。另外需要注意,上面的配置项中,PYTHONPATH这一行有个py4j-0.10.4-src.zip,这个zip文件的版本号一定要和“/usr/local/spark/python/lib”目录下的py4j-0.10.4-src.zip文件保持版本一致。比如,如果“/usr/local/spark/python/lib”目录下是py4j-0.10.7-src.zip,那么,PYTHONPATH这一行后面也要写py4j-0.10.7-src.zip,从而使二者版本一致。

执行自带实例检查是否正常:

  1. run-example SparkPi 2>&1 | grep "Pi is"

如果正常则安装完成。

WSL2+Ubuntu配置Java Maven Hadoop Spark环境的更多相关文章

  1. Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例【附详细代码】

    http://blog.csdn.net/xiefu5hh/article/details/51707529 Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例[附 ...

  2. 在Fedora18上配置个人的Hadoop开发环境

    在Fedora18上配置个人的Hadoop开发环境 1.    背景 文章中讲述了类似于"personalcondor"的一种"personal hadoop" ...

  3. 大数据学习系列之六 ----- Hadoop+Spark环境搭建

    引言 在上一篇中 大数据学习系列之五 ----- Hive整合HBase图文详解 : http://www.panchengming.com/2017/12/18/pancm62/ 中使用Hive整合 ...

  4. scala+hadoop+spark环境搭建

    一.JDK环境构建 在指定用户的根目录下编辑.bashrc文件,添加如下部分: # .bashrc # Source global definitions if [ -f /etc/bashrc ]; ...

  5. VSCode+Maven+Hadoop开发环境搭建

    在Maven插件的帮助下,VSCode写Java其实非常方便.这一讲我们介绍如何借助maven用VScode搭建Hadoop开发环境. 1.Java环境安装 首先我们需要搭建好Java开发环境.我们需 ...

  6. Eclipse / Intellij Idea配置Git+Maven+Jetty开发环境

    作者:鹿丸不会多项式 出处:http://www.cnblogs.com/hechao123  转载请先与我联系. 最近公司给加配了Mac,本想着花一个小时的时间搭好开发环境,最后全部弄好却用了一上午 ...

  7. Eclipse+maven+scala+spark环境搭建

    准备条件 我用的Eclipse版本 Eclipse Java EE IDE for Web Developers. Version: Luna Release (4.4.0) 我用的是Eclipse ...

  8. EditPlus 配置 Java & C/CPP 开发环境

    0.1安装EditPlus 0.2安装Java 0.3安装MinGW 0.4配置Java和MinGW环境变量 1.配置Java开发环境 1.1 Tool-->Preferences 1.2 Ja ...

  9. 【转】ubuntu 配置 java jdk1.8 环境,增加多版本 jdk 和切换方法

    一.安装java jdk1.8 1.添加软件源 sudo add-apt-repository ppa:webupd8team/java 2.更新软件源 sudo apt-get update 3.安 ...

随机推荐

  1. Python爬虫学习一------HTTP的基本原理

    昨天刚买的崔大大的<Python3网络爬虫开发实战>,今天就到了,开心的读完了爬虫基础这一章,现记录下自己的浅薄理解,如有见解不到位之处,望指出. 1.HTTP的基本原理 ①我们经常会在浏 ...

  2. JS五种绑定彻底弄懂this,默认绑定、隐式绑定、显式绑定、new绑定、箭头函数绑定详解(转载)

    目录 壹 ❀ 引 贰 ❀ this默认绑定 叁 ❀ this隐式绑定 1.隐式绑定 2.隐式丢失 肆 ❀ this显式绑定 伍 ❀ new绑定 陆 ❀ this绑定优先级 柒 ❀ 箭头函数的this ...

  3. ECMAScript 2016(ES7)新特性简介

    简介 自从ES6(ECMAScript 2015)在2015年发布以来,ECMAScript以每年一个版本的速度持续向前发展.到现在已经是ECMAScript 2020了. 每个版本都有一些新的特性, ...

  4. LeetCode 175. Combine Two Tables 【MySQL中连接查询on和where的区别】

    一.题目 175. Combine Two Tables 二.分析 连接查询的时候要考虑where和on的区别 where : 查询时,连接的时候是必须严格满足条件的,满足了才会加入到临时表中. on ...

  5. 2019 南京网络赛 B super_log 【递归欧拉降幂】

    一.题目 super_log 二.分析 公式很好推出来,就是$$a^{a^{a^{a^{...}}}}$$一共是$b$个$a$. 对于上式,由于指数太大,需要降幂,这里需要用到扩展欧拉定理: 用这个定 ...

  6. Bonuses on a Line Gym - 102569B

    题目链接:https://vjudge.net/problem/Gym-102569B 题意:数轴上有N个点,从0出发最多走t步问最多经过几个点. 思路:分开存负数点和整数点,然后枚举每个端点,某个点 ...

  7. java例题_46 两个字符串拼接问题!

    1 /*46 [程序 46 字符串连接] 2 题目:两个字符串连接程序,将两个字符串拼接在一起 3 */ 4 5 /*分析 6 * 两个字符串的拼接方法 7 * concat方式 8 * 当两个量都为 ...

  8. 最短路径(Dijskra算法)

    声明:图片及内容基于:https://www.bilibili.com/video/BV16C4y1H7Zc?from=articleDetail 最短路径 Dijkstra算法 原理 数据结构 核心 ...

  9. STM32内存结构介绍和FreeRTOS内存分配技巧

    这是我第一次使用FreeRTOS构建STM32的项目,踩了好些坑,又发现了我缺乏对于操作系统的内存及其空间的分配的知识,故写下文档记录学习成果. 文章最后要解决的问题是,如何恰当地分配FreeRTOS ...

  10. elasticsearch 7.7 配置文件:elasticsearch.yml

    # ======================== Elasticsearch Configuration ========================= # # NOTE: Elasticse ...