linux上以未可知装qq等必须软件。分布式系统。

linux上又不能安装qq等必须软件,分布式系统

Win10臻利用子系统搭建hadoop本地开发条件与广大问题迎刃而解

为这个篇文章来怀念痛苦之非常数额课程。。。。。。

说明

心里鼓舞的备攻读hadoop,没悟出困难重重,具体多坑?
Hadoop对微软如此不和谐,
本来打算安装于docker上得以吧,一寻找,一个课程都未曾,我???,
这就是说装个虚拟机吧,配置范围了自家的设想,
那么来个对体系吧,linux上又未克设置qq等得软件,
尽管如此也不过编译Hadoop源码为windows版本,但是hadoop那么多生态环境,难道我要列一个且编译?
公或会见以代码打包为jar包再发送到服务器上运行,但是这多了大气之调节工作,而且浪费了大气时刻。
本身以就windows能怎么惩罚?甚至曾想变个非法苹果(忍住了)。

量我老微软自己呢发觉这样下去无法盈利,只能赶紧叫上兄弟Ubuntu来填坑。
照课程利用win10从带的Ubuntu子系统来安排Hadoop运行环境。

此引用一段落百度百科的语。
Hadoop举凡一个出于Apache基金会所付出之[分布式系统]基础架构。
用户可以非打听分布式底层细节的景下,开发分布式程序。充分利用集群的威力进行高效运算和存储。
Hadoop实现了一个分布式文件系统(Hadoop Distributed File
System),简称HDFS。HDFS有高容错性的表征,并且计划用来部署于物美价廉的(low-cost)硬件及;而且它提供高吞吐量(high
throughput)来访问应用程序的数码,适合那些拥有超大数据集(large data
set)的应用程序。HDFS放宽了(relax)POSIX的渴求,可以以流的样式拜访(streaming
access)文件系统中的多少。
Hadoop的框架最核心的规划虽是:HDFS和MapReduce。HDFS为海量的多寡提供了仓储,则MapReduce为海量的数码提供了算。

要求

系统:win10(只有win10方可安装子系统)

Hadoop
的装置分为地面模式、伪分布模式、集群模式。本地模式是运行于当地,只担负储存,没有测算功能,这里就未讲述了。伪分布模式是当平大机械及模仿分布式部署,方便学习及调试。集群模式是在差不多只机械上配置hadoop,是真正的“分布式”。但集群模式对硬件等要求比强,也比较复杂。因此,我们当此间选择伪分布式的设置进行尝试。在介绍伪分布式安装前,我们事先介绍一种植文件传输工具的装,后面将见面因此到。

步骤

文件传输工具的安

第一步:安装Ubuntu子系统

打开windows商店,搜索Ubuntu,找到后点击安装,等待安装了即可。
安到位后,为了以后能够加速布局速度,装包源也阿里源。

WinSCP 简介

WinSCP是一个Windows环境下使用SSH的开源图形化SFTP客户端。同时支持SCP协议。它的最主要功能就是是以地头和远程计算机中安全的复制文件。

WinSCP 的安就绝不介绍了,傻瓜式地直接下一样步就是执行。

设置完成后, 打开软件, 便进入图1.2。
在祈求中填入主机名:192.168.36.132(这是本身ubuntu虚拟机IP地址);
然后重新填用户称以及密码,这个用户称与密码是若ubuntu的用户称和密码。其它的地方不用动。如下图所示。

点击图中的“登录”在弹出的对话框中选择“是”即可。最终之画面状
态如下图所示。
这样我们就是可以拓展windows系统和linux系统之间的文书相互拖动传输操作了。

第二步:配置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号端口,该端口在win10饱受早已深受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

在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 伪分布式安装

Hadoop 伪分布式安装主要分为以下几只步骤:

  • 闭馆防火墙
  • 修改 hostname
  • 设置 DNS 解析(ip 与 hostname 绑定)
  • 安装 ssh 自动登录
  • 安装 jdk
  • 安装 hadoop

第三步:安装Hadoop

于安排完ssh后,你可以一直按官文档受到的认证,在linux环境下安装Hadoop了,这里列有要步骤。

  • 安装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>
  • 配置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>
  • 格式化文件系统

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上面直接运行sudo ufw disable就实行了,要是用的centos的言辞,运行service iptables stop,然后可以查看防火墙状态为关门。

这么操作才是即时会将防火墙给关闭了,
有或下次重启之后防火墙会自动启动。于是,需要展开永久性关闭的操作。首先,输入指令“chkconfig --list | grepiptables”查看防火墙的状态,发现有些选择还是处于“on”的状态,下面要输入指令“chkconfig iptables off”进行了永久性关闭。再输入指令“chkconfig--list | grep iptables
查看防火墙的状态, 这时会发现全部都是处于 “off” 状态了。

即也验证防火墙彻底永久性被关了。
于 linux 下防火墙称作“iptables” 。该令的含义是查服务 iptables
的状态。如果提示信息如图 2.2 所显示,说明防火墙已经给关门。

注意:防火墙的目的是关闭尽可能不要的端口,避免为恶心抨击,保证服务器运行安全。我们这边是试验环境,为了避免无谓的缪,选择关闭防火墙。在事实上工作吃,尽可能不这样做。

常见错误

  • 用户权限问题

如您在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

修改 hostname

为方便操作, 这里我们得改系统的主机名。 首先,
输入指令“hostname”查看现场的主机名。发现这个主机名不易被铭记有点复杂不熟识,然后我们输入指令“hostname hadoop”把主机名反成为我们耳熟能详容易记住的名
hadoop,再输入指令“hostname”进行查看,这时便会面世我们正好装的主机名
hadoop 了。我这边直接装也ubuntu。

可是这么的设置后,以后系统再度开后同时会返回原先的无装前的主机名,为了以防返原来的主机名,
下面我们用开展操作为它永远成我们和好安装的主机名。输入指令“vi /etc/sysconfig/network”对
network
文件进行编辑处理,把“HOSTNAME=localhost.localdomain”改成“HOSTNAME=hadoop”保存退出即可。

此刻我们为了验证主机名是否确实永久改变化了咱们正安装的名字
“ubuntu”,我们得输入指令“reboot –h now”对系进行双重开。然后再远程连接上,再输入命令
“ubuntu” 就见面发觉主机名曾经改成化我们才设置的 “ubuntu”了。

设置 DNS 解析

坐hadoop集群之间通过主机名相走访,还有以晚为了有利于操作,所以可以装dns
解析。输入指令“vi /etc/hosts”对hosts文件进行编制,在文件之最终一行多一行内容“192.168.36.132
ubuntu”保存退出即可。

安后,可以在linux下Ping下看能无可知ping通。(ping ubuntu)。

点操作才是得了当Linux系统下之ip与主机名绑定的操作,我们以windows下啊得以一如既往设置,通过鼠标操作即可形成。
在Windows的C盘中上 “c:windows/systme32/drivers/etc/hosts” 找到
“hosts”
文件打开在无比下输入一行内容“192.168.36.132 ubuntu”保存退出即可。

再度当Windows下输入指令“ping ubuntu”看能否通信,如果可以证明设置成
功。

安装 ssh免密码登陆

SSH 的齐全是Secure Shell,使用非对如加密智,传输内容以rsa 或者
dsa 加密,可以中避免网络窃听。

hadoop 的进程中通信使用ssh 方式,需要每次都使输入密码。为了兑现
自动化操作,我们下面配置SSH 的匪密码登录方式。

其一设置网上多得可怜,简单说一下:

首先在尚未安装不密码登陆的时节,输入ssh 192.168.36.132
发现要密码才会登陆。
脚对其进行安装不密码登录操作。

  • 输入指令“ssh-keygen –t rsa”(表示以rsa加密方法转变密钥),回车后,会唤起三蹩脚输入信息,我们直接回车就行
  • 接下来输入指令“cd .ssh/”进入 /root/.ssh/id_rsa
    中,输入指令“cp id_rsa.pub authorized_keys”生成授权文件。

这时候输入指令“ls”会发现变化的新文件已存在。然后再次输入ssh 192.168.36.132
发现不再要密码才能够登陆。

除此以外,如果频繁实施ssh,每次都如输入确认信息的语句,说明配置失败了。
可去文件夹“.ssh”,重新配置。也可以重新开虚拟机再配备。只要严格遵循上面的步子操作,保证会得逞的。
如若还将不肯定, 给你个绝招删除/etc/udev/rules.d/70-persistent-net.rules
文件,重开系统”。配置出错,可以查阅/var/log/secure 日志文件,找原因。

安装 jdk

此就算不用说了咔嚓,直接运行命令sudo apt-get install
openjdk-7-jdk,然后自己就是安装好了,不过这种装置方式安装后的JAVA_HOME和一般的不二法门不大一样,稍后再说。

设置完毕后,运行java -version,如果结果类似于下图,就证实成功了。

安装 hadoop

是因为新本子众多且非安静,所以自己选设置之版本是1.1.2。

开辟前面安装好的文件传输工具 WinSCP, 然后把公文 “hadoop-1.1.2.tar.gz”
传输至 Linux 系统的/home/qhung/Public
目录下,其中qhung为卿的用户称,之所以在Public
下面,我是因权限的题材,免得后面也友好挖坑,懒得去干权限问题。要是耐心够好之言语,也可以置身另文件夹下面试试!哈哈!

脚要针对刚加进去的公文“hadoop-1.1.2.tar.gz”进行破除压缩,输入指令tar -zxvf hadoop-1.1.2.tar.gz即可。这时会新发生一个文件目录“hadoop-1.1.2”,然后输入指令“mv hadoop-1.1.2 hadoop”将那改名为
hadoop。

改配置文件

hadoop-1.1.2的说话,配置文件全部当conf目录下面,所以cd到conf目录。然后修改下面几乎只文本:

hadoop 环境变量脚本文件 hadoop-env.sh

一直用gedit或者用vi打开 hadoop-env.sh,然后设置 JAVA_HOME,
注意去丢前面的 “#”:

hadoop-env.sh

这边首先得找JAVA_HOME在哪,由于我们一直用命令执行安装之jdk,所以JAVA_HOME在/usr/lib/下面。

hadoop 核心配置文件 core-site.xml

一直拿脚的安排复制进行就尽了

<configuration>
    <property>
        <name>fs.default.name</name>
            <value>hdfs://ubuntu:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
            <value>/home/qhung/Public/temp</value>
    </property>
</configuration>

下一场保留退出。注意这里fs.default.name的value中之ubuntu是主机名,也得以是IP地址(192.168.36.132),还有hadoop.tmp.dir,我设置的是/home/qhung/Public/temp,同样为是避权限问题。

hdfs 配置文件 hdfs-site.xml

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

保留退出即可。

MapReduce 配置文件 mapred-site.xml

<configuration>
    <property>
        <name>mapred.job.tracker</name>
        <value>ubuntu:9001</value>
    </property>
</configuration>

此间的ubuntu也是主机名。

masters和slaves

立刻片单里头一直还填写ubuntu就尽。什么意思大家应该都掌握。

这样一来我们所急需安排的 4 个文本及此全部就。
下面就是只待格式化文件系统了。

格式化系统

hdfs 是文件系统,所以于第一蹩脚利用之前要开展格式化。首先执行命令
cd /home/qhung/Public/hadoop/bin”进入到 bin
目录下,然后执行命令“hadoop namenode –format”。

顾:只当首先破开行的时段格式化,不要老是启动都格式化。理解啊咱
初购入了块移动硬盘,使用前总要格式化硬盘。
若果确来必不可少更格式化,请先拿“$HADOOP_HOME/tmp”目录下之软
项全副抹。
读者可协调观察目录” $HADOOP_HOME/tmp” 在格式化前后的转变情况。
格式化操作特别少发起破产的气象。如果起了,请检查部署是否正确。

开行系统

格式化完成后,开始起步 hadoop 程序。
开行 hadoop 的通令脚本还在$HADOOP_HOME/bin/下,下面的有所命令还
不再带有完整路径名称。

此地讲述 hadoop 启动的老三栽方式:

1、一次性全部起步。
执行命令“start-all.sh”启动 hadoop,观察控制台的输出,见图 2.38,可以
张在启动进程, 分别是 namenode、 datanode、 secondarynamenode、
jobtracker、
tasktracker,一共 5 个,待行了后,并无表示这 5
独过程成功启动,上面
单表示系统正在启动进程而已。(关闭 hadoop 的吩咐是 stop-all.sh)
方的指令是最最简单易行的,可以一次性将具备节点都启动、关闭。除此之外,
尚闹任何命令,是独家启动之。

2、分别启动 HDFS 和 和 MapReduce

执行命令 start-dfs.sh,是独启动 hdfs。

执 行 完 该 命 令 后 , 通 过 jps 能 够 看 到 NameNode 、 DataNode
、SecondaryNameNode 三单过程启动了,该令适合为才实行 hdfs
存储不采取MapReduce 做计算的光景。关闭的授命就是 stop-dfs.sh 了。

执行命令 start-mapred.sh, 可以独立启动 MapReduce 之少单过程。
执行了该令后, 通过jps 能够见到jobtracker、
tasktracker两独过程启动了。 关闭的命就是 stop-mapred.sh

当,也可以预先启动MapReduce,再开行 HDFS。这证明,HDFS 和 MapReduce
之长河中是互独立的,没有因关系。

**3、分别启动各个进程 **
履的下令是“hadoop-daemon.sh start [进程名称]”,这种启动方式可吃
独自增加、删除节点的景象,在安集群环境之时候会相。

一次性启动后还可通过浏览器来查究竟启动没有。 在浏览器站分别输入
http://hadoop:50070 和
http://hadoop:50030
就会见好拜了。同样,在 Windows 系统下呢是足以拜的。

运作成功后,用jps命令可以查看过程启动状态:

这次博客就记录及者,要是后面来时空吧,会延续记录几单eclipse开发,用hadoop运行的事例。
下篇博客是关于eclipse的map/reduce开发条件搭建,欢迎拍砖。