Win10上利用子系统搭建hadoop本地开发条件和大问题迎刃而解。Centos7增建筑zookeeper集群。

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宿主机的名,如果您从不曾转了亮的应是千篇一律失误字符,为了好开发,你该修改主机名。通过设置->系统->关于->重命名这台电脑更改主机名。

  • 设置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翻开是否非需密码登录,若出现问题,请查看输出及屏幕的日志。

将她修改成你想只要之讳便足以,比如: niukou.com

第三步:安装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中盖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

下一场修改/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

运用第一种植方案,有种植不好处就是原本集群betway体育达的重要性数据都没了。假如说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

 

相关文章

发表评论

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

*
*
Website