Hadoop安装配置

centos7与事先的版本都不等同,修改主机名在/ect/hostname 和/ect/hosts
那三个文件决定

Centos7搭建zookeeper集群,centos7zookeeper

centos7与在此以前的本子都不雷同,修改主机名在/ect/hostname 和/ect/hosts
那八个公文决定

首先修改/ect/hostname

vi /ect/hostname

开荒现在的剧情是:

localhost.localdomain

把它修改成你想要的名字就足以,比方: niukou.com

保留退出

接下来修改/ect/hosts文件

vi /ect/hosts

张开之后的内容是:

127.0.0.1   localhost localhost.localdomain localhost4
localhost4.localdomain4
::1         localhost localhost.localdomain localhost6
localhost6.localdomain6

然后您在里面加一行:

IP   niukou.com

保留退出,然后重启机器,那时候你就足以经过hostname来访问那台机械的劳动了

 

 

 

壹、集群安插介绍

率先修改/ect/hostname

CentOS 下SSH无密码登陆的配置

 

近年攻读Hadoop。它须求各节点之间通过SSH无密码登陆,配置SSH的时候费了一番武功,记录下来,以备忘。

配备SSH无密码登入需求三步:

    1.生成公钥和私钥

    二.导入公钥到表达文件,改变权限

    3.测试

 

1.1 Hadoop简介

vi /ect/hostname

壹.生成公钥和私钥

  

 

Shell代码  

  1. ssh-keygen -t rsa

  
   默认在 ~/.ssh目录生成八个文件:
    id_rsa      :私钥
    id_rsa.pub  :公钥

网赌十大信誉的平台 1

展开今后的原委是:

二.导入公钥到表明文件,退换权限

Hadoop是Apache软件基金会旗下的贰个开源布满式总结平台。以Hadoop遍及式文件系统(HDFS,Hadoop
Distributed Filesystem)和MapReduce(谷歌(Google)MapReduce的开源完结)为基本的Hadoop为用户提供了系统底层细节透明的布满式基础架构。

localhost.localdomain

    二.1 导入本机

Shell代码  

  1. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys  

 

对于Hadoop的集群来说,能够分为两大类角色:Master和Salve。二个HDFS集群是由三个NameNode和若干个DataNode组成的。当中NameNode作为主服务器,管理文件系统的命名空间和客户端对文件系统的拜会操作;集群中的DataNode处理存储的数目。MapReduce框架是由一个单身运维在主节点上的JobTracker和平运动作在各种集群从节点的TaskTracker共同整合的。主节点负担调整构成四个学业的具有任务,这一个职务布满在区别的从节点上。主节点监察和控制它们的实行情状,并且重新奉行以前的曲折义务;从节点仅负担由主节点指派的职分。当二个Job被交付时,JobTracker接收到提交作业和配备音信之后,就能够将配置音讯等分发给从节点,同时调治职务并监察和控制TaskTracker的实施。

把它修改成你想要的名字就足以,例如: niukou.com

    二.二 导入要免密码登入的服务器

        首先将公钥复制到服务器

Shell代码  

  1. scp ~/.ssh/id_rsa.pub [email protected]:/home/xxx/id_rsa.pub  

        然后,将公钥导入到认证文件,这一步的操作在服务器上举办

Shell代码  

  1. cat ~/id_rsa.pub >> ~/.ssh/authorized_keys 

 

从地点的牵线能够看到,HDFS和MapReduce共同组成了Hadoop布满式系统种类布局的着力。HDFS在集群上落到实处分布式文件系统,MapReduce在集群上落到实处了布满式总结和职责处理。HDFS在MapReduce职责处理进度中提供了文本操作和仓储等支撑,MapReduce在HDFS的根基上得以实现了义务的散发、追踪、推行等职业,并征集合果,二者互相效能,完结了Hadoop布满式集群的重要职分。

保留退出

    二.三 在服务器上改换权限

      

Shell代码  

  1. chmod 700 ~/.ssh
  2. chmod 600 ~/.ssh/authorized_keys  

   

一.贰 情况表明

接下来修改/ect/hosts文件

3.测试

    ssh host,第二回登陆也许须要yes确认,之后就足以一贯登陆了。

 

 

一、集群计划介绍

1.1 Hadoop简介

Hadoop是Apache软件基金会旗下的叁个开源布满式总计平台。以Hadoop布满式文件系统HDFS(Hadoop
Distributed Filesystem)和MapReduce(GoogleMapReduce的开源完毕)为主干的Hadoop为用户提供了系统底层细节透明的分布式基础架构。

对此Hadoop的集群来说,能够分成两大类剧中人物:Master和Salve。3个HDFS集群是由一个NameNode和多少个DataNode组成的。其中NameNode作为主服务器,管理文件系统的命名空间和客户端对文件系统的访问操作;集群中的DataNode管理存款和储蓄的多少。MapReduce框架是由七个单独运维在主节点上的JobTracker和周转在每一个从节点的TaskTracker共同构成的。主节点担任调解构成1个学业的具备职责,那几个职分布满在分裂的从节点上。主节点监察和控制它们的推市价况,并且重新施行此前的挫败职分;从节点仅担当由主节点指派的天职。当一个Job被交付时,JobTracker接收到提交作业和布署消息之后,就能将配备新闻等分发给从节点,同时调整职责并监控TaskTracker的施行。

从上面包车型地铁介绍能够看出,HDFS和MapReduce共同整合了Hadoop布满式系统种类布局的基本。HDFS在集群上完毕布满式文件系统,MapReduce在集群上贯彻了布满式总结和天职管理。HDFS在MapReduce任务管理进程中提供了文件操作和累积等支撑,MapReduce在HDFS的底蕴上达成了职务的散发、追踪、实施等专门的职业,并采访结果,贰者相互功效,实现了Hadoop布满式集群的重中之重职务。

一.二 情状表明

自己的条件是在虚拟机中布局的,Hadoop集群中包含4个节点:二个Master,3个Salve,节点之间局域网连接,能够相互ping通,节点IP地址遍及如下:

 

虚拟机系统

机器名称

IP地址

Ubuntu 13.04

Master.Hadoop

192.168.1.141

Ubuntu 9.11

Salve1.Hadoop

192.168.1.142

Fedora 17

Salve2.Hadoop

192.168.1.137

 

Master机器主要布局NameNode和JobTracker的剧中人物,担负监护人分布式数据和释疑任务的施行;一个Salve机器配置DataNode 和TaskTracker的角色,负担遍布式数据存款和储蓄以及职分的进行。其实应当还应有有三个Master机器,用来作为备用,避防止Master服务器宕机,还有一个备用立即启用。后续经验积攒一定品级后补上壹台备用Master机器(可因而安顿文件修改备用机器数)。

 
  注意:由于hadoop供给具备机器上hadoop的布局目录结构必要1律(因为在运行时按与主节点一样的目录运维其余职责节点),并且都有3个大同小异的用户名账户。参考各类文书档案上说的是享有机器都创造3个hadoop用户,使用那个账户来落到实处无密码验证。这里为了方便,分别在三台机械上都再次树立3个hadoop用户。

一.叁 意况布署

Hadoop集群要依据一.二小节表格所示举办配置,上面介绍怎样修改机器名称和配备hosts文件,以方便使用。

在意:小编的虚拟机都利用NAT形式连接网络,IP地址是机关分配的,所以那边就选取自动分配的IP地址而未特地修改为一些IP地址。

(一)修改当前机械名称

要是大家开采我们的机器的主机名不是我们想要的。

一)在Ubuntu下修改机器名称

修改文件/etc/hostname里的值就能够,修改成功后用hostname命令查看当前主机名是或不是设置成功。

网赌十大信誉的平台 2

   
  其它为了能精确分析主机名,最棒也修改/etc/hosts文件里对应的主机名 
      网赌十大信誉的平台 3

2)在Fedora下修改机器名称

透过对”/etc/sysconfig/network”文件修改其中”HOSTNAME”后边的值,改成大家分明的称呼。

命令:vi /etc/sysconfig/network,修改如下: 
    网赌十大信誉的平台 4 
        网赌十大信誉的平台 5

    同样为了能科学解析主机名,最棒也修改/etc/hosts文件里对应的主机名。

(2)配置hosts文件(必须)

“/etc/hosts”那一个文件是用来布局主机将用的DNS服务器音讯,是记载LAN内继续的各主机的应和[HostName  IP]用的。当用户在开始展览网络连接时,首先查找该公文,寻觅对应主机名对应的IP地址。

我们要测试两台机械之间知不知连通,一般用”ping 机器的IP”,假设想用”ping 机器的主机名”开采找不见该名称的机械(那也便是干吗在修改主机名的同时最佳修改该公文中对应的主机名),消除的法子便是修改”/etc/hosts”那么些文件,通过把LAN内的各主机的IP地址和HostName的逐条对应写入那么些文件的时候,就能够缓和难点。

举例:机器为”Master.Hadoop:1玖二.16八.1.14一”对机械为”Salve壹.Hadoop:192.16八.一.14二”用命令”ping”记性连接测试。测试结果如下: 
    网赌十大信誉的平台 6

从上海教室中的值,间接对IP地址进行测试,能够ping通,不过对主机名举办测试,开采未有ping通,提示”unknown
host——未知主机”,那时查看”Master.Hadoop”的”/etc/hosts”文件内容会发觉个中没有”1九贰.168.壹.14二  Slave一.Hadoop”内容,故而本机器是无力回天对机器的主机名字为”Slave一.Hadoop” 解析。

在进行Hadoop集群配置中,必要在”/etc/hosts”文件中加多集群中负有机器的IP与主机名,这样Master与持有的Slave机器之间不光能够由此IP实行通讯,而且还是可以够通过主机名实行通讯。所以在具有的机械上的”/etc/hosts”文件中都要增多如下内容:

192.168.1.141 Master.Hadoop

192.168.1.142 Slave1.Hadoop

192.168.1.137 Slave2.Hadoop

一声令下:vi /etc/hosts,增加结果如下: 
网赌十大信誉的平台 7

今昔大家在开始展览对机器为”Slave壹.Hadoop”的主机名举行ping通测试,看是还是不是能测试成功。

网赌十大信誉的平台 8

从上海体育地方中大家早已能用主机名实行ping通了,表达大家刚才增加的内容,在局域网内能拓展DNS解析了,那么未来剩余的事情便是在其余的Slave机器上进展一样的安插。然后开始展览测试。

一.4 所需软件

(1)JDK软件

    下载地址:

    JDK版本:jdk-7u25-linux-i586.tar.gz

(2)Hadoop软件

    下载地址:

    Hadoop版本:hadoop-1.1.2.tar.gz

2、SSH无密码验证配置

Hadoop运转进程中须求管住远端Hadoop守护进度,在Hadoop运行未来,NameNode是通过SSH(Secure
Shell)来运维和休息各种DataNode上的各类护理进程的。那就无法不在节点之间进行命令的时候是无需输入密码的款型,故大家需求配置SSH运用无密码公钥认证的样式,那样NameNode使用SSH无密码登入并运行DataName进程,一样原理,DataNode上也能运用SSH无密码登入到 NameNode。

专注:假若您的Linux未有设置SSH,请首先安装SSH

Ubuntu下安装ssh:sudo apt-get install openssh-server

Fedora下安装ssh:yum install openssh-server

二.一 SSH基本原理和用法

一)SSH基本原理

    SSH之所以可以确认保证卫安全全,原因在于它选拔了公钥加密。进度如下:

(1)远程主机械收割到用户的报到请求,把团结的公钥发给用户。

(二)用户接纳那几个公钥,将登入密码加密后,发送回来。

(三)远程主机用本身的私钥,解密登入密码,即使密码正确,就允许用户登陆。

二)SSH基本用法

    如若用户名叫java,登入远程主机名称叫linux,如下命令就能够:

    $ ssh
[email protected]

 
  SSH的私下认可端口是22,也正是说,你的报到请求会送进远程主机的2贰端口。使用p参数,能够修改这些端口,举个例子修改为8八端口,命令如下:

    $ ssh -p 88
[email protected]

    注意:假使出现谬误提醒:ssh: Could not resolve hostname linux: Name
or service not known,则是因为linux主机未增添进本主机的Name
Service中,故不能够辨别,须求在/etc/hosts里增加进该主机及相应的IP就可以:

    linux    192.168.1.107

2.二 配置Master无密码登6全体Salve

1)SSH无密码原理

Master(NameNode |
JobTracker)作为客户端,要贯彻无密码公钥认证,连接受服务器Salve(DataNode
|
Tasktracker)上时,须要在Master上生成三个密钥对,包含3个公钥和一个私钥,而后将公钥复制到全体的Slave上。当Master通过SSH连接Salve时,Salve就能够变动2个即兴数并用Master的公钥对自由数实行加密,并发送给Master。Master收到加密数之后再用私钥解密,并将解密数回传给Slave,Slave确认解密数准确之后就允许Master进行连接了。那就是二个公钥认证进程,其间无需用户手工业输入密码。

贰)Master机器上安装无密码登六

a. Master节点利用ssh-keygen命令生成1个无密码密钥对。

在Master节点上推行以下命令:

ssh-keygen –t rsa –P ”

运营后领悟其保存路线时直接回车选用默许路线。生成的密钥对:id_rsa(私钥)和id_rsa.pub(公钥),默许存款和储蓄在”/home/用户名/.ssh”目录下。 
    网赌十大信誉的平台 9

翻开”/home/用户名/”下是不是有”.ssh”文件夹,且”.ssh”文件下是不是有八个刚生育的无密码密钥对。

    网赌十大信誉的平台 10

b. 接着在Master节点上做如下配置,把id_rsa.pub追加到授权的key里面去。

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

网赌十大信誉的平台 11

查看下authorized_keys的权杖,如若权力不对则使用如下命令设置该文件的权力:

chmod 600 authorized_keys

c. 用root用户登入修改SSH配置文件”/etc/ssh/sshd_config”的下列内容。

反省上边几行前边”#”注释是还是不是裁撤掉:

RSAAuthentication yes # 启用 RSA 认证

PubkeyAuthentication yes # 启用公钥私钥配对认证格局

AuthorizedKeysFile  %h/.ssh/authorized_keys # 公钥文件路线 
    网赌十大信誉的平台 12

设置完以后记得重启SSH服务,才干使刚刚设置有效。

    网赌十大信誉的平台 13   

脱离root登入,使用普通用户验证是不是设置成功。

网赌十大信誉的平台 14 

从上图中摸清无密码登入本级已经安装截止,接下去的事体是把公钥复制所

有的Slave机器上。

    注意:有时候在测试时只怕会晤世错误: Agent admitted failure to sign
using the key.解决办法是:ssh-add  ~/.ssh/id_rsa ,如下所示:

  网赌十大信誉的平台 15

 
  d.使用ssh-copy-id命令将公钥传送到长途主机上(这里以Slave一.Hadoop为例)。

网赌十大信誉的平台 16

e. 测试是或不是无密码登录别的机器成功。

网赌十大信誉的平台 17

到此停止,我们通过伍步已经完成了从”Master.Hadoop”到”Slave一.Hadoop”SSH无密码登入,上面便是重复上边的步子把多余的两台(Slave2.Hadoop和Slave三.Hadoop)Slave服务器进行配置。那样,大家就成功了”配置Master无密码登陆全体的Slave服务器”。

接下去配置全数Slave无密码登六Master,其和Master无密码登六全数Slave原理同样,正是把Slave的公钥追加到Master的”.ssh”文件夹下的”authorized_keys”中,记得是充实(>>)。

注意:时期只怕会出现有的主题材料如下:

(一)如若在ssh连接时出现错误“ssh:connect to host port 2二: Connection
refused”,如下图所示: 
网赌十大信誉的平台 18

则大概是因为远程登6的那台机械未有设置ssh服务或安装了从未伸开ssh服务,下边到Slave叁.Hadoop主机进行测试: 
网赌十大信誉的平台 19

为了一劳永逸,设置系统运行时张开服务:# systemctl enable
sshd.service 
网赌十大信誉的平台 20

(2)假若在用命令ssh-copy-id时意识找不到该命令“ssh-copy-id:Command not
found”,则恐怕是ssh服务的版本太低的案由,比方若您的机械是RedHat系统就可能该难题,解决办法是:手动复制当地的pubkey内容到长途服务器,命令如下:

 cat ~/.ssh/id_rsa.pub | ssh
[email protected]
‘cat >> ~/.ssh/authorized_keys’

该命令等价于上面七个指令:

1在本地机械上实施:scp ~/.ssh/id_rsa.pub
[email protected]:/~

贰到长途机器上实施:cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

网赌十大信誉的平台 21

三、Java情形设置

怀有的机器上都要安装JDK,今后就先在Master服务器安装,然后其余服务器根据步骤重复实行就能够。安装JDK以及布署境遇变量,必要以”root”的身份张开。

3.1 安装JDK

首先用root身份登陆”Master.Hadoop”后在”/usr”下创立”java”文件夹,再将”jdk-7u二伍-linux-i5八陆.tar.gz”复制到”/usr/java”文件夹中,然后解压就能够。查看”/usr/java”下边会开掘多了3个名称叫”jdk一.7.0_25″文件夹,表达大家的JDK安装实现,删除”jdk-七u2伍-linux-i586.tar.gz”文件,进入下叁个”配置处境变量”环节。

三.2 配置情况变量

(1)编辑”/etc/profile”文件

 
  编辑”/etc/profile”文件,在前面增添Java的”JAVA_HOME”、”CLASSPATH”以及”PATH”内容如下:

# set java environment

export JAVA_HOME=/usr/java/jdk1.7.0_25/

export JRE_HOME=/usr/java/jdk1.7.0_25/jre

export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib

export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

或者

# set java environment

export JAVA_HOME=/usr/java/jdk1.7.0_25/

export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin

以上二种意思同样,那么我们就采纳第三种来开始展览设置。

网赌十大信誉的平台 22

(2)使配置生效

保留并脱离,实践下面发号施令使其配置立时生效。

source /etc/profile 或 . /etc/profile

网赌十大信誉的平台 23

三.三 验证安装成功

配备达成并生效后,用下边发号施令判别是还是不是成功。

java -version

网赌十大信誉的平台 24

从上海体育场馆中得知,我们规定JDK已经设置成功。

叁.四 安装剩余机器

此时用普通用户hadoop通过scp命令格式把”/usr/java/”文件复制到别的Slave上面,剩下的事体正是在其余的Slave服务器上遵照上图的手续配置情形变量和测试是或不是安装成功,这里以Slave一.Master为例:

scp -r /usr/java
[email protected]:/usr/ 

专注:有的机器库函数版本非常低,也许安装不了高版本的JDK,比如某个Redhat九,此时无法选拔比较低版本的JDK进行安装,因为具备集群中的JDK版本必须1致(经过测试),有二种艺术可消除:1是背本趋末该机器,选用另1台能装该版本的JDK的电电话机;2是挑选低版本的JDK,在全数机器上海重型机器厂新安装。

4、Hadoop集群安装

具有的机器上都要安装hadoop,今后就先在Master服务器安装,然后其余服务器依据步骤重复进行就能够。安装和配备hadoop必要以”root”的身份打开。

4.1 安装hadoop

首先用root用户登陆”Master.Hadoop”机器,将下载的”hadoop-1.1.二.tar.gz”复制到/usr目录下。然后进入”/usr”目录下,用上边发号施令把”hadoop-1.1.贰.tar.gz”举办解压,并将其重命名叫”hadoop”,把该文件夹的读权限分配给普通用户hadoop,然后删除”hadoop-壹.0.0.tar.gz”安装包。

cd /usr

tar –xzvf hadoop-1.1.2.tar.gz

mv hadoop-1.1.2 hadoop

chown –R hadoop:hadoop hadoop
#将文件夹”hadoop”读权限分配给hadoop普通用户

rm -rf hadoop-1.1.2.tar.gz

最终在”/usr/hadoop”上边创制tmp文件夹,并把Hadoop的设置路径增多到”/etc/profile”中,修改”/etc/profile”文件,将以下语句增多到终极,并使其收效(.
/etc/profile):

# set hadoop path

export HADOOP_HOME=/usr/hadoop

export PATH=$PATH :$HADOOP_HOME/bin

网赌十大信誉的平台 25

4.2 配置hadoop

(1)配置hadoop-env.sh

该”hadoop-env.sh”文件位于”/usr/hadoop/conf”目录下。

在文书中期维修改下边内容:

export JAVA_HOME=/usr/java/jdk1.7.0_25

网赌十大信誉的平台 26

Hadoop配置文件在conf目录下,从前的本子的布局文件根本是Hadoop-default.xml和Hadoop-site.xml。
由于Hadoop发展火速,代码量大幅度扩张,代码开垦分为了core,hdfs和map/reduce3有的,配置文件也被分成了多少个core-
site.xml、hdfs-site.xml、mapred-site.xml。core-site.xml和hdfs-site.xml是站在 HDFS角度上安排文件;core-site.xml和mapred-site.xml是站在MapReduce角度上陈设文件。

 (2)配置core-site.xml文件

修改Hadoop宗旨配置文件core-site.xml,这里配置的是HDFS
master(即namenode)的地点和端口号。

<configuration>

    <property>

        <name>hadoop.tmp.dir</name>

        <value>/usr/hadoop/tmp</value>

        (备注:请先在 /usr/hadoop 目录下创设 tmp 文件夹)

        <description>A base for other temporary
directories.</description>

    </property>

<!– file system properties –>

    <property>

        <name>fs.default.name</name>

       <value>hdfs://192.168.1.141:9000</value>

    </property>

</configuration>

备考:如未有配置hadoop.tmp.dir参数,此时系统私下认可的临时目录为:/tmp/hadoo-hadoop。而那么些目录在历次重启后都会被删掉,必须再一次奉行format才行,不然会出错。

网赌十大信誉的平台 27

(3)配置hdfs-site.xml文件

修改Hadoop中HDFS的布局,配置的备份格局暗中同意为三。

<configuration>

    <property>

        <name>dfs.replication</name>

        <value>1</value>

     
  (备注:replication 是多少别本数量,默以为3,salve少于叁台就能报错)

    </property>

<configuration>

 网赌十大信誉的平台 28

(4)配置mapred-site.xml文件

修改Hadoop中MapReduce的安插文件,配置的是JobTracker的地方和端口。

<configuration>

    <property>

        <name>mapred.job.tracker</name>

        <value>;

    </property>

</configuration>

网赌十大信誉的平台 29

(5)配置masters文件

有二种方案:

    (1)第一种

    修改localhost为Master.Hadoop

    (2)第二种

    去掉”localhost”,加入Master机器的IP:192.168.1.141

为保证起见,启用第二种,因为万壹忘记配置”/etc/hosts”局域网的DNS失效,那样就能够出现古怪的失实,可是若是IP配对,互联网通畅,就能够通过IP找到呼应主机。

网赌十大信誉的平台 30

(陆)配置slaves文件(Master主机特有)

    有二种方案:

    (1)第一种

    去掉”localhost”,每行增添3个主机名,把结余的Slave主机名都填上。

    举例:增多花样如下:

Slave1.Hadoop

Slave2.Hadoop

    (2)第二种

    去掉”localhost”,到场集群中全体Slave机器的IP,也是每行一个。

    举例:增添花样如下

192.168.1.142

192.168.1.137

案由和丰硕”masters”文件一律,选择第两种方法。

网赌十大信誉的平台 31

今昔在Master机器上的Hadoop配置就甘休了,剩下的便是布置Slave机器上的Hadoop。

最简便的主意是将 Master上安插好的hadoop所在文件夹”/usr/hadoop”复制到全数的Slave的”/usr”目录下(实际上Slave机器上的slavers文件是不供给的,
复制了也没难点)。用下边发号施令格式进行。(备注:此时用户可感到普通用户也得认为root) 
 

scp -r /usr/hadoop [email protected]服务器IP:/usr/

比方:从”Master.Hadoop”到”Slave一.Hadoop”复制配置Hadoop的公文。

scp -r /usr/hadoop [email protected]:/usr/

以root用户打开复制,当然不管是用户root照旧普通用户,就算Master机器上的”/usr/hadoop”文件夹用户hadoop有权力,不过Slave1上的hadoop用户却不曾”/usr”权限,所以未有开创文件夹的权杖。所以无论是哪个用户进行拷贝,右面都以”[email protected]机器 IP”格式。因为我们只是建构起了普通用户的SSH无密码连接,所以用root实行”scp”时,扔提示使你输入”Slave1.Hadoop” 服务器用户root的密码。

网赌十大信誉的平台 32

 
  查看”Slave壹.Hadoop”服务器的”/usr”目录下是或不是已经存在”hadoop”文件夹,确认已经复制成功。查看结果如下:

网赌十大信誉的平台 33 

从上海教室中级知识分子情,hadoop文件夹确实已经复制了,可是大家开采hadoop权限是root,所以大家后天要给”Slave一.Hadoop”服务器上的用户hadoop增加对”/usr/hadoop”读权限。

以root用户登入”Slave壹.Hadoop”,实践上边发号施令。

chown -R hadoop:hadoop(用户名:用户组) hadoop(文件夹)

随后在”Slave一.Hadoop”上修改”/etc/profile”文件,将以下语句增加到结尾,并使其一蹴而就(source
/etc/profile):

# set hadoop environment

export HADOOP_HOME=/usr/hadoop

export PATH=$PATH :$HADOOP_HOME/bin

若是不知道怎么设置,能够查阅前面”Master.Hadoop”机器的”/etc/profile”文件的布署,到此甘休在一台Slave机器上的Hadoop配置就结束了。剩下的事宜正是效仿把剩下的几台Slave机器进行布署Hadoop。

四.三 运转及表明

(①)格式化HDFS文件系统

在”Master.Hadoop”上运用普通用户hadoop实行操作。(备注:只需二次,下次开发银行不再需求格式化,只需start-all.sh)

hadoop namenode -format

网赌十大信誉的平台 34 

从上海体育场合中透亮大家已经成功格式化了,然则美中相差便是出新了七个警戒,从网络得知那些警示并不影响hadoop实施,不过也有方法化解,实际情况看前边的”常见难题FAQ”。

(2)启动hadoop

在运行前关闭集群中存有机器的防火墙,不然会油可是生datanode开后又自行关闭。使用上面发号施令运维。

start-all.sh

网赌十大信誉的平台 35

能够经过以下运维日志看出,首先运转namenode 接着运行datanode壹,datanode二,…,然后运行secondarynamenode。再起步jobtracker,然后运行tasktracker壹,tasktracker二,…。

开发银行 hadoop成功后,在 Master 中的 tmp 文件夹中生成了 dfs 文件夹,在Slave 中的 tmp 文件夹中均生成了 dfs 文件夹和 mapred 文件夹。

(3)验证hadoop

(一)验证措施一:用”jps”命令

在Master上用 java自带的小工具jps查看进度。

网赌十大信誉的平台 36

在Slave二上用jps查看进度。

网赌十大信誉的平台 37

假定在翻看Slave机器中窥见”DataNode”和”TaskTracker”没有起来时,先查看一下日记的,假设是”namespaceID”区别样难点,选择”常见难点FAQ6.二”举行减轻,固然是”No
route to host”难题,采取”常见难题FAQ陆.三”实行消除。

(二)验证措施贰:用”hadoop dfsadmin -report”

用这些命令能够查阅Hadoop集群的景况。

网赌十大信誉的平台 38

 

 

 

四.肆 网页查看集群

(1)访问””

网赌十大信誉的平台 39

(2)访问””

网赌十大信誉的平台 40

5、常见难点FAQ

5.1 关于 Warning: $HADOOP_HOME is deprecated.

hadoop安装完以往敲入hadoop命令时,老是提示那个警示:

    Warning: $HADOOP_HOME is deprecated.

经查hadoop-1.1.2/bin/hadoop脚本和”hadoop-config.sh”脚本,发掘脚本中对HADOOP_HOME的情形变量设置做了判定,其实根本无需设置HADOOP_HOME蒙受变量。

赶尽杀绝方案1:编辑”/etc/profile”文件,去掉HADOOP_HOME的变量设定,重新输入hadoop
fs命令,警告消失。

减轻方案二:编辑”/etc/profile”文件,加多3个情状变量,之后警告消失:

    export HADOOP_HOME_WARN_SUPPRESS=1

5.2 解决”no datanode to stop”问题

当作者甘休Hadoop时意识如下音信:

   no datanode to stop

案由:每一次namenode
format会重新创建3个namenodeId,而tmp/dfs/data下富含了上次format下的id,namenode
format清空了namenode下的多少,可是从未清空datanode下的多少,导致运转时失利,有三种减轻方案:

首先种缓和方案如下:

1)先删除”/usr/hadoop/tmp”

rm -rf /usr/hadoop/tmp

2)创建”/usr/hadoop/tmp”文件夹

mkdir /usr/hadoop/tmp

三)删除”/tmp”下以”hadoop”起先文件

rm -rf /tmp/hadoop*

4)重新格式化hadoop

 

hadoop namenode -format

5)启动hadoop

start-all.sh

运用第3种方案,有种糟糕处就是原来集群上的关键数据全未有了。假设说Hadoop集群已经运转了壹段时间。建议采纳第一种。

其次种方案如下:

一)修改每一种Slave的namespaceID使其与Master的namespaceID1致。

  或者

2)修改Master的namespaceID使其与Slave的namespaceID一致。

该”namespaceID”位于”/usr/hadoop/tmp/dfs/name/current/VEOdysseySION”文件中,前边青绿的或然基于实际情状变化,但后边土色一般是不改变的。

例如:查看”Master”下的”VERSION”文件

网赌十大信誉的平台 41

自己建议利用第三种,那样方便飞速,而且还是可防止卫误删。

伍.叁 Slave服务器中datanode运营后又自动关闭

翻开日志发下如下错误。

    ERROR org.apache.hadoop.hdfs.server.datanode.DataNode:
java.io.IOException: Call to … failed on local exception:
java.net.NoRouteToHostException: No route to host

消除方案是:关闭防火墙

5.4 从本土往hdfs文件系统上传文件

并发如下错误:

INFO hdfs.DFSClient: Exception in createBlockOutputStream
java.io.IOException: Bad connect ack with firstBadLink

INFO hdfs.DFSClient: Abandoning block blk_-1300529705803292651_37023

WARN hdfs.DFSClient: DataStreamer Exception: java.io.IOException: Unable
to create new block.

缓慢解决方案是:

一)关闭防火墙

2)禁用selinux

    编辑 “/etc/selinux/config”文件,设置”SELINUX=disabled”

伍.5 安全情势导致的错误

出现如下错误:

org.apache.hadoop.dfs.SafeModeException: Cannot delete …, Name node is
in safe mode

在布满式文件系统运行的时候,开端的时候会有平安方式,当布满式文件系统处于安全格局的动静下,文件系统中的内容不容许修改也分化意删除,直到安全情势停止。安全格局首假若为着系统运维的时候检查各种DataNode上数据块的灵光,同时依附政策供给的复制恐怕去除部分数据块。运转期通过命令也能够进入安全形式。在实践进程中,系统运维的时候去修改和删除文件也会有平安情势不相同意修改的失误指示,只须求拭目以待1会儿就能够。

涸泽而渔方案是:关闭安全格局

hadoop dfsadmin -safemode leave

5.6 解决Exceeded MAX_FAILED_UNIQUE_FETCHES

并发谬误如下:

Shuffle Error: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-out

先后里面供给展开多个公文,实行分析,系统一般默许数量是10二四,(用ulimit
-a可以看到)对于健康使用是够了,然而对于程序来说,就太少了。

竭泽而渔方案是:修改二个文件。

1)”/etc/security/limits.conf”

    vi /etc/security/limits.conf

加上:

    soft nofile 102400

    hard nofile 409600

2)”/etc/pam.d/login”

    vim /etc/pam.d/login

添加:

    session required /lib/security/pam_limits.so

本着第三个难点我改良下答案:

那是reduce预管理阶段shuffle时获得已形成的map的输出战败次数超越上限变成的,上限暗中认可为5。引起此难题的方法恐怕会有诸三种,比方互连网连接不健康,连接超时,带宽较差以及端口阻塞等。日常框架内网络状态较好是不会油然则生此错误的。

5.7 解决”Too many fetch-failures”

出现那一个标题关键是结点间的交接不够完善。

焚薮而田方案是:

1)检查”/etc/hosts”

务求本机ip 对应服务器名

渴求要含有全体的服务器ip +服务器名

2)检查”.ssh/authorized_keys”

渴求涵盖全体服务器(包含其本身)的public key

伍.八 管理速度尤其的慢

出现map极快,可是reduce不快,而且多次出现”reduce=0%”。

缓和方案如下:

组合化解方案5.七,然后修改”conf/hadoop-env.sh”中的”export
HADOOP_HEAPSIZE=4000″

5.9 解决hadoop OutOfMemoryError问题

出现那种相当,分明是jvm内部存款和储蓄器不够得原因。

消除方案如下:要修改全数的datanode的jvm内部存款和储蓄器大小。

    Java –Xms 1024m -Xmx 4096m

相似jvm的最大内部存款和储蓄器使用相应为总内部存款和储蓄器大小的百分之五十,大家选取的8G内部存款和储蓄器,所以设置为40九陆m,那一值只怕依然不是最优的值。

更多Hadoop相关音讯见Hadoop 专题页面 

 

centos⑦与事先的本子都不雷同,修改主机名在/ect/hostname 和/ect/hosts
那四个公文决定 首先修改/ect/hostnam…

集群中包涵多少个节点:三个Master,1个Salve,节点之间局域网连接,能够相互ping通,具体集群音讯能够查阅”Hadoop集群(第一期)”。节点IP地址分布如下:

vi /ect/hosts

机械名称

开荒之后的剧情是:

IP地址

127.0.0.1   localhost localhost.localdomain localhost4
localhost4.localdomain4
::1         localhost localhost.localdomain localhost6
localhost6.localdomain6

Master.Hadoop

下一场您在在那之中加一行:

192.168.1.2

IP   niukou.com

Salve1.Hadoop

保存退出,然后重启机器,这时候你就足以由此hostname来访问那台机器的劳务了

192.168.1.3

 

Salve2.Hadoop

 

192.168.1.4

 

Salve3.Hadoop

CentOS 下SSH无密码登6的配备

 

近年来上学Hadoop。它须要各节点之间通过SSH无密码登陆,配置SSH的时候费了1番武功,记录下来,以备忘。

计划SSH无密码登陆需求三步:

    一.生成公钥和私钥

    2.导入公钥到表达文件,退换权限

    3.测试

 

192.168.1.5

壹.生成公钥和私钥

  

 

Shell代码  

  1. ssh-keygen -t rsa

  
   默认在 ~/.ssh目录生成七个公文:
    id_rsa      :私钥
    id_rsa.pub  :公钥

多少个节点上均是CentOS6.0系统,并且有一个等同的用户hadoop。Master机器首要配置NameNode和JobTracker的角色,担当总管分布式数据和释疑职分的推行;一个Salve机器配置DataNode和TaskTracker的剧中人物,肩负遍及式数据存款和储蓄以及职分的执行。其实应该还应当有一个Master机器,用来作为备用,防止御Master服务器宕机,还有1个备用马上启用。后续经验积存一定阶段后补上一台备用Master机器。

2.导入公钥到表达文件,改造权限

1.3 网络布置

    2.一 导入本机

Shell代码  

  1. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys  

 

Hadoop集群要遵从一.二小节表格所示进行陈设,我们在”Hadoop集群(第3期)”的CentOS陆.0安装进度就根据提前规划好的主机名实行安装和计划。假若实验室后来人在设置系统时,没有配置好,不妨,没有须要重新安装,在装置完系统之后仍旧能够依附后来的布署对机械的主机名进行改换。

    贰.二 导入要免密码登6的服务器

        首先将公钥复制到服务器

Shell代码  

  1. scp ~/.ssh/id_rsa.pub xxx@host:/home/xxx/id_rsa.pub  

        然后,将公钥导入到认证文件,这一步的操作在服务器上实行

Shell代码  

  1. cat ~/id_rsa.pub >> ~/.ssh/authorized_keys 

 

下边包车型地铁事例大家将以Master机器为例,即主机名称叫”Master.Hadoop”,IP为”1玖二.16八.一.二”举办一些主机名配置的连锁操作。其余的Slave机器以此为依靠实行改换。

    二.3 在服务器上转移权限

      

Shell代码  

  1. chmod 700 ~/.ssh
  2. chmod 600 ~/.ssh/authorized_keys  

   

壹)查看当前机械名称

3.测试

    ssh host,第2次登入大概须要yes确认,之后就能够直接登入了。

 

 

一、集群布署介绍

1.1 Hadoop简介

Hadoop是Apache软件基金会旗下的3个开源遍布式计算平台。以Hadoop遍及式文件系统HDFS(Hadoop
Distributed Filesystem)和MapReduce(GoogleMapReduce的开源达成)为骨干的Hadoop为用户提供了系统底层细节透明的遍及式基础架构。

对于Hadoop的集群来说,能够分为两大类剧中人物:Master和Salve。1个HDFS集群是由三个NameNode和几何个DataNode组成的。在那之中NameNode作为主服务器,管理文件系统的命名空间和客户端对文件系统的拜访操作;集群中的DataNode管理存款和储蓄的多寡。MapReduce框架是由贰个独立运营在主节点上的JobTracker和平运动转在各样从节点的TaskTracker共同构成的。主节点担当调解构成1个功课的保有职务,那个职务布满在差别的从节点上。主节点监察和控制它们的执市价况,并且重新实行以前的倒闭任务;从节点仅担负由主节点指派的职务。当一个Job被提交时,JobTracker接收到提交作业和安排音讯之后,就能够将布署音讯等分发给从节点,同时调整任务并监察和控制TaskTracker的实施。

从上边的介绍能够看看,HDFS和MapReduce共同组成了Hadoop布满式系统系列布局的骨干。HDFS在集群上落到实处遍及式文件系统,MapReduce在集群上达成了遍及式计算和任务管理。HDFS在MapReduce义务处理进度中提供了文件操作和仓库储存等支撑,MapReduce在HDFS的根底上落到实处了任务的散发、追踪、实行等职业,并收集合果,二者相互效用,完毕了Hadoop布满式集群的机要职务。

壹.2 情形表明

自己的意况是在虚拟机中配置的,Hadoop集群中回顾陆个节点:3个Master,3个Salve,节点之间局域网连接,能够互相ping通,节点IP地址布满如下:

 

虚拟机系统

机器名称

IP地址

Ubuntu 13.04

Master.Hadoop

192.168.1.141

Ubuntu 9.11

Salve1.Hadoop

192.168.1.142

Fedora 17

Salve2.Hadoop

192.168.1.137

 

Master机器重要布署NameNode和JobTracker的角色,担负管事人遍及式数据和分解职责的实施;1个Salve机器配置DataNode 和TaskTracker的剧中人物,担当遍布式数据存款和储蓄以及职分的施行。其实应该还相应有3个Master机器,用来作为备用,以卫戍Master服务器宕机,还有一个备用立时启用。后续经验积存一定阶段后补上壹台备用Master机器(可透过陈设文件修改备用机器数)。

 
  注意:由于hadoop供给全数机器上hadoop的配备目录结构须要一律(因为在运转时按与主节点一样的目录运转其它义务节点),并且都有3个均等的用户名账户。参考各类文档上说的是具有机器都建构2个hadoop用户,使用这几个账户来兑现无密码验证。这里为了便利,分别在叁台机器上都重复创设一个hadoop用户。

1.3 碰到布署

Hadoop集群要安份守己一.贰小节表格所示进行安插,上面介绍怎样修改机器名称和布局hosts文件,以方便使用。

瞩目:作者的虚拟机都接纳NAT格局连接网络,IP地址是自行分配的,所以这里就应用机关分配的IP地址而未特地修改为一些IP地址。

(一)修改当前机械名称

若果大家开掘大家的机械的主机名不是大家想要的。

一)在Ubuntu下修改机器名称

修改文件/etc/hostname里的值就可以,修改成功后用hostname命令查看当前主机名是还是不是设置成功。

网赌十大信誉的平台 2

   
  此外为了能科学解析主机名,最棒也修改/etc/hosts文件里对应的主机名 
   
  网赌十大信誉的平台 3

二)在Fedora下修改机器名称

经过对”/etc/sysconfig/network”文件修改其中”HOSTNAME”后边的值,改成咱们规定的名目。

命令:vi /etc/sysconfig/network,修改如下: 
 
  网赌十大信誉的平台 4 
     
  网赌十大信誉的平台 5

    一样为了能准确分析主机名,最棒也修改/etc/hosts文件里对应的主机名。

(2)配置hosts文件(必须)

“/etc/hosts”那个文件是用来布局主机将用的DNS服务器消息,是记载LAN内继续的各主机的呼应[HostName  IP]用的。当用户在举行网络连接时,首先查找该文件,搜索对应主机名对应的IP地址。

大家要测试两台机械之间知不知道连通,一般用”ping 机器的IP”,如若想用”ping 机器的主机名”发掘找不见该名称的机械(那也等于为啥在修改主机名的同时最佳修改该文件中对应的主机名),化解的艺术便是修改”/etc/hosts”这一个文件,通过把LAN内的各主机的IP地址和HostName的相继对应写入那个文件的时候,就能够搞定难题。

举例说:机器为”Master.Hadoop:1九二.16八.壹.1四1″对机械为”Salve1.Hadoop:1九二.16八.一.14二”用命令”ping”记性连接测试。测试结果如下: 
 
  网赌十大信誉的平台 6

从上航海用教室中的值,直接对IP地址实行测试,能够ping通,不过对主机名实行测试,开掘未有ping通,提示”unknown
host——未知主机”,那时查看”Master.Hadoop”的”/etc/hosts”文件内容会开掘里面未有”192.16捌.壹.142  Slave一.Hadoop”内容,故而本机器是心有余而力不足对机器的主机名称叫”Slave一.Hadoop” 解析。

在拓展Hadoop集群配置中,须求在”/etc/hosts”文件中加多集群中享有机器的IP与主机名,那样Master与具备的Slave机器之间不光能够因此IP进行通讯,而且仍是可以够通过主机名实行通讯。所以在具备的机械上的”/etc/hosts”文件中都要增添如下内容:

192.168.1.141 Master.Hadoop

192.168.1.142 Slave1.Hadoop

192.168.1.137 Slave2.Hadoop

命令:vi /etc/hosts,增加结果如下: 
网赌十大信誉的平台 7

明天咱们在进展对机械为”Slave一.Hadoop”的主机名举办ping通测试,看是还是不是能测试成功。

网赌十大信誉的平台 8

从上海教室中我们早就能够用主机名实行ping通了,表明大家刚才增加的内容,在局域网内能举行DNS解析了,那么今后剩下的事儿正是在任何的Slave机器上实行一样的布置。然后开展测试。

一.肆 所需软件

(1)JDK软件

 
  下载地址:http://www.Oracle.com/technetwork/java/javase/index.html

    JDK版本:jdk-7u25-linux-i586.tar.gz

(2)Hadoop软件

    下载地址:

    Hadoop版本:hadoop-1.1.2.tar.gz

2、SSH无密码验证配置

Hadoop运营进度中供给处理远端Hadoop守护进度,在Hadoop运营之后,NameNode是经过SSH(Secure
Shell)来运行和结束各样DataNode上的各类护理进程的。那就非得在节点之间进行命令的时候是无需输入密码的款式,故大家需求配置SSH运用无密码公钥认证的款型,那样NameNode使用SSH无密码登6并运营DataName进度,同样原理,DataNode上也能使用SSH无密码登入到 NameNode。

只顾:假诺您的Linux未有安装SSH,请首先安装SSH

Ubuntu下安装ssh:sudo apt-get install openssh-server

Fedora下安装ssh:yum install openssh-server

贰.壹 SSH基本原理和用法

一)SSH基本原理

    SSH之所以能够保障安全,原因在于它选用了公钥加密。进度如下:

(壹)远程主机械收割到用户的报到请求,把团结的公钥发给用户。

(2)用户使用那几个公钥,将登入密码加密后,发送回来。

(3)远程主机用本身的私钥,解密登陆密码,假若密码精确,就同意用户登陆。

二)SSH基本用法

    若是用户名叫java,登入远程主机名叫linux,如下命令就可以:

    $ ssh java@linux

 
  SSH的暗许端口是22,相当于说,你的报到请求会送进远程主机的2二端口。使用p参数,能够修改那个端口,比方修改为88端口,命令如下:

    $ ssh -p 88 java@linux

    注意:即使出现谬误提示:ssh: Could not resolve hostname linux: Name
or service not known,则是因为linux主机未增加进本主机的Name
Service中,故不可能鉴定区别,要求在/etc/hosts里增添进该主机及相应的IP就可以:

    linux    192.168.1.107

二.二 配置Master无密码登陆全体Salve

一)SSH无密码原理

Master(NameNode |
JobTracker)作为客户端,要兑现无密码公钥认证,连接受服务器Salve(DataNode
|
Tasktracker)上时,供给在Master上生成叁个密钥对,包含二个公钥和1个私钥,而后将公钥复制到全体的Slave上。当Master通过SSH连接Salve时,Salve就能够扭转一个随意数并用Master的公钥对轻松数进行加密,并发送给Master。Master收到加密数之后再用私钥解密,并将解密数回传给Slave,Slave确认解密数准确之后就同意Master举办延续了。那就是二个公钥认证进度,其间无需用户手工业输入密码。

二)Master机器上设置无密码登入

a. Master节点利用ssh-keygen命令生成3个无密码密钥对。

在Master节点上举行以下命令:

ssh-keygen –t rsa –P ”

运行后精晓其保存路线时直接回车采取私下认可路线。生成的密钥对:id_rsa(私钥)和id_rsa.pub(公钥),暗中同意存储在”/home/用户名/.ssh”目录下。 
    网赌十大信誉的平台 9

翻看”/home/用户名/”下是或不是有”.ssh”文件夹,且”.ssh”文件下是不是有多少个刚生产的无密码密钥对。

 
  网赌十大信誉的平台 10

b. 接着在Master节点上做如下配置,把id_rsa.pub追加到授权的key里面去。

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

网赌十大信誉的平台 11

查看下authorized_keys的权位,借使权力不对则选择如下命令设置该文件的权限:

chmod 600 authorized_keys

c. 用root用户登六修改SSH配置文件”/etc/ssh/sshd_config”的下列内容。

自己抵触上面几行前边”#”注释是否打消掉:

RSAAuthentication yes # 启用 RSA 认证

PubkeyAuthentication yes # 启用公钥私钥配对证实格局

AuthorizedKeysFile  %h/.ssh/authorized_keys # 公钥文件路线 
 
  网赌十大信誉的平台 12

设置完之后记得重启SSH服务,手艺使刚刚设置有效。

 
  网赌十大信誉的平台 13 
 

退出root登6,使用普通用户验证是不是设置成功。

网赌十大信誉的平台 14 

从上海教室中获知无密码登陆本级已经安装结束,接下去的事儿是把公钥复制所

有的Slave机器上。

    注意:有时候在测试时大概会并发谬误: Agent admitted failure to sign
using the key.化解办法是:ssh-add  ~/.ssh/id_rsa ,如下所示:

  网赌十大信誉的平台 15

 
  d.使用ssh-copy-id命令将公钥传送到长途主机上(这里以Slave壹.Hadoop为例)。

网赌十大信誉的平台 16

e. 测试是或不是无密码登陆别的机器成功。

网赌十大信誉的平台 17

到此甘休,大家因而5步已经落实了从”Master.Hadoop”到”Slave一.Hadoop”SSH无密码登6,上面正是重新下面的步骤把结余的两台(Slave二.Hadoop和Slave3.Hadoop)Slave服务器进行配置。那样,大家就产生了”配置Master无密码登入全数的Slave服务器”。

接下去配置全数Slave无密码登6Master,其和Master无密码登入全体Slave原理同样,正是把Slave的公钥追加到Master的”.ssh”文件夹下的”authorized_keys”中,记得是扩大(>>)。

小心:时期或许晤面世部分难题如下:

(一)要是在ssh连接时出现谬误“ssh:connect to host port 2贰: Connection
refused”,如下图所示: 
网赌十大信誉的平台 18

则可能是因为远程登陆的那台机器未有安装ssh服务或设置了从未有过开启ssh服务,上边到Slave三.Hadoop主机实行测试: 
网赌十大信誉的平台 19

为了一劳永逸,设置系统运行时开启服务:#
systemctl enable sshd.service 
网赌十大信誉的平台 20

(2)假如在用命令ssh-copy-id时开采找不到该命令“ssh-copy-id:Command not
found”,则大概是ssh服务的本子太低的缘故,举例若你的机器是RedHat系统就恐怕该难点,化解办法是:手动复制本地的pubkey内容到长途服务器,命令如下:

 cat ~/.ssh/id_rsa.pub | ssh hadoop@Master.Hadoop ‘cat >>
~/.ssh/authorized_keys’

该命令等价于上边五个指令:

一在本地机械上实施:scp ~/.ssh/id_rsa.pub hadoop@Master.Hadoop:/~

贰到长途机器上举办:cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

网赌十大信誉的平台 21

三、Java碰到设置

具备的机械上都要设置JDK,未来就先在Master服务器安装,然后其它服务器遵照步骤重复举办就可以。安装JDK以及布署景况变量,要求以”root”的地位进行。

3.1 安装JDK

率先用root身份登陆”Master.Hadoop”后在”/usr”下开创”java”文件夹,再将”jdk-7u25-linux-i5捌6.tar.gz”复制到”/usr/java”文件夹中,然后解压就能够。查看”/usr/java”下面会意识多了贰个名字为”jdk1.七.0_2伍”文件夹,表明大家的JDK安装达成,删除”jdk-七u二伍-linux-i586.tar.gz”文件,进入下三个”配置情状变量”环节。

叁.二 配置情状变量

(1)编辑”/etc/profile”文件

 
  编辑”/etc/profile”文件,在末端增添Java的”JAVA_HOME”、”CLASSPATH”以及”PATH”内容如下:

# set java environment

export JAVA_HOME=/usr/java/jdk1.7.0_25/

export JRE_HOME=/usr/java/jdk1.7.0_25/jre

export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib

export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

或者

# set java environment

export JAVA_HOME=/usr/java/jdk1.7.0_25/

export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin

如上二种意思一样,那么我们就分选第壹种来进展设置。

网赌十大信誉的平台 22

(2)使配置生效

封存并退出,施行下边发号施令使其布局马上生效。

source /etc/profile 或 . /etc/profile

网赌十大信誉的平台 23

三.3 验证安装成功

陈设实现并生效后,用下边发号施令判别是还是不是中标。

java -version

网赌十大信誉的平台 24

从上海教室中摸清,大家规定JDK已经安装成功。

三.4 安装剩余机器

那儿用普通用户hadoop通过scp命令格式把”/usr/java/”文件复制到其余Slave下面,剩下的事宜就是在别的的Slave服务器上遵照上图的步调配置境况变量和测试是还是不是安装成功,这里以Slave一.Master为例:

scp -r /usr/java seed@Slave1.Master:/usr/ 

留神:有的机器库函数版本异常低,大概设置不了高版本的JDK,比方某些Redhat9,此时不可以选拔非常的低版本的JDK进行设置,因为兼具集群中的JDK版本必须1律(经过测试),有二种方法可一蹴而就:一是放弃该机器,选取另壹台能装该版本的JDK的对讲机;2是选项低版本的JDK,在享有机器上海重机厂新安装。

肆、Hadoop集群安装

具备的机械上都要设置hadoop,今后就先在Master服务器安装,然后别的服务器依据步骤重复进行就能够。安装和布局hadoop须要以”root”的身价实行。

4.1 安装hadoop

先是用root用户登录”Master.Hadoop”机器,将下载的”hadoop-一.壹.2.tar.gz”复制到/usr目录下。然后进入”/usr”目录下,用上边发号施令把”hadoop-一.一.二.tar.gz”实行解压,并将其重命名叫”hadoop”,把该公文夹的读权限分配给普通用户hadoop,然后删除”hadoop-1.0.0.tar.gz”安装包。

cd /usr

tar –xzvf hadoop-1.1.2.tar.gz

mv hadoop-1.1.2 hadoop

chown –R hadoop:hadoop hadoop
#将文件夹”hadoop”读权限分配给hadoop普通用户

rm -rf hadoop-1.1.2.tar.gz

聊到底在”/usr/hadoop”上面创建tmp文件夹,并把Hadoop的安装路线增加到”/etc/profile”中,修改”/etc/profile”文件,将以下语句增添到终极,并使其收效(.
/etc/profile):

# set hadoop path

export HADOOP_HOME=/usr/hadoop

export PATH=$PATH :$HADOOP_HOME/bin

网赌十大信誉的平台 25

4.2 配置hadoop

(1)配置hadoop-env.sh

该”hadoop-env.sh”文件位于”/usr/hadoop/conf”目录下。

在文书中期维修改下边内容:

export JAVA_HOME=/usr/java/jdk1.7.0_25

网赌十大信誉的平台 26

Hadoop配置文件在conf目录下,从前的本子的安插文件重大是Hadoop-default.xml和Hadoop-site.xml。
由于Hadoop发展火速,代码量大幅度扩张,代码开辟分为了core,hdfs和map/reduce叁片段,配置文件也被分成了多少个core-
site.xml、hdfs-site.xml、mapred-site.xml。core-site.xml和hdfs-site.xml是站在 HDFS角度上布署文件;core-site.xml和mapred-site.xml是站在MapReduce角度上配置文件。

 (2)配置core-site.xml文件

修改Hadoop大旨配置文件core-site.xml,这里配置的是HDFS
master(即namenode)的地址和端口号。

<configuration>

    <property>

        <name>hadoop.tmp.dir</name>

        <value>/usr/hadoop/tmp</value>

        (备注:请先在 /usr/hadoop 目录下树立 tmp 文件夹)

        <description>A base for other temporary
directories.</description>

    </property>

<!– file system properties –>

    <property>

        <name>fs.default.name</name>

       <value>hdfs://192.168.1.141:9000</value>

    </property>

</configuration>

备考:如没有配备hadoop.tmp.dir参数,此时系统私下认可的一时半刻目录为:/tmp/hadoo-hadoop。而以此目录在每一趟重启后都会被删掉,必须另行施行format才行,否则会出错。

网赌十大信誉的平台 27

(3)配置hdfs-site.xml文件

修改Hadoop中HDFS的铺排,配置的备份方式默以为三。

<configuration>

    <property>

        <name>dfs.replication</name>

        <value>1</value>

     
  (备注:replication 是数量别本数量,默以为三,salve少于叁台就能报错)

    </property>

<configuration>

 网赌十大信誉的平台 28

(4)配置mapred-site.xml文件

修改Hadoop中MapReduce的布局文件,配置的是JobTracker的地点和端口。

<configuration>

    <property>

        <name>mapred.job.tracker</name>

        <value>;

    </property>

</configuration>

网赌十大信誉的平台 29

(5)配置masters文件

有三种方案:

    (1)第一种

    修改localhost为Master.Hadoop

    (2)第二种

    去掉”localhost”,加入Master机器的IP:192.168.1.141

为确认保证起见,启用第二种,因为万1忘记配置”/etc/hosts”局域网的DNS失效,那样就能产出意外的荒谬,但是就算IP配对,网络通畅,就会经过IP找到相应主机。

网赌十大信誉的平台 30

(6)配置slaves文件(Master主机特有)

    有三种方案:

    (1)第一种

    去掉”localhost”,每行增加1个主机名,把剩下的Slave主机名都填上。

    比方:增添样式如下:

Slave1.Hadoop

Slave2.Hadoop

    (2)第二种

    去掉”localhost”,插手集群中兼有Slave机器的IP,也是每行三个。

    举例:增添样式如下

192.168.1.142

192.168.1.137

原因和增进”masters”文件一律,选取第两种办法。

网赌十大信誉的平台 31

近来在Master机器上的Hadoop配置就终止了,剩下的正是布局Slave机器上的Hadoop。

最简便易行的办法是将 Master上配置好的hadoop所在文书夹”/usr/hadoop”复制到全数的Slave的”/usr”目录下(实际上Slave机器上的slavers文件是不要求的,
复制了也没难点)。用上面发号施令格式实行。(备注:此时用户可感到普通用户也可感到root) 
 

scp -r /usr/hadoop root@服务器IP:/usr/

举例:从”Master.Hadoop”到”Slave一.Hadoop”复制配置Hadoop的公文。

scp -r /usr/hadoop root@Slave1.Hadoop:/usr/

以root用户展开复制,当然不管是用户root依然普通用户,就算Master机器上的”/usr/hadoop”文件夹用户hadoop有权力,但是Slave1上的hadoop用户却未有”/usr”权限,所以并未有创建文件夹的权杖。所以不管哪个用户进行拷贝,右面都以”root@机器 IP”格式。因为咱们只是创设起了普通用户的SSH无密码连接,所以用root进行”scp”时,扔提醒让您输入”Slave1.Hadoop” 服务器用户root的密码。

网赌十大信誉的平台 32

 
  查看”Slave1.Hadoop”服务器的”/usr”目录下是或不是早已存在”hadoop”文件夹,确认已经复制成功。查看结果如下:

网赌十大信誉的平台 33 

从上海体育场所中领略,hadoop文件夹确实已经复制了,不过我们发掘hadoop权限是root,所以大家前日要给”Slave1.Hadoop”服务器上的用户hadoop加多对”/usr/hadoop”读权限。

以root用户登入”Slave一.Hadoop”,推行上边发号施令。

chown -R hadoop:hadoop(用户名:用户组) hadoop(文件夹)

随着在”Slave一.Hadoop”上修修改改”/etc/profile”文件,将以下语句加多到最终,并使其立竿见影(source
/etc/profile):

# set hadoop environment

export HADOOP_HOME=/usr/hadoop

export PATH=$PATH :$HADOOP_HOME/bin

壹旦不精通怎么设置,能够查看前边”Master.Hadoop”机器的”/etc/profile”文件的配备,到此截止在1台Slave机器上的Hadoop配置就结束了。剩下的事体便是仿照把多余的几台Slave机器进行布局Hadoop。

四.3 运维及证明

(1)格式化HDFS文件系统

在”Master.Hadoop”上利用普通用户hadoop举办操作。(备注:只需贰次,下次初阶不再需求格式化,只需start-all.sh)

hadoop namenode -format

网赌十大信誉的平台 34 

从上海体育场地中级知识分子情大家早已成功格式化了,但是美中不足正是出新了3个警示,从英特网得知这么些警示并不影响hadoop实施,可是也有主意化解,详细的情况看前边的”常见难题FAQ”。

(2)启动hadoop

在运转前关闭集群中装有机器的防火墙,不然会产出datanode开后又自行关闭。使用上面发号施令运营。

start-all.sh

网赌十大信誉的平台 35

能够因此以下运行日志看出,首先运转namenode 接着运营datanode一,datanode2,…,然后运维secondarynamenode。再起步jobtracker,然后运营tasktracker壹,tasktracker2,…。

运营 hadoop成功后,在 Master 中的 tmp 文件夹中生成了 dfs 文件夹,在Slave 中的 tmp 文件夹中均生成了 dfs 文件夹和 mapred 文件夹。

(3)验证hadoop

(一)验证格局1:用”jps”命令

在Master上用 java自带的小工具jps查看进度。

网赌十大信誉的平台 36

在Slave贰上用jps查看进度。

网赌十大信誉的平台 37

只要在翻看Slave机器中发觉”DataNode”和”TaskTracker”未有起来时,先查看一下日志的,假若是”namespaceID”不1致难题,选取”常见难点FAQ陆.2″举办解决,假设是”No
route to host”难点,采取”常见难点FAQ6.三”进行缓和。

(二)验证措施贰:用”hadoop dfsadmin -report”

用这些命令可以查看Hadoop集群的意况。

网赌十大信誉的平台 38

 

 

 

四.四 网页查看集群

(1)访问””

网赌十大信誉的平台 39

(2)访问””

网赌十大信誉的平台 40

伍、常见难点FAQ

5.1 关于 Warning: $HADOOP_HOME is deprecated.

hadoop安装完之后敲入hadoop命令时,老是提醒这么些警示:

    Warning: $HADOOP_HOME is deprecated.

经查hadoop-一.1.2/bin/hadoop脚本和”hadoop-config.sh”脚本,发现脚本中对HADOOP_HOME的情状变量设置做了推断,其实历来无需安装HADOOP_HOME意况变量。

化解方案壹:编辑”/etc/profile”文件,去掉HADOOP_HOME的变量设定,重新输入hadoop
fs命令,警告消失。

消除方案二:编辑”/etc/profile”文件,增添一个情状变量,之后警告消失:

    export HADOOP_HOME_WARN_SUPPRESS=1

5.2 解决”no datanode to stop”问题

当自己结束Hadoop时开采如下新闻:

   no datanode to stop

由来:每趟namenode
format会重新创造3个namenodeId,而tmp/dfs/data下富含了上次format下的id,namenode
format清空了namenode下的数额,可是未有清空datanode下的数额,导致运行时退步,有两种减轻方案:

首先种减轻方案如下:

1)先删除”/usr/hadoop/tmp”

rm -rf /usr/hadoop/tmp

2)创建”/usr/hadoop/tmp”文件夹

mkdir /usr/hadoop/tmp

叁)删除”/tmp”下以”hadoop”开始文件

rm -rf /tmp/hadoop*

4)重新格式化hadoop

 

hadoop namenode -format

5)启动hadoop

start-all.sh

选取第二种方案,有种倒霉处就是本来集群上的首要数据全未有了。要是说Hadoop集群已经运维了一段时间。提出选取第三种。

第三种方案如下:

1)修改各类Slave的namespaceID使其与Master的namespaceID壹致。

  或者

2)修改Master的namespaceID使其与Slave的namespaceID一致。

该”namespaceID”位于”/usr/hadoop/tmp/dfs/name/current/VE翼虎SION”文件中,后面樱桃红的可能依据真实意况变化,但前面深黑一般是不改变的。

例如:查看”Master”下的”VERSION”文件

网赌十大信誉的平台 41

自身建议使用第三种,那样方便快捷,而且仍是可防止卫误删。

五.三 Slave服务器中datanode运维后又自行关闭

查看日志发下如下错误。

    ERROR org.apache.hadoop.hdfs.server.datanode.DataNode:
java.io.IOException: Call to … failed on local exception:
java.net.NoRouteToHostException: No route to host

缓和方案是:关闭防火墙

5.四 从本地往hdfs文件系统上传文件

出现如下错误:

INFO hdfs.DFSClient: Exception in createBlockOutputStream
java.io.IOException: Bad connect ack with firstBadLink

INFO hdfs.DFSClient: Abandoning block blk_-1300529705803292651_37023

WARN hdfs.DFSClient: DataStreamer Exception: java.io.IOException: Unable
to create new block.

化解方案是:

一)关闭防火墙

2)禁用selinux

    编辑 “/etc/selinux/config”文件,设置”SELINUX=disabled”

五.伍 安全形式招致的一无所长

并发如下错误:

org.apache.hadoop.dfs.SafeModeException: Cannot delete …, Name node is
in safe mode

在分布式文件系统运转的时候,起先的时候会有安全形式,当分布式文件系统处于安全情势的场合下,文件系统中的内容不一样意修改也不允许删除,直到安全形式停止。安全形式主借使为了系统运维的时候检查各样DataNode上数据块的得力,同时依据政策要求的复制或然去除部分数据块。运营期通过命令也得以进来安全情势。在施行进程中,系统运行的时候去修改和删除文件也会有安全格局不允许修改的失误提醒,只要求等待1会儿就可以。

缓和方案是:关闭安全格局

hadoop dfsadmin -safemode leave

5.6 解决Exceeded MAX_FAILED_UNIQUE_FETCHES

出现错误如下:

Shuffle Error: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-out

先后里面须求开荒多少个文件,进行剖析,系统一般暗中同意数量是拾二四,(用ulimit
-a能够见到)对高满堂规使用是够了,不过对于程序来说,就太少了。

缓和方案是:修改一个文件。

1)”/etc/security/limits.conf”

    vi /etc/security/limits.conf

加上:

    soft nofile 102400

    hard nofile 409600

2)”/etc/pam.d/login”

    vim /etc/pam.d/login

添加:

    session required /lib/security/pam_limits.so

针对第3个难点小编查对下答案:

那是reduce预管理阶段shuffle时获得已成功的map的输出失败次数当先上限产生的,上限默以为5。引起此主题材料的方法恐怕会有成都百货上千种,举例互连网连接不正规,连接超时,带宽较差以及端口阻塞等。平日框架内网络状态较好是不会师世此错误的。

5.7 解决”Too many fetch-failures”

现身那些标题根本是结点间的连片不够完善。

缓慢解决方案是:

1)检查”/etc/hosts”

须求本机ip 对应服务器名

务求要含有全部的服务器ip +服务器名

2)检查”.ssh/authorized_keys”

渴求涵盖全体服务器(蕴含其自己)的public key

五.8 处理速度特别的慢

出现map异常快,不过reduce相当的慢,而且多次出现”reduce=0%”。

斩草除根方案如下:

重组解决方案伍.7,然后修改”conf/hadoop-env.sh”中的”export
HADOOP_HEAPSIZE=4000″

5.9 解决hadoop OutOfMemoryError问题

出现那种十分,显然是jvm内部存储器不够得原因。

焚林而猎方案如下:要修改全体的datanode的jvm内部存储器大小。

    Java –Xms 1024m -Xmx 4096m

一般jvm的最大内存使用相应为总内部存款和储蓄器大小的六分之三,大家选拔的八G内部存款和储蓄器,所以设置为40玖陆m,那壹值大概照旧不是最优的值。

更多Hadoop相关信息见Hadoop 专题页面 

 

用下边发号施令举办呈现机器名称,假如跟规划的不等同,要安分守己上面实行改动。

hostname

网赌十大信誉的平台 82

上海教室中,用”hostname”查”Master”机器的名称为”Master.Hadoop”,与大家先行规划的同一。

贰)修改当前机械名称

设若大家开采大家的机器的主机名不是我们想要的,通过对”/etc/sysconfig/network”文件修改当中”HOSTNAME”前面包车型客车值,改成我们统一筹划的称呼。

其壹”/etc/sysconfig/network”文件是概念hostname和是不是利用互联网的不接触网络设施的对系统全部定义的公文。

设定情势:设定值=值

“/etc/sysconfig/network”的设定项目如下:

NETWO卡宴KING 是还是不是利用网络

GATEWAY 私下认可网关

IPGATEWAYDEV 暗中认可网关的接口名

HOSTNAME 主机名

DOMAIN 域名

用上边发号施令实行修改当前机械的主机名(备注:修改系统文件一般用root用户)

vim /etc/sysconfig/network

网赌十大信誉的平台 83

透过上面的指令大家从”/etc/sysconfig/network”中找到”HOSTNAME”进行退换,查看内容如下:

网赌十大信誉的平台 84

3)修改当前机械IP

设若我们的机器连IP在当时安装机器时都未有布署好,那此时咱们必要对”ifcfg-eth0″文件实行陈设,该文件位于”/etc/sysconfig/network-scripts”文件夹下。

在这些目录下边,存放的是网络接口(网卡)的制御脚本文件(调节文件),ifcfg-
eth0是私下认可的首先个互联网接口,倘诺机器中有多个网络接口,那么名字就将由此及彼ifcfg-eth一,ifcfg-eth二,ifcfg-
eth三,……。

那其间的文件是1对1关键的,涉及到互联网是不是健康职业。

设定格局:设定值=值

设定项目项目如下:

DEVICE 接口名(设备,网卡)

BOOTPROTO IP的配置方式(static:固定IP, dhcpHCP, none:手动)

HWADDR MAC地址

ONBOOT 系统运转的时候互连网接口是还是不是行得通(yes/no)

TYPE 互连网项目(平时是Ethemet)

NETMASK 网络掩码

IPADDR IP地址

IPV陆INIT IPV6是还是不是有效(yes/no)

GATEWAY 默许网关IP地址

查看”/etc/sysconfig/network-scripts/ifcfg-eth0″内容,假若IP不复核,就行修改。

网赌十大信誉的平台 85

要是上海教室中IP与铺排不切合,用上边发号施令举行改变:

vim /etc/sysconfig/network-scripts/ifcgf-eth0

修改完现在能够用”ifconfig”实行查看。

网赌十大信誉的平台 86

4)配置hosts文件(必须)

“/etc/hosts”这一个文件是用来布署主机将用的DNS服务器音讯,是记载LAN内接二连三的各主机的附和[HostName和IP]用的。当用户在拓展互联网连接时,首先查找该公文,寻觅对应主机名(或域名)对应的IP地址。

咱俩要测试两台机械之间知否连通,一般用”ping 机器的IP”,尽管想用”ping
机器的主机名”发掘找不见该名称的机械,化解的不2秘籍正是修改”/etc/hosts”那些文件,通过把LAN内的各主机的IP地址和HostName的逐条对应写入这些文件的时候,就足以化解难点。

比如:机器为”Master.Hadoop:1九二.16八.1.2″对机械为”Salve一.Hadoop:1九二.16八.一.三”用命令”ping”记性连接测试。测试结果如下:

网赌十大信誉的平台 87

从上海体育场所中的值,直接对IP地址实行测试,能够ping通,可是对主机名进行测试,开采并未ping通,提醒”unknown
host——未知主机”,那时查看”Master.Hadoop”的”/etc/hosts”文件内容。

网赌十大信誉的平台 88

开掘其间未有”192.16八.1.3Slave一.Hadoop”内容,故而本机器是不能对机械的主机名称为”Slave一.Hadoop”
解析。

在进展Hadoop集群配置中,须求在”/etc/hosts”文件中增加集群中具有机器的IP与主机名,这样Master与有着的Slave机器之间不光能够因而IP进行通讯,而且还能通过主机名实行通讯。所以在全部的机械上的”/etc/hosts”文件末尾中都要增多如下内容:

192.168.1.2 Master.Hadoop

192.168.1.3 Slave1.Hadoop

192.168.1.4 Slave2.Hadoop

192.168.1.5 Slave3.Hadoop

用以下命令实行加多:

vim /etc/hosts

网赌十大信誉的平台 89

丰硕结果如下:

网赌十大信誉的平台 90

近年来大家在拓展对机器为”Slave一.Hadoop”的主机名实行ping通测试,看是不是能测试成功。

网赌十大信誉的平台 91

从上海教室中大家曾经能用主机名进行ping通了,表明我们刚才增加的内容,在局域网内能拓展DNS解析了,那么今后结余的事体正是在任何的Slave机器上拓展一样的安顿。然后开始展览测试。(备注:当设置SSH无密码验证后,能够”scp”进行复制,然后把原本的”hosts”文件推行覆盖就可以。)

1.4 所需软件

1)JDK软件

下载地址:

    JDK版本:jdk-6u31-linux-i586.bin

2)Hadoop软件

下载地址:

    Hadoop版本:hadoop-1.0.0.tar.gz

1.5 VSFTP上传

在”Hadoop集群(第2期)”讲了VSFTP的装置及配置,假若未有安装VSFTP可以服从该文档进行设置。要是设置好了,就能够通过FlashFXP.exe软件把大家下载的JDK陆.0和Hadoop一.0软件上流传”Master.Hadoop:1玖2.16八.一.二”服务器上。

网赌十大信誉的平台 92

刚刚我们用一般用户(hadoop)通过FlashFXP软件把所需的三个软件上传了跟目下,大家因而命令查看下一下是否已经上传了。

网赌十大信誉的平台 93

从图中,大家的所需软件已经筹划好了。

2、SSH无密码验证配置

Hadoop运营进度中须要管住远端Hadoop守护进度,在Hadoop运转今后,NameNode是通过SSH(Secure
Shell)来运维和甘休各类DataNode上的各样护理进度的。那就非得在节点之间举行命令的时候是不要求输入密码的款式,故我们须求配置SSH运用无密码公钥认证的款型,那样NameNode使用SSH无密码登入并运转DataName进程,同样原理,DataNode上也能应用SSH无密码登入到NameNode。

二.一 安装和开发银行SSH协议

在”Hadoop集群(第一期)”安装CentOS陆.0时,我们选用了一些为主安装包,所以大家供给七个劳务:ssh和rsync已经安装了。能够通过上面发号施令查看结果彰显如下:

rpm –qa | grep openssh

rpm –qa | grep rsync

网赌十大信誉的平台 94

假如未有安装ssh和rsync,能够经过上面发号施令举办设置。

yum install ssh 安装SSH协议

网赌十大信誉的平台,yum install rsync
(rsync是七个长距离数据同步工具,可经过LAN/WAN急迅同步多台主机间的文本)

service sshd restart 运维服务

管教全部的服务器都设置,上边命令施行完成,各台机器之间能够通过密码验证相互登。

贰.二 配置Master无密码登入全部Salve

一)SSH无密码原理

Master(NameNode |
JobTracker)作为客户端,要促成无密码公钥认证,连接受服务器Salve(DataNode
|
Tasktracker)上时,要求在Master上生成四个密钥对,包罗五个公钥和叁个私钥,而后将公钥复制到全体的Slave上。当Master通过SSH连接Salve时,Salve就能够变动2个私下数并用Master的公钥对随便数进行加密,并发送给Master。Master收到加密数之后再用私钥解密,并将解密数回传给Slave,Slave确认解密数精确之后就允许Master实行一连了。那正是叁个公钥认证进度,其间无需用户手工业输入密码。主要进程是将客户端Master复制到Slave上。

二)Master机器上转移密码对

在Master节点上进行以下命令:

ssh-keygen –t rsa –P ”

那条命是生成其无密码密钥对,询问其保存路径时间接回车选拔暗中同意路径。生成的密钥对:id_rsa和id_rsa.pub,暗许存款和储蓄在”/home/hadoop/.ssh”目录下。

网赌十大信誉的平台 95

翻看”/home/hadoop/”下是还是不是有”.ssh”文件夹,且”.ssh”文件下是或不是有七个刚生产的无密码密钥对。

网赌十大信誉的平台 96

继之在Master节点上做如下配置,把id_rsa.pub追加到授权的key里面去。

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

网赌十大信誉的平台 97

在表明前,需求做两件事情。第一件事儿是修改文件”authorized_keys”权限(权限的安装尤其首要,因为不安全的装置安全设置,会让您不能够动用奥德赛SA成效),另一件事情是用root用户安装”/etc/ssh/sshd_config”的内容。使其无密码登入有效。

壹)修改文件”authorized_keys”

chmod 600 ~/.ssh/authorized_keys

网赌十大信誉的平台 98

备注:要是不举办安装,在表达时,扔提醒您输入密码,在此处费用了濒临半天时间来搜索原因。在网络查到了几篇不错的篇章,把作为”Hadoop集群_第5期副刊_JDK和SSH无密码配置”来救助额外学习之用。

2)设置SSH配置

用root用户登入服务器修改SSH配置文件”/etc/ssh/sshd_config”的下列内容。

网赌十大信誉的平台 99

RSAAuthentication yes # 启用 RSA 认证

PubkeyAuthentication yes # 启用公钥私钥配对认证方法

AuthorizedKeysFile .ssh/authorized_keys #
公钥文件路线(和地点生成的文本同)

安装完事后记得重启SSH服务,能力使刚刚设置有效。

service sshd restart

剥离root登6,使用hadoop普通用户验证是还是不是成功。

ssh localhost

网赌十大信誉的平台 100

从上海体育地方中获悉无密码登入本级已经安装甘休,接下去的事情是把公钥复制全数的Slave机器上。使用上面包车型地铁指令格式举行复制公钥:

scp ~/.ssh/id_rsa.pub 远程用户名@远程服务器IP:~/

例如:

scp ~/.ssh/id_rsa.pub hadoop@192.168.1.3:~/

地点的下令是复制文件”id_rsa.pub”到服务器IP为”1九贰.16八.1.三”的用户为”hadoop”的”/home/hadoop/”上边。

上面就本着IP为”1玖二.16八.1.三”的Slave一.Hadoop的节点开始展览配置。

1)把Master.Hadoop上的公钥复制到Slave一.Hadoop上

网赌十大信誉的平台 101

从上海教室中大家深知,已经把文件”id_rsa.pub”传过去了,因为并不曾创立起无密码连接,所以在连续时,照旧要提醒输入输入Slave一.Hadoop服务器用户hadoop的密码。为了保障真正已经把文件传过去了,用SecureCRT登入Slave1.Hadoop:192.16八.1.三服务器,查看”/home/hadoop/”下是或不是存在这么些文件。

网赌十大信誉的平台 102

从地方得知我们早已成功把公钥复制过去了。

2)在”/home/hadoop/”下创建”.ssh”文件夹

这一步并不是必须的,尽管在Slave1.Hadoop的”/home/hadoop”已经存在就不供给创设了,因为我们事先并未对Slave机器做过无密码登入配置,所以该公文是不设有的。用上面发号施令进行创办。(备注:用hadoop登6系统,假诺不关乎系统文件修改,一般景况下都以用大家事先创立的普通用户hadoop进行实施命令。)

mkdir ~/.ssh

然后是修改文件夹”.ssh”的用户权限,把她的权限修改为”700″,用上面发号施令实践:

chmod 700 ~/.ssh

备注:假若不开始展览,就算你遵照前面包车型地铁操作设置了”authorized_keys”权限,并配备了”/etc/ssh/sshd_config”,还重启了sshd服务,在Master能用”ssh
localhost”举行无密码登陆,但是对Slave一.Hadoop实行登入依旧须求输入密码,就是因为”.ssh”文件夹的权能设置不对。那个文件夹”.ssh”在配置SSH无密码登陆时系统自动生成时,权限自动为”700″,如若是团结手动创立,它的组权限和其余权限都有,这样就能够导致本田UR-VSA无密码远程登入失利。

网赌十大信誉的平台 103

网赌十大信誉的平台 104

相对来讲下边两张图,发掘文件夹”.ssh”权限已经变了。

三)追加到授权文件”authorized_keys”

到近来截止Master.Hadoop的公钥也有了,文件夹”.ssh”也有了,且权限也修改了。这一步正是把Master.Hadoop的公钥追加到Slave一.Hadoop的授权文件”authorized_keys”中去。使用上边发号施令实行追加并修改”authorized_keys”文件权限:

cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

chmod 600 ~/.ssh/authorized_keys

网赌十大信誉的平台 105

四)用root用户修改”/etc/ssh/sshd_config”

具体步骤参考前边Master.Hadoop的”设置SSH配置”,具体分为两步:第三是修改配置文件;第一是重启SSH服务。

伍)用Master.Hadoop使用SSH无密码登6Slave一.Hadoop

当前边的步骤设置截至,就能够应用上面发号施令格式举办SSH无密码登入了。

ssh 远程服务器IP

网赌十大信誉的平台 106

从上海体育场所大家任重而道远3个地方,第二个就是SSH无密码登六命令,第叁、贰个便是登录前后”@”前边的机械名变了,由”Master”变为了”Slave壹”,那就表明我们早已打响落到实处了SSH无密码登入了。

末段记得把”/home/hadoop/”目录下的”id_rsa.pub”文件删除掉。

rm –r ~/id_rsa.pub

网赌十大信誉的平台 107

到此截至,大家经过前5步已经落到实处了从”Master.Hadoop”到”Slave一.Hadoop”SSH无密码登陆,上面就是重新上边的手续把剩下的两台(Slave二.Hadoop和Slave3.Hadoop)Slave服务器实行配置。那样,大家就完毕了”配置Master无密码登入全数的Slave服务器”。

二.3 配置全数Slave无密码登入Master

和Master无密码登陆全体Slave原理同样,正是把Slave的公钥追加到Master的”.ssh”文件夹下的”authorized_keys”中,记得是扩充(>>)。

为了评释景况,大家以后就以”Slave一.Hadoop”无密码登六”Master.Hadoop”为例,进行2次操作,也毕竟巩固一下前方所学知识,剩余的”Slave2.Hadoop”和”Slave3.Hadoop”就根据那么些示例实行就可以了。

先是创建”Slave一.Hadoop”自个儿的公钥和私钥,并把温馨的公钥追加到”authorized_keys”文件中。用到的命令如下:

ssh-keygen –t rsa –P ”

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

网赌十大信誉的平台 108

随后是用命令”scp”复制”Slave一.Hadoop”的公钥”id_rsa.pub”到”Master.Hadoop”的”/home/hadoop/”目录下,并扩张到”Master.Hadoop”的”authorized_keys”中。

1)在”Slave一.Hadoop”服务器的操作

用到的一声令下如下:

scp ~/.ssh/id_rsa.pub     hadoop@192.168.1.2:~/

网赌十大信誉的平台 109

贰)在”Master.Hadoop”服务器的操作

用到的通令如下:

cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

网赌十大信誉的平台 110

接下来删除掉刚才复制过来的”id_rsa.pub”文件。

网赌十大信誉的平台 111

末尾是测试从”Slave一.Hadoop”到”Master.Hadoop”无密码登录。

网赌十大信誉的平台 112

从地点结果中得以看来曾经成功达成了,再试下从”Master.Hadoop”到”Slave1.Hadoop”无密码登6。

网赌十大信誉的平台 113

时至前几天”Master.Hadoop”与”Slave壹.Hadoop”之间能够并行无密码登入了,剩下的正是依据下面的步骤把剩余的”Slave二.Hadoop”和”Slave叁.Hadoop”与”Master.Hadoop”之间营造起无密码登录。这样,Master能无密码验证登入每一种Slave,每种Slave也能无密码验证登入到Master。

三、Java境况设置

不无的机器上都要安装JDK,未来就先在Master服务器安装,然后其余服务器依据步骤重复进行就能够。安装JDK以及安顿情状变量,供给以”root”的地点展开。

3.1 安装JDK

率先用root身份登六”Master.Hadoop”后在”/usr”下创建”java”文件夹,再把用FTP上传到”/home/hadoop/”下的”jdk-陆u31-linux-i5八陆.bin”复制到”/usr/java”文件夹中。

mkdir /usr/java

cp /home/hadoop/ jdk-6u31-linux-i586.bin /usr/java

网赌十大信誉的平台 114

紧接着进入”/usr/java”目录下通过下边发号施令使其JDK获得可实行权限,并安装JDK。

chmod    +x     jdk-6u31-linux-i586.bin

./jdk-6u31-linux-i586.bin

网赌十大信誉的平台 115

依照上边几步实行操作,最后点击”Enter”键开始设置,安装完会提示您按”Enter”键退出,然后查看”/usr/java”上面会开掘多了叁个名称叫”jdk一.陆.0_31″文件夹,表明大家的JDK安装收尾,删除”jdk-六u3一-linux-i586.bin”文件,进入下八个”配置蒙受变量”环节。

网赌十大信誉的平台 116

三.二 配置遭逢变量

编排”/etc/profile”文件,在前面增多Java的”JAVA_HOME”、”CLASSPATH”以及”PATH”内容。

1)编辑”/etc/profile”文件

vim     /etc/profile

网赌十大信誉的平台 117

2)增添Java情况变量

在”/etc/profile”文件的尾部加多以下内容:

# set java environment

export JAVA_HOME=/usr/java/jdk1.6.0_31/

export JRE_HOME=/usr/java/jdk1.6.0_31/jre

export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib

export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

或者

# set java environment

export JAVA_HOME=/usr/java/jdk1.6.0_31

export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin

如上三种意思同样,那么咱们就分选第1种来张开设置。

网赌十大信誉的平台 118

三)使配置生效

保存并退出,实行下面发号施令使其配备马上生效。

source /etc/profile

网赌十大信誉的平台 119

三.三 验证安装成功

安顿完结并生效后,用上面发号施令判定是或不是中标。

java -version

网赌十大信誉的平台 120

从上海教室中获悉,我们以鲜明JDK已经安装成功。

3.四 安装剩余机器

那时用普通用户hadoop通过下边发号施令格式把”Master.Hadoop”文件夹”/home/hadoop/”的JDK复制到其余Slave的”/home/hadoop/”上边,剩下的事儿就是在别的的Slave服务器上服从上海体育场合的步子安装JDK。

scp /home/hadoop/jdk-陆u3一-linux-i5八陆.bin 长距离用户名@远程服务器IP:~/

或者

scp ~/jdk-六u31-linux-i58陆.bin 远道用户名@远程服务器IP:~/

备注:”~”代表当前用户的主目录,当前用户为hadoop,所以”~”代表”/home/hadoop”。

诸如:把JDK从”Master.Hadoop”复制到”Slave1.Hadoop”的命令如下。

scp ~/jdk-6u31-linux-i586 hadoop@192.168.1.3:~/

网赌十大信誉的平台 121

下一场查看”Slave1.Hadoop”的”/home/hadoop”查看是还是不是曾经复制成功了。

网赌十大信誉的平台 122

从上海教室中搜查捕获,大家曾经打响复制了,今后大家就用最高权力用户root进行设置了。别的的与那么些同样。

四、Hadoop集群安装

不无的机械上都要设置hadoop,未来就先在Master服务器安装,然后别的服务器遵照步骤重复举行就可以。安装和配置hadoop要求以”root”的地位实行。

4.1 安装hadoop

先是用root用户登6″Master.Hadoop”机器,查看大家事先用FTP上传至”/home/Hadoop”上传的”hadoop-一.0.0.tar.gz”。

网赌十大信誉的平台 123

跟着把”hadoop-一.0.0.tar.gz”复制到”/usr”目录下边。

cp /home/hadoop/hadoop-1.0.0.tar.gz /usr

网赌十大信誉的平台 124

下一步进入”/usr”目录下,用上边发号施令把”hadoop-壹.0.0.tar.gz”举办解压,并将其取名称为”hadoop”,把该文件夹的读权限分配给普通用户hadoop,然后删除”hadoop-①.0.0.tar.gz”安装包。

cd /usr #进入”/usr”目录

tar –zxvf hadoop-1.0.0.tar.gz #解压”hadoop-1.0.0.tar.gz”安装包

mv hadoop-1.0.0 hadoop #将”hadoop-1.0.0″文件夹重命名”hadoop”

chown –R hadoop:hadoop hadoop #将文件夹”hadoop”读权限分配给hadoop用户

rm –rf hadoop-1.0.0.tar.gz                
#删除”hadoop-1.0.0.tar.gz”安装包

网赌十大信誉的平台 125

解压后,同等对待命名。

网赌十大信誉的平台 126

把”/usr/hadoop”读权限分配给hadoop用户(万分主要)

网赌十大信誉的平台 127

删除”hadoop-1.0.0.tar.gz”安装包

网赌十大信誉的平台 128

末段在”/usr/hadoop”上边创设tmp文件夹,把Hadoop的装置路线增添到”/etc/profile”中,修改”/etc/profile”文件(配置java情状变量的公文),将以下语句增添到结尾,并使其卓有成效:

# set hadoop path

export HADOOP_HOME=/usr/hadoop

export PATH=$PATH :$HADOOP_HOME/bin

1)在”/usr/hadoop”创建”tmp”文件夹

mkdir /usr/hadoop/tmp

网赌十大信誉的平台 129

2)配置”/etc/profile”

vim /etc/profile

网赌十大信誉的平台 130

配置后的公文如下:

网赌十大信誉的平台 131

3)重启”/etc/profile”

source /etc/profile

网赌十大信誉的平台 132

4.2 配置hadoop

1)配置hadoop-env.sh

该”hadoop-env.sh”文件位于”/usr/hadoop/conf”目录下。

网赌十大信誉的平台 133

在文件的最终增加上边内容。

# set java environment

export JAVA_HOME=/usr/java/jdk1.6.0_31

网赌十大信誉的平台 134

Hadoop配置文件在conf目录下,此前的版本的安排文件器重是Hadoop-default.xml和Hadoop-site.xml。由于Hadoop发展迅猛,代码量小幅度扩大,代码开垦分为了core,hdfs和map/reduce三片段,配置文件也被分为了多少个core-site.xml、hdfs-site.xml、mapred-site.xml。core-site.xml和hdfs-site.xml是站在HDFS角度上布署文件;core-site.xml和mapred-site.xml是站在MapReduce角度上配置文件。

2)配置core-site.xml文件

修改Hadoop核心配置文件core-site.xml,这里配置的是HDFS的地方和端口号。

<configuration>

    <property>

        <name>hadoop.tmp.dir</name>

        <value>/usr/hadoop/tmp</value>

(备注:请先在 /usr/hadoop 目录下创建 tmp 文件夹)

        <description>A base for other temporary
directories.</description>

    </property>

<!– file system properties –>

    <property>

        <name>fs.default.name</name>

        <value>hdfs://192.168.1.2:9000</value>

    </property>

</configuration>

备考:如未有安插hadoop.tmp.dir参数,此时系统暗许的最近目录为:/tmp/hadoo-hadoop。而那些目录在历次重启后都会被干掉,必须再度实行format才行,不然会出错。

用下边发号施令进行编写制定:

网赌十大信誉的平台 135

编纂结果展现如下:

网赌十大信誉的平台 136

3)配置hdfs-site.xml文件

修改Hadoop中HDFS的布置,配置的备份格局默感觉三。

<configuration>

    <property>

        <name>dfs.replication</name>

        <value>1</value>

        (备注:replication
是数额别本数量,默感到3,salve少于叁台就能够报错)

    </property>

<configuration>

用上边发号施令举行编辑:

网赌十大信誉的平台 137

编写制定结果显示如下:

网赌十大信誉的平台 138

4)配置mapred-site.xml文件

修改Hadoop中MapReduce的配备文件,配置的是JobTracker的地点和端口。

<configuration>

    <property>

        <name>mapred.job.tracker</name>

        <value>;

    </property>

</configuration>

用下边发号施令实行编写制定:

网赌十大信誉的平台 139

编辑结果展现如下:

网赌十大信誉的平台 140

5)配置masters文件

有二种方案:

(1)第一种

修改localhost为Master.Hadoop

(2)第二种

去掉”localhost”,加入Master机器的IP:192.168.1.2

为确定保证起见,启用第三种,因为万一忘记配置”/etc/hosts”局域网的DNS失效,那样就能并发离奇的荒唐,可是假使IP配对,互联网通畅,就能够经过IP找到呼应主机。

用上面发号施令实行改造:

网赌十大信誉的平台 141

编写制定结果突显如下:

网赌十大信誉的平台 142

6)配置slaves文件(Master主机特有)

有三种方案:

(1)第一种

去掉”localhost”,每行只加多一个主机名,把剩余的Slave主机名都填上。

譬如:增添样式如下

Slave1.Hadoop

Slave2.Hadoop

Slave3.Hadoop

(2)第二种

去掉”localhost”,参加集群中保有Slave机器的IP,也是每行一个。

比方:增加花样如下

192.168.1.3

192.168.1.4

192.168.1.5

原因和丰盛”masters”文件1律,选用第三种办法。

用下边发号施令实行改造:

网赌十大信誉的平台 143

编纂结果如下:

网赌十大信誉的平台 144

今日在Master机器上的Hadoop配置就得了了,剩下的就是安排Slave机器上的Hadoop。

1种办法是绳趋尺步下边包车型客车步子,把Hadoop的安装包在用普通用户hadoop通过”scp”复制到别的机器的”/home/hadoop”目录下,然后依照实际境况张开设置配备,除了第六步,这是Master特有的。用下边发号施令格式实行。(备注:此时切换来普通用户hadoop)

scp ~/hadoop-1.0.0.tar.gz hadoop@服务器IP:~/

譬如:从”Master.Hadoop”到”Slave一.Hadoop”复制Hadoop的安装包。

网赌十大信誉的平台 145

另1种方法是将
Master上布署好的hadoop所在文书夹”/usr/hadoop”复制到全部的Slave的”/usr”目录下(实际上Slave机器上的slavers文件是不供给的,
复制了也没难题)。用上面发号施令格式进行。(备注:此时用户可以为hadoop也得以为root)

scp -r /usr/hadoop root@服务器IP:/usr/

比方说:从”Master.Hadoop”到”Slave1.Hadoop”复制配置Hadoop的文书。

网赌十大信誉的平台 146

上海图书馆中以root用户实行理并答复制,当然不管是用户root依然hadoop,即使Master机器上的”/usr/hadoop”文件夹用户hadoop有权力,可是Slave壹上的hadoop用户却不曾”/usr”权限,所以并未创设文件夹的权位。所以无论哪个用户进行拷贝,右面都以”root@机器IP”格式。因为我们只是创设起了hadoop用户的SSH无密码连接,所以用root进行”scp”时,扔提醒让你输入”Slave一.Hadoop”服务器用户root的密码。

查看”Slave一.Hadoop”服务器的”/usr”目录下是不是业已存在”hadoop”文件夹,确认已经复制成功。查看结果如下:

网赌十大信誉的平台 147

从上海体育场地中驾驭,hadoop文件夹确实已经复制了,不过我们开采hadoop权限是root,所以大家将来要给”Slave壹.Hadoop”服务器上的用户hadoop增添对”/usr/hadoop”读权限。

以root用户登陆”Slave1.Hadoop”,试行上边发号施令。

chown -R hadoop:hadoop(用户名:用户组) hadoop(文件夹)

网赌十大信誉的平台 148

随即在”Slave1 .Hadoop”上改造”/etc/profile”文件(配置 java
境遇变量的文件),将以下语句加多到结尾,并使其一蹴而就(source
/etc/profile):

# set hadoop environment

export HADOOP_HOME=/usr/hadoop

export PATH=$PATH :$HADOOP_HOME/bin

设若不知底怎么设置,能够查看前边”Master.Hadoop”机器的”/etc/profile”文件的配备,到此为此在一台Slave机器上的Hadoop配置就终止了。剩下的事宜正是模拟把剩余的几台Slave机器依据《从”Master.Hadoop”到”Slave1.Hadoop”复制Hadoop的安装包。》那个例子进行陈设Hadoop。

肆.三 运行及说明

一)格式化HDFS文件系统

在”Master.Hadoop”上选择普通用户hadoop举行操作。(备注:只需一遍,下次初阶不再供给格式化,只需
start-all.sh)

hadoop namenode -format

一些书上和网络的少数质感中用下边发号施令推行。

网赌十大信誉的平台 149

大家在看繁多文书档案包含有些书上,遵照他们的hadoop情状变量进行安插后,并马上使其收效,可是举办意识并未有找见”bin/hadoop”这几个命令。

网赌十大信誉的平台 150

实在我们会发掘我们的意况变量配置的是”$HADOOP_HOME/bin”,我们早就把bin包涵进入了,所以进行时,加上”bin”反而找不到该命令,除非大家的hadoop坏境变量如下设置。

# set hadoop path

export HADOOP_HOME=/usr/hadoop

export PATH=$PATH : $HADOOP_HOME :$HADOOP_HOME/bin

那般就能够间接使用”bin/hadoop”也能够直接利用”hadoop”,未来无论哪个种类情景,hadoop命令都能找见了。大家也远非须要重新在安装hadoop情状变量了,只须求牢记施行Hadoop命令时无需在前边加”bin”就足以了。

网赌十大信誉的平台 151

网赌十大信誉的平台 152

从上航海用体育场面中级知识分子道大家已经成功格式话了,不过美中不足正是出新了二个警戒,从英特网的获悉那个警示并不影响hadoop试行,可是也有法子消除,详细情况看前面包车型客车”常见难点FAQ”。

2)启动hadoop

在运营前关闭集群中具有机器的防火墙,不然会油不过生datanode开后又自行关闭。

service iptables stop

选用上边发号施令运维。

start-all.sh

网赌十大信誉的平台 153

执行结果如下:

网赌十大信誉的平台 154

能够通过以下运营日志看出,首先运行namenode
接着运维datanode1,datanode二,…,然后运营secondarynamenode。再开发银行jobtracker,然后运转tasktracker1,tasktracker2,…。

开发银行 hadoop成功后,在 Master 中的 tmp 文件夹中生成了 dfs 文件夹,在Slave
中的 tmp 文件夹中均生成了 dfs 文件夹和 mapred 文件夹。

翻看Master中”/usr/hadoop/tmp”文件夹内容

网赌十大信誉的平台 155

翻开Slave第11中学”/usr/hadoop/tmp”文件夹内容。

网赌十大信誉的平台 156

3)验证hadoop

(一)验证办法一:用”jps”命令

在Master上用 java自带的小工具jps查看进程。

网赌十大信誉的平台 157

在Slave1上用jps查看进程。

网赌十大信誉的平台 158

纵然在查看Slave机器中开掘”DataNode”和”TaskTracker”未有起来时,先查看一下日志的,借使是”namespaceID”不等同难题,采取”常见难题FAQ陆.二”进行缓慢解决,假使是”No
route to host”难点,采取”常见难题FAQ陆.三”举行化解。

(二)验证办法②:用”hadoop dfsadmin -report”

用这几个命令能够查阅Hadoop集群的场馆。

Master服务器的动静:

网赌十大信誉的平台 159

Slave服务器的景观

网赌十大信誉的平台 160

四.四 网页查看集群

1)访问”http:192.168.1.2:50030″

网赌十大信誉的平台 161

2)访问”http:192.168.1.2:50070″

网赌十大信誉的平台 162

伍、常见难题FAQ

5.1 关于 Warning: $HADOOP_HOME is deprecated.

hadoop 一.0.0版本,安装完现在敲入hadoop命令时,老是提示这一个警示:

Warning: $HADOOP_HOME is deprecated.

经查hadoop-一.0.0/bin/hadoop脚本和”hadoop-config.sh”脚本,开采脚本中对HADOOP_HOME的境况变量设置做了判断,小编的条件根本无需安装HADOOP_HOME境遇变量。

涸泽而渔方案1:编辑”/etc/profile”文件,去掉HADOOP_HOME的变量设定,重新输入hadoop
fs命令,警告消失。

消除方案2:编辑”/etc/profile”文件,加多一个碰着变量,之后警告消失:

export HADOOP_HOME_WARN_SUPPRESS=1

化解方案3:编辑”hadoop-config.sh”文件,把下部的”if – fi”功用注释掉。

网赌十大信誉的平台 163

大家那边针对不动Hadoop原配置文件的前提下,采纳”方案二”,在”/etc/profile”文件加多上边内容,并用命令”source
/etc/profile”使之有效。

1)切换至root用户

网赌十大信誉的平台 164

二)增添内容

网赌十大信誉的平台 165

三)重新生效

网赌十大信誉的平台 166

5.2 解决”no datanode to stop”问题

当自家截至Hadoop时意识如下音讯:

网赌十大信誉的平台 167

由来:每一趟namenode
format会重新创建叁个namenodeId,而tmp/dfs/data下富含了上次format下的id,namenode
format清空了namenode下的多少,然而未有清空datanode下的多少,导致运转时失败,所要做的便是历次fotmat前,清空tmp一下的全体目录。

首先种减轻方案如下:

1)先删除”/usr/hadoop/tmp”

rm -rf /usr/hadoop/tmp

2)创建”/usr/hadoop/tmp”文件夹

mkdir /usr/hadoop/tmp

3)删除”/tmp”下以”hadoop”早先文件

rm -rf /tmp/hadoop*

4)重新格式化hadoop

hadoop namenode -format

5)启动hadoop

start-all.sh

运用第1种方案,有种倒霉处便是原来集群上的首要数据全未有了。假若说Hadoop集群已经运营了一段时间。建议选用第3种。

其次种方案如下:

1)修改每一种Slave的namespaceID使其与Master的namespaceID壹致。

或者

2)修改Master的namespaceID使其与Slave的namespaceID一致。

该”namespaceID”位于”/usr/hadoop/tmp/dfs/data/current/VE安德拉SION”文件中,前面石青的恐怕基于真实意况变化,但后边浅青黄是不改变的。

例如:查看”Master”下的”VERSION”文件

网赌十大信誉的平台 168

自己提出利用第贰种,那样方便飞速,而且仍能堤防误删。

5.3 Slave服务器中datanode运行后又自动关闭

翻开日志发下如下错误。

ERROR org.apache.hadoop.hdfs.server.datanode.DataNode:
java.io.IOException: Call to … failed on local exception:
java.net.NoRouteToHostException: No route to host

化解方案是:关闭防火墙

service iptables stop

伍.肆 从本土往hdfs文件系统上传文件

并发如下错误:

INFO hdfs.DFSClient: Exception in createBlockOutputStream
java.io.IOException: Bad connect ack with firstBadLink

INFO hdfs.DFSClient: Abandoning block blk_-1300529705803292651_37023

WARN hdfs.DFSClient: DataStreamer Exception: java.io.IOException: Unable
to create new block.

缓慢解决方案是:

一)关闭防火墙

service iptables stop

2)禁用selinux

编辑 “/etc/selinux/config”文件,设置”SELINUX=disabled”

5.伍 安全形式招致的不当

出现如下错误:

org.apache.hadoop.dfs.SafeModeException: Cannot delete …, Name node is
in safe mode

在遍及式文件系统运行的时候,开首的时候会有平安形式,当布满式文件系统处于安全形式的事态下,文件系统中的内容不允许修改也不允许删除,直到安全方式甘休。安全情势主若是为着系统运维的时候检查种种DataNode上数据块的有效性,同时依照政策须要的复制大概去除部分数据块。运维期通过命令也得以进来安全格局。在试行进度中,系统运转的时候去修改和删除文件也会有平安方式不允许修改的失误提醒,只供给静观其变1会儿就能够。

化解方案是:关闭安全形式

hadoop dfsadmin -safemode leave

5.6 解决Exceeded MAX_FAILED_UNIQUE_FETCHES

并发谬误如下:

Shuffle Error: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-out

先后里面要求展开多少个文件,进行解析,系统一般暗许数量是十二肆,(用ulimit
-a能够看到)对于健康使用是够了,可是对于程序来说,就太少了。

解决方案是:修改3个文件。

1)”/etc/security/limits.conf”

vim /etc/security/limits.conf

加上:

soft nofile 102400

hard nofile 409600

2)”/etc/pam.d/login”

vim /etc/pam.d/login

添加:

session required /lib/security/pam_limits.so

本着第陆个难题小编考订下答案:

那是reduce预管理阶段shuffle时猎取已到位的map的出口退步次数超越上限变成的,上限默感觉伍。引起此主题材料的法子或者会有很各种,举个例子互联网连接不正规,连接超时,带宽较差以及端口阻塞等。平时框架内互联网状态较好是不会油然则生此错误的。

5.7 解决”Too many fetch-failures”

并发这么些标题关键是结点间的连接不够健全。

减轻方案是:

1)检查”/etc/hosts”

务求本机ip 对应 服务器名

渴求要含有全数的服务器ip +服务器名

2)检查”.ssh/authorized_keys”

渴求包罗全数服务器(包蕴其自个儿)的public key

五.8 管理速度尤其的慢

并发map比极快,不过reduce一点也不快,而且数十次出现”reduce=0%”。

消除方案如下:

组合解决方案5.7,然后修改”conf/hadoop-env.sh”中的”export
HADOOP_HEAPSIZE=4000″

5.9解决hadoop OutOfMemoryError问题

并发那种特别,分明是jvm内部存款和储蓄器不够得原因。

化解方案如下:要修改全部的datanode的jvm内部存款和储蓄器大小。

Java –Xms 1024m -Xmx 4096m

一般jvm的最大内部存款和储蓄器使用相应为总内部存款和储蓄器大小的四分之2,咱们应用的捌G内部存款和储蓄器,所以设置为40九陆m,那1值大概如故不是最优的值。

5.10 Namenode in safe mode

减轻方案如下:

bin/hadoop dfsadmin -safemode leave

伍.1一 IO写操作出现难题

0-1246359584298, infoPort=50075, ipcPort=50020):Got exception while
serving blk_-5911099437886836280_1292 to /172.16.100.165:

java.net.SocketTimeoutException: 480000 millis timeout while waiting for
channel to be ready for write. ch :
java.nio.channels.SocketChannel[connected local=/

172.16.100.165:50010 remote=/172.16.100.165:50930]

at
org.apache.hadoop.net.SocketIOWithTimeout.waitForIO(SocketIOWithTimeout.java:185)

at
org.apache.hadoop.net.SocketOutputStream.waitForWritable(SocketOutputStream.java:159)

……

It seems there are many reasons that it can timeout, the example given
in HADOOP-3831 is a slow reading client.

缓慢解决方案如下:

在hadoop-site.xml中设置dfs.datanode.socket.write.timeout=0

5.12 status of 255 error

破绽百出类型:

java.io.IOException: Task process exit with nonzero status of 255.

at org.apache.hadoop.mapred.TaskRunner.run(TaskRunner.java:424)

不当原因:

Set mapred.jobtracker.retirejob.interval and mapred.userlog.retain.hours
to higher value. By default, their values are 24 hours. These might be
the reason for failure, though I’m not sure restart.

消除方案如下:单个datanode

比如二个datanode
出现难点,消除未来供给重新出席cluster而不重启cluster,方法如下:

bin/hadoop-daemon.sh start datanode

bin/hadoop-daemon.sh start jobtracker

6、用到的Linux命令

陆.壹 chmod命令详解

运用权力:全数使用者

动用方法:chmod [-cfvR] [–help] [–version] mode file…

说明:

Linux/Unix 的档案存取权限分为三级 : 档案具有者、群组、其余。利用 chmod
能够藉以决定档案怎么着被别人所存取。

mode :权限设定字串,格式如下
:[ugoa…][[+-=][rwxX]…][,…],在那之中u 表示该档案的具备者,g
代表与该档案的具有者属于同1个群众体育(group)者,o 表示别的以外的人,a
表示那3者皆是。

+ 表示扩展权限、- 表示打消权限、= 表示唯一设定权限。

r 表示可读取,w 表示可写入,x 表示可实行,X
代表除非当该档案是个头目录也许该档案已经被设定过为可进行。

-c : 若该档案权限确实已经济体改成,才显示其改换动作

-f : 若该档案权限无法被改变也不要显示错误音信

-v : 展现权限改换的详细资料

-Evoque :
对脚下目录下的富有档案与子目录进行一样的权杖更改(即以递回的艺术挨个改动)

–help : 展现协理表达

–version : 显示版本

范例:

将档案 file一.txt 设为全数人皆可读取

chmod ugo+r file1.txt

将档案 file一.txt 设为全体人皆可读取

chmod a+r file1.txt

将档案 file一.txt 与 file2.txt
设为该档案具备者,与其所属同3个群众体育者可写入,但别的以外的人则不足写入

chmod ug+w,o-w file1.txt file2.txt

将 ex一.py 设定为只有该档案具备者能够实践

chmod u+x ex1.py

将方今目录下的具有档案与子目录皆设为任哪个人可读取

chmod -R a+r *

此外chmod也能够用数字来表示权限如 chmod 777 file

语法为:chmod abc file

里面a,b,c各为多少个数字,分别代表User、Group、及Other的权能。

r=4,w=2,x=1

若要rwx属性则4+2+1=7;

若要rw-属性则4+2=6;

若要r-x属性则4+1=7。

范例:

chmod a=rwx file 和 chmod 777 file 效果同样

chmod ug=rwx,o=x file 和 chmod 77① file 效果相同

若用chmod 475伍 filename可使此程式具备root的权限

6.2 chown命令详解

采用权限:root

使用方法:chown [-cfhvR] [–help] [–version] user[:group]
file…

说明:

Linux/Unix 是几人多工作业系统,全体的档案皆有具有者。利用 chown
能够将档案的具有者加以改造。一般的话,这么些命令只有是由系统理事(root)所选择,一般使用者未有权限能够改动外人的档案具有者,也尚未权力可以团结的档案具备者改设为他人。唯有系统监护人(root)才有如此的权柄。

user : 新的档案具备者的使用者

IDgroup : 新的档案具备者的使用者群众体育(group)

-c : 若该档案拥有者确实已经改造,才显得其变动动作

-f : 若该档案具有者比较小概被改换也决不突显错误音信

-h : 只对于连结(link)举办改造,而非该 link 真正指向的档案

-v : 展现具有者更动的详细资料

-汉兰达 :
对现阶段目录下的富有档案与子目录进行同样的拥有者退换(即以递回的点子挨个改动)

–help : 展现协理表达

–version : 展现版本

范例:

将档案 file1.txt 的具有者设为 users 群众体育的使用者 jessie

chown jessie:users file1.txt

将眼下目录下的具备档案与子目录的具有者皆设为 users 群众体育的使用者 lamport

chown -R lamport:users *

-rw——- (600) — 唯有属主有读写权限。

-rw-r–r– (64肆) — 只有属主有读写权限;而属组用户和别的用户只有读权限。

-rwx—— (700) — 唯有属主有读、写、实施权限。

-rwxr-xr-x (755) —
属主有读、写、实行权限;而属组用户和其余用户只有读、试行权限。

-rwx–x–x (711) —
属主有读、写、实施权限;而属组用户和其余用户唯有举办权限。

-rw-rw-rw- (666) — 全数用户都有文件读、写权限。那种做法不可取。

-rwxrwxrwx (777) — 全数用户都有读、写、奉行权限。更不可取的做法。

以下是对目录的八个平时设定:

drwx—— (700) – 唯有属主可在目录中读、写。

drwxr-xr-x (755) – 全部用户可读该目录,但唯有属主能力改换目录中的内容

suid的表示数字是肆,比方4755的结果是-rwsr-xr-x

sgid的意味数字是二,举例6755的结果是-rwsr-sr-x

sticky位代表数字是1,举个例子775伍的结果是-rwsr-sr-t

6.三 scp命令详解

scp是 secure
copy的缩写,scp是linux系统下基于ssh登录实行安全的长途文件拷贝命令。linux的scp命令能够在linux服务器之间复制文件和目录。

scp命令的用途:

scp在网络上不一致的主机之间复制文件,它应用ssh安全协议传输数据,具备和ssh一样的辨证机制,从而安全的中远距离拷贝文件。

scp命令基本格式:

scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i
identity_file]

[-l limit] [-o ssh_option] [-P port] [-S program]

[[user@]host1:]file1 […] [[user@]host2:]file2

scp命令的参数表达:

-壹    强制scp命令使用协议ssh一

-二    强制scp命令使用协议ssh二

-4    强制scp命令只利用IPv四寻址

-陆    强制scp命令只利用IPv6寻址

-B    使用批处理情势(传输进程中不领悟传输口令或短语)

-C    允许巨惠扣。(将-C标记传递给ssh,从而开采压缩作用)

-p 保留原来的作品件的退换时间,访问时间和做客权限。

-q    不显得传输进度条。

-r    递归复制整个目录。

-v
详细措施体现输出。scp和ssh(1)会来得出任何进度的调节和测试消息。那些信息用于调节和测试连接,验证和安排难点。

-c cipher    以cipher将数据传输实行加密,那几个选项将直接传送给ssh。

-F ssh_config    钦命二个代表的ssh配置文件,此参数直接传送给ssh。

-i identity_file       
从内定文件中读取传输时行使的密钥文件,此参数直接传送给ssh。

-l limit    限定用户所能使用的带宽,以Kbit/s为单位。

-o ssh_option    假诺习贯于选用ssh_config(伍)中的参数字传送递格局,

-P port 注意是大写的P, port是点名数量传输用到的端口号

-S program   
钦赐加密传输时所采取的程序。此程序必须能够知情ssh(1)的选项。

scp命令的莫过于行使

一)从地方服务器复制到远程服务器

(一) 复制文件:

指令格式:

scp local_file remote_username@remote_ip:remote_folder

或者

scp local_file remote_username@remote_ip:remote_file

或者

scp local_file remote_ip:remote_folder

或者

scp local_file remote_ip:remote_file

第一,3个钦赐了用户名,命令实行后必要输入用户密码,第3个仅钦点了远程的目录,文件名字不改变,第壹个钦点了文件名

第贰,陆个尚未点名用户名,命令实施后需求输入用户名和密码,第二个仅内定了长途的目录,文件名字不改变,第四个钦定了文本名

实例:

scp /home/linux/soft/scp.zip
root@www.mydomain.com:/home/linux/others/soft

scp /home/linux/soft/scp.zip
root@www.mydomain.com:/home/linux/others/soft/scp2.zip

scp /home/linux/soft/scp.zip
www.mydomain.com:/home/linux/others/soft

scp /home/linux/soft/scp.zip
www.mydomain.com:/home/linux/others/soft/scp2.zip

(2) 复制目录:

命令格式:

scp -r local_folder remote_username@remote_ip:remote_folder

或者

scp -r local_folder remote_ip:remote_folder

第一个内定了用户名,命令实施后须求输入用户密码;

第一个尚未点名用户名,命令施行后供给输入用户名和密码;

例子:

scp -r /home/linux/soft/ root@www.mydomain.com:/home/linux/others/

scp -r /home/linux/soft/
www.mydomain.com:/home/linux/others/

上边 命令 将 本地 soft 目录 复制 到 远程 others
目录下,即复制后远程服务器上会有/home/linux/others/soft/ 目录。

二)从远程服务器复制到本地服务器

从远程复制到本地的scp命令与地点的吩咐雷同,只要将从本地复制到远程的吩咐前面一个参数交流顺序就行了。

例如:

scp root@www.mydomain.com:/home/linux/soft/scp.zip
/home/linux/others/scp.zip

scp
www.mydomain.com:/home/linux/soft/
-r /home/linux/others/

linux系统下scp命令中众多参数都和ssh一有关,还索要看到更原汁原味的参数消息,可以运转man
scp 看到更周到的英文表达。

Post Author: admin

发表评论

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