Hadoop集群安装

背景介绍

最近研究大数据,hadoop属于大数据中很基础的组件,如果需要深入了解,还是得先知道怎么安装部署,方便后续查阅。本操作步骤详细记录hadoop分布式集群环境的搭建过程。

实验环境

  • 实验环境:Win7下vmware虚拟机
  • 操作系统:CentOS 6.5 x64
  • JDK:jdk-8u161-linux-x64
  • Hadoop:hadoop-2.7.5

系统规划

准备3个节点,一个master节点,两个slave节点。
Master节点服务角色:namenode、SecondNameNode、ResourceManager
Slave节点服务角色:datanode、NodeManager

  • 192.168.86.143;master.itclj.hadoop;1核:2G
  • 192.168.86.144;slave1.itclj.hadoop;1核;1G
  • 192.168.86.145;slave2.itclj.hadoop;1核;1G

准备工作:系统环境搭建

以下操作均用root用户操作。
预装系统工具软件vim、lrzsz(所有节点)

yum install vim
yum install lrzsz

1.网络配置(所有节点)

a)修改hostname
vim /etc/sysconfig/network

这里写图片描述

重启操作系统生效

reboot

这里写图片描述

b)配置hosts
vim /etc/hosts

添加ip和主机名映射

192.168.86.143 master.itclj.hadoop
192.168.86.144 slave1.itclj.hadoop
192.168.86.145 slave2.itclj.hadoop

这里写图片描述

2. 关闭防火墙和SELinux(所有节点)

注意: 需要在所有的节点上执行,因为涉及到的端口太多了,临时关闭防火墙是为了安装起来更方便,安装完毕后可以根据需要设置防火墙策略,保证集群安全。

关闭防火墙:

service iptables stop (临时关闭)  
chkconfig iptables off (重启后生效)

关闭SELINUX:

setenforce 0 (临时生效)  
修改 /etc/selinux/config 下的 SELINUX=disabled (重启后永久生效)

3. 安装JDK(所有节点)

一般情况下,我们都要将linux自带的OPENJDK卸载掉,然后安装SUN的JDK。
由于我的CentOS安装的是mini版本的,没有自带jdk所以可以直接安装。
从Oracle官网下载JDK安装包:http://download.oracle.com/otn-pub/java/jdk/8u161- b12/2f38c3b165be4555a1fa6e98c45e0808/jdk-8u161-linux-x64.tar.gz?AuthParam=1517808422_bdd9ddc0a30c84fe1961a9a2f6f1eb63
我下载的是JDK8的最新版本:jdk-8u161-linux-x64.tar.gz
下面是JDK的配置步骤。
在/usr目录下建立目录/java,

mkdir /usr/java

把JDK安装包上传到/usr/java目录,解压JDK安装包,

tar -zxvf jdk-8u161-linux-x64.tar.gz

配置环境变量

vim /etc/profile

/etc/profile中添加下面配置项

JAVA_HOME=/usr/java/jdk1.8.0_161
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

这里写图片描述

刷新环境变量使配置立即生效

source /etc/profile

检查JDK是否配置成功

java -version

这里写图片描述

4. SSH免密登录(所有节点)

切换到hadoop用户并进入该账户根目录。

su Hadoop
cd ~

这里写图片描述

主节点上执行ssh-keygen -t rsa一路回车,生成无密码的密钥对。
将公钥添加到认证文件中:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys,并设置authorized_keys的访问权限:chmod 600 ~/.ssh/authorized_keys。

这里写图片描述

在两个slave节点上执行ssh-keygen -t rsa一路回车,生成无密码的密钥对,并生成.ssh目录,用于认证文件authorized_keys的同步。
scp文件到所有slave节点:

scp ~/.ssh/authorized_keys hadoop@slave1.itclj.hadoop:~/.ssh/
scp ~/.ssh/authorized_keys hadoop@slave2.itclj.hadoop:~/.ssh/

Hadoop配置

1. Hadoop目录准备(所有节点)

mkdir /home/hadoop/data
mkdir /home/hadoop/data/namenode
mkdir /home/hadoop/data/datanode
mkdir /home/hadoop/data/tmp
mkdir /home/hadoop/logs
mkdir /home/hadoop/app
  • /home/hadoop/data/namenode:用于存储hadoop的namenode角色数据信息。
  • /home/hadoop/data/datanode:用于存储hadoop的datanode角色数据信息。
  • /home/hadoop/data/tmp:用于存储hadoop的临时数据。
  • /home/hadoop/logs:用于存储hadoop的日志记录。
  • /home/hadoop/app:用于存储hadoop程序包。

2. Hadoop程序配置(主节点)

2.1 把程序包上传到/home/hadoop/app并解压。
rz  //上传程序包
tar -zxvf hadoop-2.7.5.tar.gz
2.2配置hadoop的JDK

使用hadoop前需要在hadoop-env.sh、yarn-env.sh配置JAVA_HOME。

hadoop-env.sh中配置JAVA_HOME
这个文件里面原来配置得有JAVA_HOME,需要把${JAVA_HOME}换为jdk安装的绝对路径。

export JAVA_HOME=/usr/java/jdk1.8.0_161

这里写图片描述

yarn-env.sh中添加配置JAVA_HOME环境变量

export JAVA_HOME=/usr/java/jdk1.8.0_161

这里写图片描述

2.3配置hadoop环境变量

此节用root用户操作

vim /etc/profile

/etc/profile中添加下面配置项

HADOOP_HOME=/home/hadoop/app/hadoop-2.7.5
PATH=$PATH:$HADOOP_HOME/bin

这里写图片描述

刷新环境变量使配置立即生效

source /etc/profile

这里写图片描述

2.4 修改配置

此节在hadoop账号下操作
配置在/home/hadoop/app/hadoop-2.7.5/etc/hadoop目录
需要修改的配置文件:

  • core-site.xml
  • hdfs-site.xml
  • slaves
  • mapred-site.xml
  • yarn-site.xml

core-site.xml

<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://master.itclj.hadoop:9000</value>
  </property>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>file:/home/hadoop/data/tmp</value>
  </property>
  <property>
    <name>io.file.buffer.size</name>
    <value>131702</value>
  </property>
</configuration>

hdfs-site.xml

<configuration>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master.itclj.hadoop:50090</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/home/hadoop/data/namenode</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/home/hadoop/data/datanode</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
 </configuration>

Slaves
删除slaves配置中原来的localhost配置项,因为master节点我们不作为datanode节点,然后添加下面2个datanode节点。

slave1.itclj.hadoop
slave2.itclj.hadoop

mapred-site.xml
该配置默认文件名为mapred-site.xml.template,需要对该文件进行重命名。

mv mapred-site.xml.template mapred-site.xml

添加如下配置

<configuration>
    <property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
    </property>
    <property>
      <name>mapreduce.jobhistory.address</name>
      <value>master.itclj.hadoop:10020</value>
    </property>
    <property>
      <name>mapreduce.jobhistory.webapp.address</name>
      <value>master.itclj.hadoop:19888</value>
    </property>
</configuration>

yarn-site.xml

<configuration>
    <property>
      <name>yarn.resourcemanager.hostname</name>
      <value>master.itclj.hadoop</value>
    </property>
    <property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value>
    </property>
</configuration>

把master配置好的hadoop同步到2个slave节点。

scp -r /home/hadoop/app/hadoop-2.7.5 hadoop@slave1.itclj.hadoop:/home/hadoop/app
scp -r /home/hadoop/app/hadoop-2.7.5 hadoop@slave2.itclj.hadoop:/home/hadoop/app

初始化namenode

hdfs namenode -format

这里写图片描述

在master节点运行start-all.sh启动hadoop集群。

这里写图片描述

Master 节点jps查看

这里写图片描述

Slave节点jps查看
这里写图片描述

在浏览器中输入如下地址,便可查看hadoop的运行状态。
http://192.168.86.143:8088/
http://192.168.86.143:50070/

这里写图片描述

这里写图片描述

stop-all.sh停止集群

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值