美文网首页初见Spark
Windows 10 利用Linux子系统配置本地Spark环境

Windows 10 利用Linux子系统配置本地Spark环境

作者: 帅气的外表之下 | 来源:发表于2019-07-22 16:57 被阅读0次

偶然在应用商店看到了一个Ubuntu的应用软件,想了想,在Windows下可以通过直接使用Ubuntu系统吗?
赶紧上网查了一波,发现还真可以,想到最近在学习Spark搞了个虚拟机,突然发现这个比虚拟机好用多了。资源消耗没这么大。
配置一下Spark环境。

Windows 10 启动Linux子系统

  • 打开开发者模式
    打开设置



    打开更新和安全 ,点击开发者选项,点击开发人员模式


    image.png
  • 更改系统功能
    打开电脑控制面板



    点击程序,再点击启动或关闭Windows功能


    image.png
    找到适用于Linux的windows子系统,勾选确定,重启电脑。
    image.png
  • 下载Ubuntu
    打开应用商店,搜索Ubuntu安装。


    image.png

    安装完后,点击启动Ubuntu。进行配置用户名,密码等。
    完成后启动界面是这样的


    image.png

配置ssh

  • 安装ssh服务
sudo apt-get install openssh-client
sudo apt-get install openssh-server
  • 启动、重启ssh服务
sudo service ssh start
sudo service ssh restart

如果遇到问题,重新安装ssh服务

sudo apt-get purge openssh-server
sudo apt-get install openssh-server
  • 配置ssh端口
    ssh端口默认是22号端口,修改/etc/ssh/sshd_config
Port 22         #如果和win10的端口号冲突,可以改为其他的
UsePrivilegeSeparation no
PermitRootLogin no         #如果你确实要用root方式登录的话设为yes
PasswordAuthentication yes
  • 配置免密登陆
执行  ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa  生成密钥
执行  ssh-copy-id -i ~/.ssh/id_rsa.pub <username>@localhost  将公钥发送至Ubuntu ,其中<username> 为你的用户名
运行  ssh localhost  查看是否不需要密码登录

安装JDK

  • 官网下载JDK
    https://www.oracle.com/technetwork/java/javase/downloads/index.html

  • 安装配置JDK
    由于这个ubuntu子系统在C盘目录下,空间不够,我选择把JDK放入到挂载的D盘目录下面。将JDK解压到/mnt/d/usr/local,并且给配置环境变量

sudo tar -zxf ./jdk-12.0.2_linux-x64_bin.tar.gz -C /mnt/d/usr/local/
cd /mnt/d/usr/local/
sudo mv ./ jdk-12.0.2 ./jdk
sudo chown -R gandi ./jdk

#再打开 /home/gandi/.bashrc,添加环境变量
export JAVA_HOME=/mnt/d/usr/local/jdk
export PATH=$JAVA_HOME/bin:$PATH

source ~/.bashrc

因为下载的是最新的jdk-12,所以配置环境变量只需要配置/bin,CLASSPATH这些都不需要了,简化了很多。

安装Hadoop

  • 下载Hadoop
    下载Hadoop我们一般去他的镜像网站上下载。我选择下载了Hadoop最新版本hadoop-3.2.0
    https://www.apache.org/dyn/closer.cgi/hadoop/common
    http://mirror.bit.edu.cn/apache/hadoop/common/
  • 安装配置
    解压安装,设置环境变量
sudo tar -zxf ./hadoop-3.2.0.tar.gz -C /mnt/d/usr/local/
cd /mnt/d/usr/local/
sudo mv ./ hadoop-3.2.0 ./hadoop
sudo chown -R gandi ./hadoop

#再打开 /home/gandi/.bashrc,添加环境变量
export HADOOP_HOME=/mnt/d/usr/local/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

source ~/.bashrc
  • 设置JAVA_HOME路径
    修改etc/hadoop/hadoop-env.sh文件中的JAVA_HOME变量
export JAVA_HOME=/mnt/d/usr/local/jdk
  • 以伪分布模式配置Hadoop
    修改etc/hadoop/core-site.xml 文件内容如下:
<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/mnt/d/usr/local/hadoop/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

# 其中的hadoop.tmp.dir的路径可以根据自己的习惯进行设置

修改etc/hadoop/hdfs-site.xml文件内容如下:

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/mnt/d/usr/local/hadoop/tmp/dfs/name</value>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/mnt/d/usr/local/hadoop/tmp/dfs/data</value>
  </property>
</configuration>

修改etc/hadoop/mapred-site.xml文件内容如下:

<configuration>
    <property>
        <name>mapred.job.tracker</name>
        <value>localhost:9001</value>
  </property>
</configuration>
  • 配置YARN(若你使用YARN作为资源管理器)
    修改etc/hadoop/mapred-site.xml文件内容如下:
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

修改etc/hadoop/yarn-site.xml如下:

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>
  • 格式化文件系统
hadoop namenode -format
  • 开启 NameNode 和 DataNode 守护进程
start-dfs.sh
  • 开启YARN
start-yarn.sh
  • 查看是否启动成功
    输入jps命令,若以下进程都启动了,说明启动成功
7201 SecondaryNameNode
6727 NameNode
7815 Jps
6939 DataNode

安装配置Spark

  • 下载Spark,选择Pre-bulit with user-provided Apache Hadoop
    http://spark.apache.org/downloads.html
    image.png
  • 安装
sudo tar -zxf spark-2.4.3-bin-without-hadoop.tgz -C /mnt/d/usr/local/
cd /mnt/d/usr/local/
mv spark-2.4.3-bin-without-hadoop/ ./spark
chown -R gandi ./spark/

#再打开 /home/gandi/.bashrc,添加环境变量
export SPARK_HOME=/mnt/d/usr/local/spark
export PATH=$SPARK_HOME/bin:$SPARK_HOME/sbin:$PATH
source ~/.bashrc
  • 配置
cp spark/conf/slaves.template ./spark/conf/slaves
cp spark/conf/spark-env.sh.template ./spark/conf/spark-env.sh

在spark-env.sh里添加

export JAVA_HOME=/mnt/d/usr/local/jdk
export SPARK_MASTER_IP=localhost
export SPARK_WORKER_MEMORY=4g
export SPARK_DIST_CLASSPATH=$(/mnt/d/usr/local/hadoop/bin/hadoop classpath)

JAVA_HOME:指定的是 Java 的安装目录
SPARK_MASTER_IP:指定的是 Spark 集群的 Master 节点的 IP 地址
SPARK_WORKER_MEMOERY:指定的 Worker 节点能够最大分配给 Excutors 的内存大小、
SPARK_DIST_CLASSPATH:Spark就可以把数据存储到Hadoop分布式文件系统HDFS中

image.png
  • 启动集群,在spark/sbin目录下,start-all.sh
    image.png
    在浏览器中输入 http://localhost:8080/ ,如下图所示
    image.png

Linux子系统文件目录在Windows下面哪个文件夹目录

  • ubuntu Linux子系统的目录是在这个目录下
C:\Users\用户名\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs

Linux访问windows文件

  • windows的磁盘被挂载到了/mnt下,可以直接访问

相关文章

网友评论

    本文标题:Windows 10 利用Linux子系统配置本地Spark环境

    本文链接:https://www.haomeiwen.com/subject/ingplctx.html