菜单

Win10臻利用子系统搭建hadoop本地开发环境与周边问题迎刃而解。Centos7日增建筑zookeeper集群。

2018年9月19日 - betway官网手机版

Win10达成利用子系统搭建hadoop本地开发环境以及大问题迎刃而解

centos7同前面的本都未一致,修改主机名在/ect/hostname 和/ect/hosts
这点儿独文本决定

说明

良心鼓舞的备修hadoop,没悟出困难重重,具体多坑?
Hadoop对微软如此不协调,
本来打算安装于docker上可吧,一物色,一个科目都未曾,我???,
这就是说装个虚拟机吧,配置范围了自家之想象,
这就是说将个对体系吧,linux上以休能够设置qq等得软件,
尽管也可是编译Hadoop源码为windows版本,但是hadoop那么基本上生态环境,难道自己要各一个都编译?
乃可能会见将代码打包为jar包再发送至服务器上运行,但是就多了大量的调节工作,而且浪费了大量时刻。
自将就windows能怎么收拾?甚至曾想换个黑苹果(忍住了)。

估计我那个微软自己为发觉这样下去无法盈利,只能赶紧让上兄弟Ubuntu来填坑。
以课程利用win10从带的Ubuntu子系统来安排Hadoop运行条件。

首先修改/ect/hostname

要求

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

vi /ect/hostname

步骤

开辟以后的情是:

第一步:安装Ubuntu子系统

开拓windows商店,搜索Ubuntu,找到后点击安装,等待安装收尾即可。
安完成后,为了以后会加快布局速度,安包源也阿里源。

localhost.localdomain

第二步:配置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

本文选择第一种植,即直接关门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查是否非欲密码登录,若出现问题,请查看输出到屏幕的日记。

将其修改成你想如果的名字即好,比如: niukou.com

第三步:安装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文本被首先实施上加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或另开发工具进行开暨调剂了,而无用每次都自包及服务器上运行了(鼓掌)

保留退出

广泛错误

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

然后修改/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来访问这台机器的劳务了

 

 

 

CentOS 下SSH无密码登录的部署

 

新近求学Hadoop。它要求各国节点内通过SSH无密码登录,配置SSH的时候费了千篇一律旗功夫,记录下来,以备忘。

布置SSH无密码登录要3步:

    1.生化为公钥和私钥

    2.导入公钥到说明文件,更改权限

    3.测试

 

1.生成公钥和私钥

  

 

Shell代码  

  1. ssh-keygen -t rsa

  
   默认在 ~/.ssh目录生成稀只文本:
    id_rsa      :私钥
    id_rsa.pub  :公钥

2.导入公钥到说明文件,更改权限

    2.1 导入本机

Shell代码  

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

 

    2.2 导入要无密码登录的服务器

        首先将公钥复制到服务器

Shell代码  

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

        然后,将公钥导入到说明文件,这等同步的操作以服务器上进行

Shell代码  

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

 

    2.3 在服务器上转权限

      

Shell代码  

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

   

3.测试

    ssh host,第一糟糕登录或得yes确认,之后就可直接登录了。

 

 

1、集群部署介绍

1.1 Hadoop简介

Hadoop是Apache软件基金会旗下之一个开源分布式计算平台。以Hadoop分布式文件系统HDFS(Hadoop
Distributed Filesystem)和MapReduce(Google
MapReduce的开源实现)为基本之Hadoop为用户提供了系统底层细节透明底分布式基础架构。

于Hadoop的集群来讲,可以分成两老大类角色:Master和Salve。一个HDFS集群是由于一个NameNode和多独DataNode组成的。其中NameNode作为主服务器,管理文件系统的命名空间以及客户端对文件系统的访操作;集众多中之DataNode管理存储的数。MapReduce框架是由一个独门运行在主节点上之JobTracker和运作在每个从节点的TaskTracker共同组成的。主节点负责调度构成一个作业的兼具任
务,这些职责分布于不同的自节点上。主节点监控她的尽情况,并且更履行前的败诉任务;从节点才负责由主节点指派的任务。当一个Job被交付时,JobTracker接收到提交作业和配备信息后,就见面拿布信息相当分发给由节点,同时调度任务并监控TaskTracker的尽。

于地方的介绍好看看,HDFS和MapReduce共同构成了Hadoop分布式系统体系布局的核心。HDFS在集群达贯彻分布式文件系统,MapReduce在集群达贯彻了分布式计算和任务处理。HDFS在MapReduce任务处理过程中提供了文件操作与贮等支持,MapReduce在HDFS的基本功及贯彻了职责的散发、跟踪、执行等工作,并募集结果,二者相互作用,完成了Hadoop分布式集群的重要职责。

1.2 环境说明

本身的环境是于虚拟机中安排的,Hadoop集群中包括4单节点:1独Master,2个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的角色,负责总管分布式数据以及分解任务之履;3独Salve机器配置DataNode 和TaskTracker的角色,负责分布式数据存储和任务的履行。其实当还当来1单Master机器,用来作为备用,以预防Master服务器宕机,还有一个备用马上启用。后续经验积累一定等级后上上平等台备用Master机器(可经过安排文件修改备用机器数)。

 
  注意:由于hadoop要求具有机器上hadoop的布目录结构要求一律(因为以起步时照同主节点相同之目录启动其它任务节点),并且还产生一个一律的用户名账户。参考各种文档上说之是负有机器都建立一个hadoop用户,使用这账户来促成无密码验证。这里以方便,分别以三高机械上都再也建立一个hadoop用户。

1.3 环境布置

Hadoop集群要按照1.2小节表格所示进行布局,下面介绍如何改机器名称和布局hosts文件,以方便使用。

瞩目:我的虚拟机都以NAT方式连接网络,IP地址是自行分配的,所以这里就是应用机动分配的IP地址而不特地修改也某些IP地址。

(1)修改时机械名称

要是我们发现我们的机的主机名不是我们想只要的。

1)在Ubuntu下修改机器名称

修改文件/etc/hostname里的价值即可,修改成功后为此hostname命令查看时主机名是否设置成。

betway体育 1

   
  另外为能是分析主机名,最好与否改/etc/hosts文件里对应之主机名 
   
  betway体育 2

2)在Fedora下修改机器名称

经过对”/etc/sysconfig/network”文件修改中”HOSTNAME”后面的价,改成为我们确定之名目。

一声令下:vi /etc/sysconfig/network,修改如下: 
 
  betway体育 3 
     
  betway体育 4

    同样以能够科学解析主机名,最好啊改/etc/hosts文件里对应的主机名。

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

“/etc/hosts”这个文件是故来配置主机将因此的DNS服务器信息,是记载LAN内连续的各国主机的附和[HostName  IP]就此底。当用户以开展网络连接时,首先查找该公文,寻找针对性诺主机名对应的IP地址。

咱只要测试两令机械里知否连通,一般用”ping 机器的IP”,如果想就此”ping 机器的主机名”发现搜索不显现该名的机(这也就是是干什么当修改主机名的而最好修改该文件中对应的主机名),解决的办法就是是修改”/etc/hosts”这个文件,通过把LAN内之诸主机的IP地址与HostName的一一对准承诺写副是文件的当儿,就可以化解问题。

像:机器也”Master.Hadoop:192.168.1.141″对机器也”Salve1.Hadoop:192.168.1.142″用命令”ping”记性连接测试。测试结果如下: 
 
  betway体育 5

从今达到图被的价,直接指向IP地址进行测试,能够ping通,但是本着主机名进行测试,发现无ping通,提示”unknown
host——未知主机”,这时查看”Master.Hadoop”的”/etc/hosts”文件内容会意识中间没有”192.168.1.142  Slave1.Hadoop”内容,故而本机器是无力回天对机器的主机名吧”Slave1.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,添加结果如下: 
betway体育 6

今日咱们以拓展对机械也”Slave1.Hadoop”的主机名进行ping通测试,看是不是能测试成功。

betway体育 7

自打达成图备受我们都能够为此主机名展开ping通了,说明我们刚才添加之始末,在局域网内会开展DNS解析了,那么现在结余的事儿就是于其余的Slave机器上开展相同之配备。然后进行测试。

1.4 所需要软件

(1)JDK软件

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

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

(2)Hadoop软件

    下载地址:http://hadoop.apache.org/common/releases.html

    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

2.1 SSH基本原理和用法

1)SSH基本原理

    SSH之所以能够确保安全,原因在她应用了公钥加密。过程如下:

(1)远程主机收到用户的记名要,把自己的公钥发给用户。

(2)用户以是公钥,将登录密码加密后,发送回来。

(3)远程主机用好之私钥,解密登录密码,如果密码是,就同意用户登录。

2)SSH基本用法

    假如用户称吧java,登录远程主机名吧linux,如下命令即可:

    $ ssh java@linux

 
  SSH的默认端口是22,也就是说,你的报到要会送上远程主机的22端口。使用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

2.2 配置Master无密码登录所有Salve

1)SSH无密码原理

Master(NameNode |
JobTracker)作为客户端,要促成无密码公钥认证,连接受服务器Salve(DataNode
|
Tasktracker)上经常,需要在Master上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到有的Slave上。当Master通过SSH连接Salve时,Salve就见面生成一个即兴数并据此Master的公钥对擅自数进行加密,并发送给Master。Master收到加密数之后再次用私钥解密,并拿解密数转头传给Slave,Slave确认解密数无误后便允许Master进行连续了。这就是一个公钥认证过程,其间不需要用户手工输入密码。

2)Master机器上设置无密码登录

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

于Master节点上实施以下命令:

ssh-keygen –t rsa –P ”

运作后了解该保存路径时直回车采用默认路径。生成的密钥对:id_rsa(私钥)和id_rsa.pub(公钥),默认存储在”/home/用户名/.ssh”目录下。 
    betway体育 8

查阅”/home/用户名/”下是否来”.ssh”文件夹,且”.ssh”文件下是否发生零星只正生的无密码密钥对。

 
  betway体育 9

b. 就以Master节点上开如下配置,把id_rsa.pub追加到授权的key里面去。

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

betway体育 10

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

chmod 600 authorized_keys

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

反省下几乎推行前面”#”注释是否取消掉:

RSAAuthentication yes # 启用 RSA 认证

PubkeyAuthentication yes # 启用公钥私钥配对验证方式

AuthorizedKeysFile  %h/.ssh/authorized_keys # 公钥文件路径 
 
  betway体育 11

安完事后记得重开SSH服务,才会而刚刚设置中。

 
  betway体育 12 
 

退root登录,使用普通用户验证是否设置成。

betway体育 13 

于达图被摸清无密码登录本级已经安装完,接下的事儿是把公钥复制所

有的Slave机器上。

    注意:有时候在测试时可能会见油然而生谬误: Agent admitted failure to sign
using the key.解决办法是:ssh-add  ~/.ssh/id_rsa ,如下所示:

  betway体育 14

 
  d.使用ssh-copy-id命令将公钥传送至长途主机上(这里因为Slave1.Hadoop乎条例)。

betway体育 15

e. 测试是否无密码登录其他机器成功。

betway体育 16

至这结束,我们由此5步已经实现了于”Master.Hadoop”到”Slave1.Hadoop”SSH无密码登录,下面就再上面的步调把剩下的点滴宝(Slave2.Hadoop和Slave3.Hadoop)Slave服务器进行配置。这样,我们尽管完了了”配置Master无密码登录所有的Slave服务器”。

连下去配置有Slave无密码登录Master,其同Master无密码登录所有Slave原理同,就是把Slave的公钥追加到Master的”.ssh”文件夹下之”authorized_keys”中,记得是增多(>>)。

专注:期间可能会见产出有问题如下:

(1)如果在ssh连接时起谬误“ssh:connect to host port 22: Connection
refused”,如下图所示: 
betway体育 17

虽然可能是为远程登录的那尊机器没有装ssh服务或者设置了从未拉开ssh服务,下面到Slave3.Hadoop主机进行测试: 
betway体育 18

为一劳永逸,设置系统启航时开服务:#
systemctl enable sshd.service 
betway体育 19

(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

betway体育 20

3、Java环境设置

有着的机及且设安装JDK,现在即令优先在Master服务器安装,然后另外服务器按照步骤重复进行即可。安装JDK以及配备环境变量,需要盖”root”的地位展开。

3.1 安装JDK

第一用root身份登录”Master.Hadoop”后当”/usr”下创造”java”文件夹,再用”jdk-7u25-linux-i586.tar.gz”复制到”/usr/java”文件夹着,然后解压即可。查看”/usr/java”下面会意识差不多了一个称为也”jdk1.7.0_25″文件夹,说明我们的JDK安装了,删除”jdk-7u25-linux-i586.tar.gz”文件,进入下一个”配置环境变量”环节。

3.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

如上两栽意思同样,那么我们即便分选第1栽来进行安装。

betway体育 21

(2)使配置生效

保留并脱离,执行下发号施令使其配备立即生效。

source /etc/profile 或 . /etc/profile

betway体育 22

3.3 验证安装成功

配备了并生效后,用底发号施令判断是否中标。

java -version

betway体育 23

自打高达图备受摸清,我们规定JDK已经装成功。

3.4 安装剩余机器

这会儿用普通用户hadoop通过scp命令格式把”/usr/java/”文件复制到外Slave上面,剩下的事儿就算是以任何的Slave服务器上仍上图的手续配置环境变量和测试是否安装成功,这里坐Slave1.Master为例:

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

留神:有的机器库函数版本较逊色,可能安装不了大版本的JDK,比如小Redhat9,此时匪可以选于逊色版本的JDK进行设置,因为具备集众多被的JDK版本要一致(经过测试),有少数种办法而化解:一凡舍本求末该机器,选用外一样令能作该版的JDK的电话机;二凡选项没有版本的JDK,在所有机器及重新安装。

4、Hadoop集群安装

不无的机械上还如设置hadoop,现在就算优先以Master服务器安装,然后另外服务器按照步骤重复进行即可。安装和配置hadoop需要坐”root”的身份进行。

4.1 安装hadoop

率先用root用户登录”Master.Hadoop”机器,将下载的”hadoop-1.1.2.tar.gz”复制到/usr目录下。然后进”/usr”目录下,用底发号施令将”hadoop-1.1.2.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

betway体育 24

4.2 配置hadoop

(1)配置hadoop-env.sh

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

当文件中改下面内容:

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

betway体育 25

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才行,否则会出错。

betway体育 26

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

修改Hadoop中HDFS的部署,配置的备份方式默认为3。

<configuration>

    <property>

        <name>dfs.replication</name>

        <value>1</value>

     
  (备注:replication 是数据副本数量,默认为3,salve少于3台就见面报错)

    </property>

<configuration>

 betway体育 27

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

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

<configuration>

    <property>

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

        <value>http://192.168.1.141:9001&lt;/value&gt;

    </property>

</configuration>

betway体育 28

(5)配置masters文件

出个别栽方案:

    (1)第一种

    修改localhost为Master.Hadoop

    (2)第二种

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

啊保证起见,启用第二种植,因为万一忘记配置”/etc/hosts”局域网的DNS失效,这样虽会出现意外的荒唐,但是如果IP配对,网络通畅,就能经过IP找到呼应主机。

betway体育 29

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

    有半点种植方案:

    (1)第一种

    去丢”localhost”,每行添加一个主机名,把结余的Slave主机名都填上。

    例如:添加样式如下:

Slave1.Hadoop

Slave2.Hadoop

    (2)第二种

    去丢”localhost”,加入集众多被有所Slave机器的IP,也是每行一个。

    例如:添加花样如下

192.168.1.142

192.168.1.137

缘由以及增长”masters”文件一律,选择第二栽方式。

betway体育 30

兹当Master机器上之Hadoop配置就结束了,剩下的就是是布Slave机器上的Hadoop。

极端简便易行的法子是以 Master上配备好的hadoop所当文书夹”/usr/hadoop”复制到所有的Slave的”/usr”目录下(实际上Slave机器上的slavers文件是匪必要之,
复制了啊没有问题)。用脚发号施令格式进行。(备注:此时用户可以吗普通用户也得吧root) 
 

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

譬如:从”Master.Hadoop”到”Slave1.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的密码。

betway体育 31

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

betway体育 32 

自达到图备受知情,hadoop文件夹确实就复制了,但是我们发现hadoop权限是root,所以我们今天若被”Slave1.Hadoop”服务器上的用户hadoop添加对”/usr/hadoop”读权限。

坐root用户登录”Slave1.Hadoop”,执行下发号施令。

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

继而以”Slave1
.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。

4.3 启动和说明

(1)格式化HDFS文件系统

于”Master.Hadoop”上采用普通用户hadoop进行操作。(备注:只待一不善,下次起动不再用格式化,只待start-all.sh)

hadoop namenode -format

betway体育 33 

从今高达图被领略我们曾经成格式化了,但是美着欠缺就是出现了一个告诫,从网上得知这个警示并无影响hadoop执行,但是呢有道缓解,详情看后的”常见问题FAQ”。

(2)启动hadoop

在开行前关闭集众多被持有机器的防火墙,不然会现出datanode开后又自行关闭。使用下发号施令启动。

start-all.sh

betway体育 34

可由此以下启动日志看出,首先启动namenode 接着启动datanode1,datanode2,…,然后启动secondarynamenode。再开行jobtracker,然后启动tasktracker1,tasktracker2,…。

起步 hadoop成功后,在 Master 中之 tmp 文件夹中生成了 dfs 文件夹,在Slave 中之 tmp 文件夹着全都大成了 dfs 文件夹和 mapred 文件夹。

(3)验证hadoop

(1)验证办法同样:用”jps”命令

每当Master上就此 java自带的稍器jps查看过程。

betway体育 35

在Slave2上就此jps查看过程。

betway体育 36

若以查阅Slave机器中发觉”DataNode”和”TaskTracker”没有起来时,先翻转日志的,如果是”namespaceID”不等同问题,采用”常见问题FAQ6.2″进行缓解,如果是”No
route to host”问题,采用”常见问题FAQ6.3″进行解决。

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

于是这个令可以翻Hadoop集群的状态。

betway体育 37

 

 

 

4.4 网页查看集群

(1)访问”http://192.168.1.141:50030″

betway体育 38

(2)访问”http://192.168.1.142:50070″

betway体育 39

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环境变量。

缓解方案一:编辑”/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会重新创设一个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

3)删除”/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/VERSION”文件中,前面蓝色的可能基于实际状况变化,但后对红色一般是无更换的。

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

betway体育 40

自家建议下第二种,这样方便快捷,而且还能够预防误删。

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

解决方案是:关闭防火墙

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.

解决方案是:

1)关闭防火墙

2)禁用selinux

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

5.5 安全模式导致的错误

并发如下错误:

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

于分布式文件系统启动的时刻,开始之当儿会产生平安模式,当分布式文件系统处于安全模式的景况下,文件系统中的始末无允修改为非容许删除,直到安模式了。安全模式要是为着系统启动的时段检查各个DataNode上数据块的实惠,同时根据政策必要之复制或者去除部分数据块。运行期通过命令也可入安全模式。在推行进程遭到,系统启动的时节去窜和去文件也会见出平安模式不允许修改的失误提示,只待等待一会儿即可。

釜底抽薪方案是:关闭安全模式

hadoop dfsadmin -safemode leave

5.6 解决Exceeded MAX_FAILED_UNIQUE_FETCHES

起谬误如下:

Shuffle Error: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-out

程序中用开拓多个公文,进行分析,系统一般默认数量是1024,(用ulimit
-a可以看到)对于正规下是够了,但是于程序来讲,就极少了。

釜底抽薪方案是:修改2个文本。

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

5.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的太老内存以应为总内存大小的一半,我们下的8G内存,所以设置为4096m,这同样值可能还不是极其美的价值。

再次多Hadoop相关消息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

 

相关文章

标签:,

发表评论

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

网站地图xml地图