hadoop的分布式部署

本安装为分布式安装,一主节点,一从节点,安装环境为centos6系统。hadoop的安装使用phq用户,未新建hadoop用户安装


1 配置时钟同步

(1)自动同步时间
  • 该项需要在主节点和从节点配置。使用linux命令为:
[root@localhost phq]# crontab -e
  • 该命令是vi编辑命令,按i进入插入模式,键入下面代码:
0 1 * * * /usr/sbin/ntpdate cn.pool.ntp.org
(2) 手动同步时间
  • 直接在终端中运行以下命令:
[root@localhost phq]# /usr/sbin/ntpdate cn.pool.ntp.org

2 配置主机名

  • 使用vi编辑主机名,将主节点的主机名改为master,从节点的主机名改为slave
[root@localhost phq]# vim /etc/sysconfig/network
修改如下:
NETWORKING=yes
HOSTNAME=master
NTPSERVERARGS=iburst

确认修改命令生效

[root@localhost phq]# hostname master
  • 从节点用相同的操作修改主机名

3 配置网络

  • 根据实际,主从节点配置静态ip。最新vmware虚拟机已默认使用静态ip,不需要配置。

4 关闭防火墙和selinux

  • [x] 关闭主从节点机器的防火墙和selinux
(1) 关闭防火墙
  • 在终端中执行以下命令关闭防火墙,重启后生效
[root@master phq]# chkconfig iptables off
(2) 关闭selinux
  • 在终端中编辑/etc/selinux/config,找到SELINUX 行修改成为:SELINUX=disabled
[root@master phq]# vim /etc/selinux/config


# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

5 配置hosts

  • 在主从节点机器上编辑主机名列表
[root@master phq]# vim /etc/hosts
添加如下内容:
192.168.231.131 master
192.168.231.132 slave

6 安装jdk

  • 主从节点都安装jdk,使用rpm方式安装。
[root@master software]# rpm -ivh jdk-8u91-linux-x64.rpm 
  • 配置环境变量
[root@master ~]# vim  /etc/profile
在后面加入:
#set java environment
export JAVA_HOME=/usr/java/jdk1.8.0_91
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH

在普通用户下配置

[phq@master ~]$ vim .bash_profile
在后面加入:
#set java environment
export JAVA_HOME=/usr/java/jdk1.8.0_91
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH

7 配置免密钥登录

  • 该部分的操作在phq用户下操作。
(1) 主节点
  1. 在终端生成密钥,命令如下(一路按回车生成密钥):
[phq@master ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/phq/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/phq/.ssh/id_rsa.
Your public key has been saved in /home/phq/.ssh/id_rsa.pub.
The key fingerprint is:
18:66:c2:b9:3e:88:b1:f9:d5:c5:09:e3:63:54:9a:ce phq@master
The key's randomart image is:
+--[ RSA 2048]----+
|        .        |
|   . . +         |
|    + X          |
|     X * .       |
|.   . E S        |
| = o o o         |
|+ . + .          |
| . . .           |
|  .              |
+-----------------+

  1. 复制密钥文件
[phq@master .ssh]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  1. 修改authorized_keys文件权限
[phq@master .ssh]$ chmod 600 ~/.ssh/authorized_keys
  1. 将authorized_keys文件复制到slave节点
[phq@master .ssh]$ scp ~/.ssh/authorized_keys phq@slave:~/
(2) 从节点
  1. 在终端生成密钥,命令如下(一路按回车生成密钥):
[phq@slave ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/phq/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/phq/.ssh/id_rsa.
Your public key has been saved in /home/phq/.ssh/id_rsa.pub.
The key fingerprint is:
eb:6b:5a:9f:fd:5c:29:a8:4c:79:9d:bb:fb:2d:7e:8d phq@slave
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|                 |
|                 |
|        S        |
|         .. o . .|
|        oo o + oo|
|       o+.oo .E.+|
|      .oo+o .*B+.|
+-----------------+

  1. 将主节点的authorized_keys文件移动到.ssh目录:
[phq@slave ~]$ mv authorized_keys ~/.ssh/
  1. 修改authorized_keys文件的权限
[phq@slave .ssh]$ chmod 600 authorized_keys
(3) 验证免密钥登录
  • 在主节点上执行ssh命令,出现如下命令说明配置成功
[phq@master .ssh]$ ssh slave
Last login: Thu Sep  1 16:44:16 2016 from 192.168.231.1

8 hadoop配置部署

  • 每个节点的hadoop配置基本相同,在主节点操作,然后复制到从节点。
(1)解压安装包
[phq@master ~]$ tar -xvf ~/hadoop-2.5.2.tar.gz
(2)配置hadoop-env.sh
  • 该部分只需要配置jdk路径。在文件靠前部分找到
# The java implementation to use.
export JAVA_HOME=${JAVA_HOME}

修改为以下代码:

export JAVA_HOME=/usr/java/jdk1.8.0_91
(3)配置yarn-env.sh
  • 该部分只需要配置jdk路径。在文件靠前部分找到
# some Java parameters
# export JAVA_HOME=/home/y/libexec/jdk1.6.0/

修改为以下代码(去掉#)

# some Java parameters
export JAVA_HOME=/usr/java/jdk1.8.0_91
(4)配置核心组件core-site.xml
  • 使用下面的代码替换core-site.xml的内容
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl"
href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/phq/hadoopdata</value>
</property>
</configuration>
(5)配置系统文件hdfs-site.xml
  • 使用下面的代码替换hdfs-site.xml的内容
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl"
href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
(6)配置yarn-site.xml
  • 使用下面的代码替换yarn-site.xml的内容
<?xml version="1.0"?>
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:18040</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:18030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:18025</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:18141</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:18088</value>
</property>
</configuration>
(7)配置计算框架mapred-site.xml
  1. 复制mapred-site.xml.template文件为mapred-site.xml
[phq@master hadoop]$ cp mapred-site.xml.template mapred-site.xml
  1. 使用以下代码替换mapred-site.xml的内容
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl"
href="configuration.xsl"?>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
(8)在主节点配置slaves文件
  • 使用以下代码替换slaves文件中的内容
slave
(9)复制到从节点
[phq@master ~]$ scp -r hadoop-2.5.2 phq@slave:~/

9 启动集群

(1)配置hadoop启动的环境变量
  • 该部分主从节点都需要配置
[phq@master ~]$ vim .bash_profile
文件末尾追加以下内容:
#HADOOP
export HADOOP_HOME=/home/phq/hadoop-2.5.2
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

然后使文件生效

[phq@master ~]$ source ~/.bash_profile
(2)创建数据目录
  • 该部分主从节点都需要配置
[phq@master ~]$ mkdir /home/phq/hadoopdata
(3)启动hadoop集群
  1. 格式化文件系统
  • 在主节点格式化文件系统
[phq@master hadoop]$ hdfs namenode -format
  • 如果没有出现Exception/Error则表示格式化成功
  1. 启动hadoop
  • 使用start-all.sh启动集群
[phq@master sbin]$ ./start-all.sh
  1. 查看进程
  • [x] 在终端执行jps命令,在主节点可以看到4个进程:
[phq@master sbin]$ jps
4226 ResourceManager
4503 Jps
3898 NameNode
4077 SecondaryNameNode

从节点可以看到3个进程:

[phq@slave ~]$ jps
3267 Jps
3160 NodeManager
3065 DataNode

猜你喜欢

转载自my.oschina.net/u/1188945/blog/748933
今日推荐