菜单

Win10上利用子系统搭建hadoop本地开发条件及广大难点消除

2019年3月31日 - 皇家赌场系统

————————————————————————————————————————————————

与Windows通讯


近年来子系统与Windows之间通过以下三种方法实行广播发表

  1. 透过tcp协议实行报纸发表(不难题说正是用互连网,端口都以通的)
  2. 通过 /mnt/【盘符】/目录 的法门访问Windows目录

试过在Windows的能源管理器中直接对子系统环境目录下的文本所做的改动无法被子系统所识别,因而必要在bash下进行操作。

图片 1

第一步:安装Ubuntu子系统

开辟windows商店,搜索Ubuntu,找到后点击安装,等待安装完成即可。
安装完毕后,为了以往能加快布局速度,设置包源为Ali源。

  1. 首先登陆微软官网,使用自个儿的微软账号登陆进去,把本身的账号转换来开发者账号,假诺找不到登陆链接,能够直接从下边第壹步链接账号的地点进入。
  2. 菜单路径是:起初菜单->齿轮图标进入安装->更新和安全->Windows预览体验安排,先选用链接Microsoft账户,使用你的微软账号捆绑到Win10连串,然后在地点的拿走Insider
    Preview中,打开开发者预览作用。
  3. 同一个装置界面中,选用最上边的Windows更新,这时候你会找到很多预览版的升官,踏踏实实升级到那么些新型的预览版。你问是不是稳定?你个*nix码农,关切Win10祥和不安宁干啥?

写在结尾


WSL折腾完有一段时间了,只是直接没时间记录下来(可能是懒吧)。此前,由于工作亟待,偶尔全职运维的角色,折腾下服务器什么的,就很业余的上学了有的linux指令。在此以前装过vmware,体验不是很好就不想装了,所以写shell脚本、编写翻译源码什么的都是在企业测试服务器上练兵的,以往有了WSL之后就能够在和谐本地练习了(肆意折腾,哈哈哈)。使用方面,体验和动用极限工具连接远程服务器是大致的;品质方面,子系统(bash进度)本身是不占多少内部存款和储蓄器的,运营程序差不多相当于运维Windows程序了,不显得图形界面内部存款和储蓄器都占用相比较小,肯定优于”印象中的虚拟机”。总的来说,WSL依然比较值得推荐去折腾的,也相比符合新手学习linux,固然本人也只是个小白⊙﹏⊙


–assume-yes可选:安装交互全部yes。

要求

系统:win10(唯有win10得以安装子系统)

ssh Administrator@192.168.1.100

WSL开机运维


职务管理器

开拓任务管理器我们能够窥见,在运营子系统的时候,后台其实有一个bash的进程在运维,大家每开二个命令行窗口就会多二个
bash.exe,假设大家把拥有的 bash.exe
都关闭则那一个bash进度就关闭了(约等于是子系统关机了),跟着前边在子系统中开辟的顺序如nginx、sshd等也随即关闭了。为了让linux程序能够在后台继续运营,那里透过
vbs 脚本在后台打开一个 bash.exe
来有限支撑bash进度一向开着。当然,还足以因而Windows的布署职责实现开机运转WSL并开拓个中的次序。

# 1.新建开机启动脚本
vim /usr/anyesu/boot.sh
# 2.编辑
#================================================================
# #!/bin/sh
# /usr/anyesu/nginx/sbin/nginx
# service ssh start
# $SHELL  #这句很重要,挂起当前脚本进程,进而维持base.exe一直打开
#================================================================
# 3.设置权限
chmod 777 /usr/anyesu/boot.sh
# 4.创建vbs脚本(D:\linux\wsl.vbs)
#==========================================
# Set ws = CreateObject("Wscript.Shell") 
# ws.run "bash /usr/anyesu/boot.sh",vbhide
#==========================================
# 5.创建计划任务

安排任务

创造基本职务

安装任务名称

安装任务触发条件——用户登录

安装义务操作——运行

安装职务操作——运维vbs脚本

运作陈设任务

  1. 安装 CLang 和 libicu-dev

    apt-get install clang libicu-dev

第三步:安装Hadoop

在配备完ssh后,你能够直接依照合法文书档案中的表达,在linux环境下安装Hadoop了,那里列出重庆大学步骤。

Hadoop 信赖JDK,首先要求安装Java,那里设置Oracle Java 8

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

翻开JAVA安装路径

sudo update-alternatives --config java

  Selection    Path                                     Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-8-oracle/jre/bin/java   1081      auto mode
* 1            /usr/lib/jvm/java-8-oracle/jre/bin/java   1081      manual mode

看到JDK路径为/usr/lib/jvm/java-8-oracle

/etc/environment中率先行添加如下内容:

JAVA_HOME="/usr/lib/jvm/java-8-oracle"

创新环境变量

source /etc/enviroment

cd /opt
wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.9.0/hadoop-2.9.0.tar.gz
tar xzvf hadoop-2.9.0.tar.gz

/etc/environment文件中第2行添加HADOOP_HOME变量,为了输入指令时的造福着想,你能够参预到PATH环境变量中。

HADOOP_HOME="/opt/hadoop-2.9.0"
PATH="$HADOOP_HOME/bin:..."

source /etc/environment

修改etc/hadoop/hadoop-env.sh文件中的JAVA_HOME变量

export JAVA_HOME=/usr/lib/jvm/java-8-oracle

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

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

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

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

修改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>

bin/hdfs namenode -format

sbin/start-dfs.sh

sbin/start-yarn.sh

输入jps命令,若以下进程都运维了,表达运转成功

1984 SecondaryNameNode
2212 ResourceManager
2376 Jps
1738 DataNode
1612 NameNode
2334 NodeManager

hadoop fs -mkdir /user
hadoop fs -mkdir /user/<username>

时至明日windows上的hadoop环境就搭建实现了,你能够打开localhost:50070翻开是还是不是运维成功。

好了,今后您能够利用idea或其余开发工具实行支付和调剂了,而不用每一回都打包到服务器上运行了(击手)

启用ssh(参考)


本土能够经过命令行打开bash,假若要远程访问(就如访问线上服务器一样),那么就要求启用ssh。

# 1.安装ssh(一般不需要这步)
apt-get install openssh-server
# 2.修改配置文件
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
vim /etc/ssh/sshd_config
#=======(修改以下选项内容)=========#
# Port 23(22端口已被占用)        #
# (取消注释)ListenAddress 0.0.0.0 #
# UsePrivilegeSeparation no      #
# PermitRootLogin yes            #
# (注释)StrictModes yes         #
# PasswordAuthentication yes     #
#================================#
# 3.启动ssh
service ssh start
# 4.如果提示“sshd error: could not load host key”,则用下面的命令重新生成
rm /etc/ssh/ssh*key
dpkg-reconfigure openssh-server

行使终端工具访问,这里本人用的是 WinSCP + PuTTY

WinSCP

PuTTY

deb http://mirrors.163.com/ubuntu trusty main restricted universe multiverse
deb http://mirrors.163.com/ubuntu trusty-upadates main restricted universe multi
verse
deb http://mirrors.163.com/ubuntu trusty-security main restricted universe multiverse

步骤

————————————————————————————————————————————————

1. 通过apt-get格局安装
apt-get install nginx
# 启动报错了:
nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
# 80端口实际没被占用,那应该就是ipv6的问题,将其禁用: 
vim /etc/nginx/sites-available/default
# 找到default_server ipv6only=on;注释掉
# 再次启动没报错,不过浏览器无法访问,80端口也没被使用,查看error.log
cat /var/log/nginx/error.log
# 看到错误信息:
ioctl(FIOASYNC) failed while spawning "worker process" (22: Invalid argument)

# 解决方法:禁用master进程模式
sed -i '1 a\master_process off;' /etc/nginx/nginx.conf

再度启航,终于没报错了,Windows中打开浏览器访问127.0.0.1,还真的实验成功了,然则nginx版本有点老,是1.4.6的。

 /root 目录对应Windows系统的 %localappdata%\lxss\root 文件夹(注意,不要删除lxss目录,bash会退步)。

第二步:配置Ubuntu子系统

子系统主机名暗中同意使用windows宿主机的名字,假诺您平素没改过展现的应有是一串字符,为了便利开发,你应当修改主机名。通过设置->系统->关于->重命名这台电脑更改主机名。

sudo passwd root

为了能有益开发,能够安装Ubuntu的默许登录用户为日前登录win10的用户名,因为你付出时是以当下登录用户执行顺序的,所以为了制止权限问题,推荐您如此做。
诸如当前自作者win10的用户为manlier,那就安装暗许用户为manlier,倘诺当前ubuntu中并未该用户,会让您创立。

在Power shell 中执行

ubuntu config --default-user <username>

Ubuntu 暗中认可安装了ssh服务,如若没有安装,执行

sudo apt-get install openssh-client
sudo apt-get install openssh-server

sudo service ssh start

假若境遇难题,重新安装ssh服务

sudo apt-get purge openssh-server
sudo apt-get install openssh-server

再一次运维suddo service ssh --full-restart查阅是还是不是已开发银行成功

ssh端口暗中同意是22号端口,该端口在win10中已经被sshProxy服务占了,你能够关闭该服务。也足以透过上边的吩咐在Ubuntu中改变ssh端口。

修改/etc/ssh/sshd_configPort 22为其它端口

vi /etc/ssh/sshd_config

重启ssh服务

sudo service ssh --full-restart

正文选择第2种,即直接关闭sshProxy服务。若你选拔第叁种,之后要求配置Hadoop集群的ssh端口。

由此可见,Hadoop必要建立在ssh的免密服务之上,由此需求举办ssh的公钥登录配置。

修改sshd_config文本,首要更改上面几行

UsePrivilegeSeparation no
PermitRootLogin no         #如果你确实要用root方式登录的话设为yes
PasswordAuthentication yes

在Ubuntu中重启ssh服务

sudo service ssh --full-restart

执行ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa变化密钥,注意不要使用dsa加密,它不安全也不再被接济。

执行ssh-copy-id -i ~/.ssh/id_rsa.pub <username>@localhost将公钥发送至Ubuntu,时期供给输入一次(之后就不须求了)用户的密码。

由来免密服务一度计划完成。运转ssh localhost查阅是还是不是不须要密码登录,若出现难点,请查看输出到荧屏的日记。

(你有没有好奇明天的题头图作者未曾说图像和文字无关?事实上那幅图片是Win10预置的桌面壁纸之一,不算非亲非故吧?)

运作图形界面程序(参考)


怎么样!linux不是就那样个黑白界面的窗口吗?是的,你没看错,便是图形界面,那里运用的是Xserver这几个东东,至于原理什么的各位自行度娘吧。

Xming

  1. 安装Xming
    下载地址

  2. 设置完直接打开 Xming 即可

  3. 设置2个 firefox 测试
    apt-get install firefox

  4. 运转(在先后指令前增进”DISPLAY=:0 “)
    DISPLAY=:0 firefox

  5. 简化配置
    老是运转程序都要输入 DISPLAY=:0
    挺累的,执行下列指令后重启bash即可省去那一个手续
    echo "export DISPLAY=:0.0" >> ~/.bashrc

Sublime Text 3安装


既然如此都足以运作图形界面了,编辑器也要换到可视化的,毕竟vim如故不太符合自个儿。

cd /
# 下载
wget https://download.sublimetext.com/sublime-text_build-3126_amd64.deb
# 安装
dpkg -i sublime-text_build-3126_amd64.deb
# 运行
subl

什么鬼,报错了!

应当是少了何等重视包,嗯,安装下解决。

apt-get -y install libgtk2.0-0

删除用remove替换install。

Win10上利用子系统搭建hadoop本地开发条件及周边难点一挥而就

已知有几项限制,开发进度中可能会遇见:

在子系统上运维nginx


因工作项目中用到了 ssi 技术,而现已windows上一度编写翻译好的 nginx
是不协助相对路径引用的(亟待修改源码重新编写翻译),只好源委员会屈求全用着
Apache 。可是既然将来都能跑linux了,那就尝试在linux上运维
nginx,然后在windows上进展调用。

<unknown>:0: error: could not load the swift standard library

说明

满心鼓舞的备选上学hadoop,没悟出困难重重,具体多坑?
Hadoop对微软如此不自个儿,
原先打算安装在docker上行吗,一搜寻,2个学科都没有,小编???,
那装个虚拟机吧,配置范围了自家的设想,
那搞个双系统吧,linux上又无法安装qq等必须软件,
就算如此也可编写翻译Hadoop源码为windows版本,然而hadoop那么多生态环境,难道本人要每三个都编写翻译?
您只怕会将代码打包为jar包再发送到服务器上运行,可是那扩张了大气的调节工作,而且浪费了大气时日。
自家拿那windows能怎么办?甚至一度想换个黑苹果(忍住了)。

推断小编大微软团结也发觉那样下来不可能毛利,只能赶紧叫上兄弟Ubuntu来填坑。
本课程利用win10自带的Ubuntu子系统来配置Hadoop运维环境。

诸如此类来登陆到Win10,随后能够用bash运转linux。
不过即使linux已经在电脑桌面别的的CMD窗口运营了怎么做?那时候bash命令会报错,说已经有任何实例运营,怎么消除吗?能够在桌面进入linux子系统,编辑一下/etc/ssh/sshd_config文件,把里面包车型大巴22号端口,修改为比如23,修改完是那样子的:

WSL

正文永久更新链接地址:http://www.linuxidc.com/Linux/2016-04/130163.htm

科普错误

若你在Ubuntu中以root身份运行了hadoop,并且创设了文本,那么这一个文件就属于root。而在付出环境中,你是用作任何用户运营程序的,没有权力访问该文件,要访问文件,可因而以下指令更改文件全体者:

sudo hadoop fs -chown [-R] [OWNER][:[GROUP]] URI [URI ]

OWNER:GROUP就是用户:所属组,例如更改为manlier:supergroup将文件的主人改为了supergroup组下的manlier用户

查看logs/hadoop-<username>-datanode-<hostname>.log文件检查错误。

若出现java.io.IOException: Incompatible
clusterIDs,则表达您的data进程的集群id与name进程的集群id不等同,化解办法如下:

找到您的hdfs的公文存放路径,若你没有内定,暗许为/tmp/hadoop-<username>,彻底去除它,重新格式化文件系统,重启hadoop即可,查看实际原因。

翻看当前是还是不是安顿好了HADOOP_HOME环境变量

echo $HADOOP_HOME

假诺出口为空,你须要在/etc/enviroment文本中装置Hadoop目录:

HADOOP_HOME=your_hadoop_path

一视同仁复更新环境变量

source /etc/enviroment

不少unix程序员的工作措施都以ssh登陆,然后vi修改程序,接着make编写翻译。
到了win10你会发现,同样的ssh不管用了……
实在的状态是那般,win10私下认可的ssh留给了温馨的CMD应用,也正是Windows命令行,你只可以选拔Win10的管理人登陆,比如一般默许的Administrator,也正是说,你应该用接近:

改换数据源(参考)


Ubuntu下大家能够透过
apt-get命令
很便利的设置/卸载软件,由于暗中同意的软件包仓库是身处国外的,安装软件的时候就大概蒙受各样网络难点要么下载到的有个别财富不完整,由此就须要切换数据源为国内的镜像站点来革新。

# 1.备份原来的数据源配置文件
cp /etc/apt/sources.list /etc/apt/sources.list_backup
# 2.编辑数据源配置文件
vim /etc/apt/sources.list
# 在这里我使用的是阿里云的数据源:
#==============================================================================================
# deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
# deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
# deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
# deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
# deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
#===============================================================================================
# 3.更新配置
apt-get update
  1. 重复载入配置,查看结果:

    root@localhost:~# source ~/.bashrc
    root@localhost:~# swift –version
    Swift version 3.0-dev (LLVM b010debd0e, Clang 3e4d01d89b, Swift 7182c58cb2)
    Target: x86_64-unknown-linux-gnu
    root@localhost:~#

  2. 近来仍不能够进入REPL环境依旧编译swift文件。

前言


前段时间,机子上的win10又偷偷升级到了二10日年正式版,比较无奈。不过从前听大人讲这么些本子现已支撑内置的linux子系统,于是就怀着好奇心试玩了一把。就算时期蒙受了许多题材,但完全来说那些子系统体验还不错,在此间就享受部分关键步骤和遭遇的难点,剩下的门阀本人折磨吗。。

Windows
10预览版14316中早已提供bash组件,默许关闭的,启用的法子是先选中“开端->设置->更新和安全->针对开发人员->开发人士情势”,然后按 Win+X,F 打开“程序和效应”,点击左侧的“启用或关闭Windows功效”,然后找到并勾选 Windows Subsystem for Linux
(Beta) ,分明后会提示重启运行系统。

晋级会损耗相比较长的时间,一旦升级成功,打开应用商店,选四个您喜爱的linux版本,下载就好了。

合法质地


apt-get --assume-yes install git

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图