linux下hadoop2.x完全分布式配置

hadoop完全分布式配置。





过程大致如下:
1.创建新用户并添加到sudoers
2.更改hosts,hostname文件
3.安装jdk,并配置环境变量
4.设置ssh无密码登录
5.hadoop安装,设置文件


1.创建新用户

$ adduser hadoop

$ sudo vi /etc/sudoers

# User privilege specification
root ALL=(ALL:ALL) ALL
下面添加
hadoop   ALL=(ALL:ALL)  ALL
保存退出。
切换到hadoop用户
$ su hadoop


2.更改hosts文件。

3台机器
192.168.1.101 master
192.168.1.102 slave1
192.168.1.103 slave2

$ sudo vi /etc/hosts
将上面的内容填写到末尾。

这里可以该hostname文件,也可以不改。
如果要改,那么就先该hostname,在改hosts,将里面原来的主机名改为新的名字。
改hostname可以参照下面。
ubuntu修改hostname


a.临时修改
$hostname newhostname
重启之后又变回原来的样子了

b.永久修改
第一步:sudo vi /etc/hostname
这一行,把它右边的旧主机名改成你的新主机名即可。重启网络
sudo /etc/init.d/networking restart
或则
sudo reboot
重新启动计算机生效


3.安装jdk,并配置环境变量


参照我的博客
http://blog.csdn.net/u012480384/article/details/40456187


4.设置ssh无密码登录

$ ssh-keygen
$ ssh-copy-id hadoop@slave1
$ ssh slave1

这样可以登录到slave1机器上。

在slave1用类似的设置无密码登录到master。
对slave2使用一样的设置。

最后3台机器间都可以互相无密码登录。


5.hadoop安装,设置文件

hadoop集群中每个机器上面的配置基本相同,所以我们先在master上面进行配置部署,然后再复制到其他节点。所以这里的安装过程相当于在每台机器上面都要执行。
【注意】:master和slaves安装的hadoop路径要完全一样,用户和组也要完全一致.

先下载hadoop编译好的压缩包。
http://hadoop.apache.org/releases.html
找一个合适的下载,注意,带src的压缩包是源码。有兴趣的可以编译源码。我博客里有编译方法。
http://blog.csdn.net/u012480384/article/details/39697267

进入到下载的目录,解压。
$ sudo tar zxvf hadoop-2.4.1.tar.gz  -C /usr/local/

$ sudo mv /usr/local/hadoop-2.4.1  hadoop#该文件夹的名字,改成hadoop


ssh的通信一般是: $ ssh username@ip
如果是 $ ssh ip  。假设A机器上的a1用户使用该命令,则会连接B机器上的a1用户。
这个规则使得我们需要一致的用户和用户组。


这里要涉及到的配置文件有7个:
/etc/profile
$HADOOP_DIR/etc/hadoop/hadoop-env.sh
$HADOOP_DIR/etc/hadoop/slaves
$HADOOP_DIR/etc/hadoop/core-site.xml
$HADOOP_DIR/etc/hadoop/hdfs-site.xml
$HADOOP_DIR/etc/hadoop/mapred-site.xml
$HADOOP_DIR/etc/hadoop/yarn-site.xml


配置文件1:/etc/profile
这里设置hadoop的环境变量。


$ sudo gedit /etc/profile
将下面的添加到文件最后

#hadoop
export HADOOP=/usr/local/hadoop
export PATH=$PATH:$HADOOP/bin

在终端中,$ source /etc/profile使之生效。
在输入
$ hadoop version
查看是否显示版本。显示则成功。


配置文件2:hadoop-env.sh
修改JAVA_HOME值(export JAVA_HOME=/usr/lib/jvm/java)
这里是你自己的java路径,如果按在其他路径上,相应修改即可。

配置文件3:slaves (这个文件里面保存所有slave节点)

打开slaves文件,如果没有修改过的话,里面就一行,localhost。
将它改成需要成为node节点的机器。
master
slave1
slave2
保存退出。

配置文件4:core-site.xml

<configuration>

  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://master:9000</value>
  </property>


  <property>
    <name>hadoop.tmp.dir</name>
    <value>/usr/local/hadoop/tmp</value>
    <description>A base for other temporary directories.</description>
  </property>

</configuration>

配置文件5:hdfs-site.xml
<configuration> 

  <property>
    <name>dfs.namenode.name.dir</name>
    <value>/usr/local/hadoop/name</value>
  </property>

  <property>
    <name>dfs.datanode.data.dir</name>
    <value>/usr/local/hadoop/data</value>
  </property>

  <property>
    <name>dfs.replication</name>
    <value>3</value>
  </property>

</configuration> 

配置文件6:mapred-site.xml
<configuration>    

  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>


  <property>
    <name>mapreduce.jobhistory.address</name>
    <value>master:10020</value>
  </property>
  <property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>master:19888</value>
  </property>

</configuration> 


配置文件7:yarn-site.xml

<configuration>


<!-- Site specific YARN configuration properties -->
 
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    <description>shuffle service that needs to be set for Map Reduce to run </description>
  </property>


</configuration>

【注意】:而且所有的配置文件<name>和<value>节点处不要有空格,否则会报错!


复制到其他节点

上面配置完毕,我们基本上完成了90%了剩下就是复制。我们可以把整个hadoop复制过去:使用如下命令:
$ sudo scp -r /usr/local/hadoop hadoop@slave1:~/


然后,移动到/usr/local下
登录slave1
$ ssh slave1
$ sudo mv ~/hadoop /usr/local


后面我们会经常遇到问题,经常修改配置文件,所以修改完一个配置文件后,其他节点都需要修改,这里附上脚本操作方便:
一、节点之间传递数据:第一步:vi scp.sh第二步:把下面内容放到里面(记得修改下面红字部分,改成自己的)
#!/bin/bash
#slave1
scp -r /usr/local/hadoop/etc/ hadoop@slave1:~/                    
#slave2
scp -r /usr/local/hadoop/etc/ hadoop@slave2:~/


第三步:保存scp.sh第四步:bash scp.sh


执行二、移动文件夹:可以自己写了。
上面将hadoop目录下的/etc文件夹全部复制到其他机器hadoop用户的主目录里。
在每个机器上将/etc目录跟新。(删除原来/hadoop下的etc目录,将新的复制过去)


启动验证

(1)启动hadoop
格式化namenode
$ hdfs namenode -format
$ cd $HADOOP #进入hadoop目录


启动hdfs:
$ sbin/start-dfs.sh

此时在master上的java进程有:
namenode
secondarynamenode


slave上有:
datanode

在对应终端里输入“jps”来查看。

启动yarn
$ sbin/start-yarn.sh

master上有:
namenode
secondarynamenode
resourcemanager

slave上有:
datanode
nodemanager

此时hadoop集群已全部配置完成!!!


(2)web查看页面
a、可以通过登录Web控制台,查看HDFS集群状态,访问如下地址:
http://master:50070/
这里查看hdfs集群状态。


来源:
组件        :HDFS
节点        :NameNode
默认端口:50070
配置        :dfs.namenode.http-address
用途说明:http服务的端口

b、ResourceManager运行在主节点master上,可以Web控制台查看状态
http://master:8088/
或者 http://ip地址:8088/
这里的master会通过你刚才设置的hosts文件映射成对应的ip地址。
如果不是在集群的机器上想访问,可以通过ip地址的形式来访问。或者添加对应的ip地址到机器的hosts文件里。
win7 进入下面路径:
C:\Windows\System32\drivers\etc
里面有hosts文件,对应添加一下就OK了。下面遇到同样的问题,可以参照这里。


这里查看job运行状态。

这里介绍8088的来源:
/usr/local/hadoop/share/hadoop/hadoop-yarn/hadoop-yarn-common/yarn-default.xml
中的默认设置。
  <property>
    <description>The http address of the RM web application.</description>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>${yarn.resourcemanager.hostname}:8088</value>
  </property>


可以通过前面提到的yarn-site.xml中来更改设置
<property>
         <name>yarn.resourcemanager.webapp.address</name>
         <value>master:8088</value>
</property>

c、NodeManager运行在从节点上,可以通过Web控制台查看对应节点的资源状态,例如节点slave1:


http://slave1:8042/
/usr/local/hadoop/share/hadoop/hadoop-yarn/hadoop-yarn-common/yarn-default.xml
中的默认设置。


  <property>
    <description>NM Webapp address.</description>
    <name>yarn.nodemanager.webapp.address</name>
    <value>${yarn.nodemanager.hostname}:8042</value>
  </property>

来源:
组件        :YARN
节点        :NodeManager
默认端口:8042
配置        :yarn.nodemanager.webapp.address        
用途说明:http服务端口

d、管理JobHistory Server
启动可以JobHistory Server,能够通过Web控制台查看集群计算的任务的信息,执行如下命令:
$ cd $HADOOP #进入hadoop目录
$ sbin/mr-jobhistory-daemon.sh start historyserver
默认使用19888端口。
通过访问http://master:19888/


终止JobHistory Server,执行如下命令:
$ sbin/mr-jobhistory-daemon.sh stop historyserver


其他:
hadoop2.x常用端口、定义方法及默认端口、hadoop1.X端口对比 
http://www.aboutyun.com/thread-7513-1-1.html
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值