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

Win10上利用子系统搭建hadoop本地开发条件及大面积难点解决

说明

满心鼓舞的准备上学hadoop,没悟出困难重重,具体多坑?
Hadoop对微软如此不团结,
本来打算安装在docker上得以呢,一搜寻,1个科目都未曾,我???,
那装个虚拟机吧,配置范围了作者的想像,
那搞个双系统吧,linux上又不可能安装qq等必须软件,
尽管如此也可编写翻译Hadoop源码为windows版本,但是hadoop那么多生态环境,难道自个儿要每三个都编写翻译?
您只怕会将代码打包为jar包再发送到服务器上运转,但是那增加了汪洋的调节和测试工作,而且浪费了大量日子。
自家拿那windows能如何做?甚至早已想换个黑苹果(忍住了)。

估价笔者大微软团结也发现这样下去不可能盈利,只可以赶紧叫上兄弟Ubuntu来填坑。
本课程利用win10自带的Ubuntu子系统来配置Hadoop运转环境。

要求

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

步骤

第一步:安装Ubuntu子系统

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

第二步:配置Ubuntu子系统

  • 安装主机名(不是必须的)

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

  • 设置root密码

sudo passwd root
  • 安装暗中同意登录用户

为了能有益开发,能够安装Ubuntu的默许登录用户为方今登录win10的用户名,因为您付出时是以如今报到用户执行顺序的,所以为了制止权限难点,推荐您如此做。
诸如当前自小编win10的用户为manlier,那就安装私下认可用户为manlier,假设当前ubuntu中并未该用户,会让您创设。

在Power shell 中执行

ubuntu config --default-user <username>
  • 安装ssh服务

Ubuntu 暗中同意安装了ssh服务,假如没有设置,执行

sudo apt-get install openssh-client
sudo apt-get install openssh-server
  • 启动ssh服务

sudo service ssh start

假设赶上难点,重新安装ssh服务

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

再次运维suddo service ssh --full-restart翻开是还是不是已开行成功

  • 配置ssh端口

ssh端口暗中同意是22号端口,该端口在win第10中学早已被sshProxy服务占了,你能够关闭该服务。也得以通过下边包车型地铁授命在Ubuntu中改变ssh端口。

修改/etc/ssh/sshd_configPort 22为别的端口

vi /etc/ssh/sshd_config

重启ssh服务

sudo service ssh --full-restart

正文采纳第③种,即直接关门sshProxy服务。若你挑选第三种,之后需求配置Hadoop集群的ssh端口。

  • 安顿免密登录

显然,Hadoop须求树立在ssh的免密服务之上,因而必要展开ssh的公钥登录配置。

修改sshd_config文本,主要更改上边几行

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

亚洲必赢bwin696.com,在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翻看是还是不是不供给密码登录,若出现问题,请查看输出到荧屏的日记。

第三步:安装Hadoop

在配置完ssh后,你能够直接依照官方文书档案中的表明,在linux环境下安装Hadoop了,那里列出第3步骤。

  • 安装JDK

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_HOME

翻开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
  • 下载Hadoop并解压

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
  • 设置HADOOP_HOME路径

/etc/environment文本中率先行添加HADOOP_HOME变量,为了输入指令时的便宜着想,你能够投入到PATH环境变量中。

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

source /etc/environment
  • 设置JAVA_HOME路径

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

export JAVA_HOME=/usr/lib/jvm/java-8-oracle
  • 以伪分布形式配置Hadoop

修改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>
  • 配置YA君越N(若你选拔YA瑞虎N作为能源管理器)

修改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
  • 翻开 NameNode 和 DataNode 守护进度

sbin/start-dfs.sh
  • 开启YARN

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或其余开发工具进行付出和调节了,而不用每一遍都打包到服务器上运营了(鼓掌)

周边错误

  • 用户权限难题

若您在Ubuntu中以root身份运营了hadoop,并且创办了文件,那么那么些文件就属于root。而在支付条件中,你是作为其余用户运营程序的,没有权限访问该公文,要拜访文件,可透过以下指令更改文件全部者:

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

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

  • datanode进度未运转

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

若出现java.io.IOException: Incompatible
clusterIDs,则证实您的data进度的集群id与name进度的集群id不相同,消除办法如下:

找到您的hdfs的文书存放路径,若你未曾钦命,私下认可为/tmp/hadoop-<username>,彻底剔除它,重新格式化文件系统,重启hadoop即可,查看切切实实原因

  • 出现 Unable to load native-hadoop library for your platform…

查阅当前是或不是陈设好了HADOOP_HOME环境变量

echo $HADOOP_HOME

只要出口为空,你要求在/etc/enviroment文件中装置Hadoop目录:

HADOOP_HOME=your_hadoop_path

并再次更新环境变量

source /etc/enviroment

相关文章