偶然在應(yīng)用商店看到了一個(gè)Ubuntu的應(yīng)用軟件,想了想笨鸡,在Windows下可以通過直接使用Ubuntu系統(tǒng)嗎形耗?
趕緊上網(wǎng)查了一波拟糕,發(fā)現(xiàn)還真可以送滞,想到最近在學(xué)習(xí)Spark搞了個(gè)虛擬機(jī)犁嗅,突然發(fā)現(xiàn)這個(gè)比虛擬機(jī)好用多了褂微。資源消耗沒這么大蕊梧。
配置一下Spark環(huán)境。
Windows 10 啟動Linux子系統(tǒng)
-
打開開發(fā)者模式
打開設(shè)置
打開更新和安全 甘改,點(diǎn)擊開發(fā)者選項(xiàng)十艾,點(diǎn)擊開發(fā)人員模式
image.png -
更改系統(tǒng)功能
打開電腦控制面板
點(diǎn)擊程序,再點(diǎn)擊啟動或關(guān)閉Windows功能
image.png
找到適用于Linux的windows子系統(tǒng)庆冕,勾選確定,重啟電腦同辣。
image.png -
下載Ubuntu
打開應(yīng)用商店,搜索Ubuntu安裝描滔。
image.png
安裝完后伴挚,點(diǎn)擊啟動Ubuntu颅眶。進(jìn)行配置用戶名涛酗,密碼等燕刻。
完成后啟動界面是這樣的
image.png
配置ssh
- 安裝ssh服務(wù)
sudo apt-get install openssh-client
sudo apt-get install openssh-server
- 啟動卵洗、重啟ssh服務(wù)
sudo service ssh start
sudo service ssh restart
如果遇到問題,重新安裝ssh服務(wù)
sudo apt-get purge openssh-server
sudo apt-get install openssh-server
- 配置ssh端口
ssh端口默認(rèn)是22號端口,修改/etc/ssh/sshd_config
Port 22 #如果和win10的端口號沖突酷勺,可以改為其他的
UsePrivilegeSeparation no
PermitRootLogin no #如果你確實(shí)要用root方式登錄的話設(shè)為yes
PasswordAuthentication yes
- 配置免密登陸
執(zhí)行 ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa 生成密鑰
執(zhí)行 ssh-copy-id -i ~/.ssh/id_rsa.pub <username>@localhost 將公鑰發(fā)送至Ubuntu ,其中<username> 為你的用戶名
運(yùn)行 ssh localhost 查看是否不需要密碼登錄
安裝JDK
官網(wǎng)下載JDK
https://www.oracle.com/technetwork/java/javase/downloads/index.html
安裝配置JDK
由于這個(gè)ubuntu子系統(tǒng)在C盤目錄下,空間不夠击胜,我選擇把JDK放入到掛載的D盤目錄下面潜的。將JDK解壓到/mnt/d/usr/local
啰挪,并且給配置環(huán)境變量
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抽活,添加環(huán)境變量
export JAVA_HOME=/mnt/d/usr/local/jdk
export PATH=$JAVA_HOME/bin:$PATH
source ~/.bashrc
因?yàn)橄螺d的是最新的jdk-12,所以配置環(huán)境變量只需要配置/bin誉尖,CLASSPATH這些都不需要了,簡化了很多。
安裝Hadoop
- 下載Hadoop
下載Hadoop我們一般去他的鏡像網(wǎng)站上下載饮六。我選擇下載了Hadoop最新版本hadoop-3.2.0
https://www.apache.org/dyn/closer.cgi/hadoop/common
http://mirror.bit.edu.cn/apache/hadoop/common/
- 安裝配置
解壓安裝棒口,設(shè)置環(huán)境變量
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茎毁,添加環(huán)境變量
export HADOOP_HOME=/mnt/d/usr/local/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
source ~/.bashrc
- 設(shè)置JAVA_HOME路徑
修改etc/hadoop/hadoop-env.sh
文件中的JAVA_HOME變量
export JAVA_HOME=/mnt/d/usr/local/jdk
- 以偽分布模式配置Hadoop
修改etc/hadoop/core-site.xml
文件內(nèi)容如下:
<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的路徑可以根據(jù)自己的習(xí)慣進(jìn)行設(shè)置
修改etc/hadoop/hdfs-site.xml
文件內(nèi)容如下:
<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
文件內(nèi)容如下:
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
- 配置YARN(若你使用YARN作為資源管理器)
修改etc/hadoop/mapred-site.xml
文件內(nèi)容如下:
<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>
- 格式化文件系統(tǒng)
hadoop namenode -format
- 開啟 NameNode 和 DataNode 守護(hù)進(jìn)程
start-dfs.sh
- 開啟YARN
start-yarn.sh
- 查看是否啟動成功
輸入jps命令嵌灰,若以下進(jìn)程都啟動了,說明啟動成功
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,添加環(huán)境變量
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 節(jié)點(diǎn)的 IP 地址
SPARK_WORKER_MEMOERY:指定的 Worker 節(jié)點(diǎn)能夠最大分配給 Excutors 的內(nèi)存大小、
SPARK_DIST_CLASSPATH:Spark就可以把數(shù)據(jù)存儲到Hadoop分布式文件系統(tǒng)HDFS中
- 啟動Spark-shell,如下圖所示晌涕,進(jìn)入了Scala環(huán)境,
image.png
在瀏覽器中輸入上圖所示的地址:http://desktop-cehk519.volans.router:4040/jobs/
- 啟動集群可缚,在spark/sbin目錄下,start-all.sh
image.png
在瀏覽器中輸入 http://localhost:8080/ ,如下圖所示
image.png
Linux子系統(tǒng)文件目錄在Windows下面哪個(gè)文件夾目錄
- ubuntu Linux子系統(tǒng)的目錄是在這個(gè)目錄下
C:\Users\用戶名\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs
Linux訪問windows文件
- windows的磁盤被掛載到了/mnt下花墩,可以直接訪問