在 CentOS 7 中安装 Hadoop 与 HBase

本实验在 VMware 虚拟机中安装 CentOS 系统,搭建 Hadoop 伪分布式模式环境,安装 HBase。实验必要的环境,包括:VMware Workstation Pro 15, CentOS 7.6.1810, Java SE Development Kit 8u201, Hadoop 2.9.2, HBase 1.4.9。

下载地址:

本报告一共分为四个部分

  • 第一部分:在 VMware 中安装 CentOS
  • 第二部分:安装 Java,并配置环境变量
  • 第三部分:安装并配置 Hadoop(伪分布式模式)
  • 第四部分:安装并配置 HBase

第一部分:在 VMware 中安装 CentOS

安装完成后使用 SSH 客户端连接到虚拟机。

由于写此报告时已经安装完成,并没有将过程截图,此部分略。

设置 CentOS 的部分命令(均使用 root 用户执行):

  1. 关闭防火墙:

    1
    2
    $ systemctl stop firewalld.service  #停止firewall
    $ systemctl disable firewalld.service #禁止firewall开机启动
  2. 关闭 selinux:

    1
    $ vim /etc/sysconfig/selinux

    修改 SELINUX=enabledSELINUX=disabled,如图

    关闭selinux

第二部分:安装 Java,并配置环境变量

安装 Java

进入实验目录,这里选择在 /opt/app 目录下,下载 Java SDK 安装包

1
2
$ cd /opt/app
$ wget https://download.oracle.com/otn-pub/java/jdk/8u201-b09/42970487e3af4f5aa5bca3f542482c60/jdk-8u201-linux-x64.tar.gz

使用如下命令解压:tar zxvf ./jdk-8u201-linux-x64.tar.gz,得到目录 /opt/app/jdk1.8.0_201

添加环境变量

修改配置文件,执行 vim /etc/profile,在尾部添加

1
2
export JAVA_HOME="/opt/app/jdk1.8.0_201"
export PATH=$JAVA_HOME/bin:$PATH

如图

添加JAVA环境变量

修改完毕后,执行命令 source /etc/profile 使其生效。

执行命令 java -version,看到下图,即为安装成功

安装Java成功

第三部分:安装并配置 Hadoop(伪分布式模式)

安装 Hadoop

下载 Hadoop 2.9.2 安装包

1
$ wget http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.9.2/hadoop-2.9.2.tar.gz

使用如下命令解压:tar zxvf ./hadoop-2.9.2.tar.gz,得到目录 /opt/app/hadoop-2.9.2

添加环境变量

修改配置文件,执行 vim /etc/profile,在尾部添加

1
2
export HADOOP_HOME="/opt/app/hadoop-2.9.2"
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

如图

添加Hadoop环境变量

修改完毕后,执行 source /etc/profile 使其生效。

执行 hadoop version,看到下图,即为安装成功

安装Hadoop成功

配置 Hadoop

  1. 修改 hadoop-env.sh

    执行命令

    1
    $ vim /opt/app/hadoop-2.9.2/etc/hadoop/hadoop-env.sh

    修改文件中的 JAVA_HOME 参数为 Java 安装路径,结果如图

    配置hadoop-env.sh

  2. 配置 core-site.xml

    执行命令

    1
    $ vim /opt/app/hadoop-2.9.2/etc/hadoop/core-site.xml

    添加如下配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <configuration>
    <property>
    <name>fs.defaultFS</name>
    <value>hdfs://192.168.29.127:8020</value>
    </property>
    <property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/data/tmp</value>
    </property>
    </configuration>

    其中

    fs.defaultFS 参数配置的是 HDFS 的地址,192.168.29.127 为本虚拟机 IP 地址。

    hadoop.tmp.dir 参数配置的是 Hadoop 临时目录,这里设置为 /opt/data/tmp,并手动创建此目录。

    配置core-site.xml

  3. 配置 hdfs-site.xml

    执行命令

    1
    $ vim /opt/app/hadoop-2.9.2/etc/hadoop/hdfs-site.xml

    添加如下配置

    1
    2
    3
    4
    5
    6
    <configuration>
    <property>
    <name>dfs.replication</name>
    <value>1</value>
    </property>
    </configuration>

    dfs.replication 参数配置的是 HDFS 存储时的备份数量,因为这里是伪分布式环境只有一个节点,所以这里设置为 1。

    配置hdfs-site.xml

  4. 格式化 HDFS

    执行命令 hdfs namenode -format,当配置文件中设置的临时目录 /opt/data/tmp 下出现 dfs 文件夹时,说明格式化成功。

    格式化过程

  5. 配置 mapred-site.xml

    默认没有 mapred-site.xml 文件,从 mapred-site.xml.template 模板文件复制生成 mapred-site.xml

    在 Hadoop 目录下执行命令

    1
    $ cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml

    打开 mapred-site.xml,添加如下配置

    1
    2
    3
    4
    5
    6
    <configuration>
    <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    </property>
    </configuration>

    此处设置 mapreduce.framework.name 参数指定 mapreduce 运行在 yarn 框架上。

    配置mapred-site.xml

  6. 配置 yarn-site.xml

    执行命令

    1
    $ vim /opt/app/hadoop-2.9.2/etc/hadoop/yarn-site.xml

    添加如下配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <configuration>
    <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    </property>
    <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>192.168.29.127</value>
    </property>
    </configuration>

    yarn.nodemanager.aux-services 配置了 yarn 的默认混洗方式,选择为 mapreduce 的默认混洗算法。

    yarn.resourcemanager.hostname 指定了 Resourcemanager 运行在哪个节点上,此处为本虚拟机 IP。

    配置yarn-site.xml

设置免密登录

关于免密登录详细的可以查看 Linux 笔记

通常 Hadoop 集群中的各个机器间会相互地通过 SSH 访问,每次访问都输入密码是不现实的,所以要配置免密登录。

这里是伪分布式的,所以只给本机配置就 OK 了。

  1. 在本机上生成公钥

    执行命令

    1
    $ ssh-keygen -t rsa

    一路回车,都设置为默认值,然后再当前用户的目录下的.ssh 目录中会生成公钥文件 id_rsa.pub 和私钥文件 id_rsa

    .ssh

  2. 分发公钥

    1
    $ ssh-copy-id 192.168.29.127 ## 后面填写目的地址,此处是本机IP

至此,开启和关闭 Hadoop 服务都无需输入密码。

启动 Hadoop

在 Hadoop 目录下执行命令 sbin/start-all.sh,开始启动 Hadoop

启动Hadoop

运行命令 jps 可以看到服务均开始运行

jps

进入 http://192.168.27.127:50070 ,可以看到 Namenode 状态为 “active”。

active

Hadoop 指定 SSH 连接的端口号

当因为某些原因自定义 SSH 端口号的时候,使用以下方法告诉 Hadoop 你的 SSH 端口号。

编辑 Hadoop 目录下 /etc/hadoop/hadoop-env.sh,添加

1
export HADOOP_SSH_OPTS="-p xxx" //xxx为自定义的SSH端口号

第四部分:安装并配置 HBase

安装 HBase

下载 HBase 1.4.9 安装包

1
$ wget http://mirrors.tuna.tsinghua.edu.cn/apache/hbase/1.4.9/hbase-1.4.9-bin.tar.gz

使用如下命令解压:tar zxvf hbase-1.4.9-bin.tar.gz,得到目录 /opt/app/hbase-1.4.9

添加环境变量

修改配置文件,执行 vim /etc/profile,在尾部添加

1
2
export HBASE_HOME=/opt/app/hbase-1.4.9
export PATH=$HBASE_HOME/bin:$PATH

如图

添加HBASE环境变量

修改完毕后,执行 source /etc/profile 使其生效。

执行 hbase version,看到下图,即为安装成功

安装HBase成功

配置 HBase

  1. 配置 hbase-site.xml

    执行命令

    1
    $ vim /opt/app/hbase-1.4.9/conf/hbase-site.xml

    添加如下配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <configuration>
    <property>
    <name>hbase.rootdir</name>
    <value>hdfs://192.168.29.127:8020/hbase</value>
    </property>
    <property>
    <name>hbase.tmp.dir</name>
    <value>/opt/data/hbase/tmp</value>
    </property>
    <property>
    <name>hbase.cluster.distributed</name>
    <value>false</value>
    </property>
    </configuration>

    hbase.rootdir 配置的这个目录是 region server 的共享目录,用来持久化 HBase。

    hbase.tmp.dir 指定了 HBase 的临时目录。

    hbase.cluster.distributed 配置 HBase 的运行模式,false 是单机模式,true 是分布式模式。

    Hbase-site

  2. 配置 hbase-env.sh

    执行命令

    1
    $ vim /opt/app/hbase-1.4.9/conf/hbase-env.sh

    添加如下配置

    1
    2
    3
    4
    export JAVA_HOME=/opt/app/jdk1.8.0_201
    export HADOOP_HOME=/opt/app/hadoop-2.9.2
    export HBASE_HOME=/opt/app/hbase-1.4.9
    export HBASE_CLASSPATH=/opt/app/hadoop-2.9.2/etc/hadoop

    Hbase-env

启动 HBase

在启动 HBase 前先启动 Hadoop

在 HBase 目录下执行命令 bin/start-hbase.sh,看到以下状态

start-hbase

查看 Java 进程:jps

jps-hbase

可以看到 HMaster 进程已经启动了。

至此,Hadoop 和 HBase 在 CentOS 7 上的安装已全部完成。

在 CentOS 7 中安装 Hadoop 与 HBase

https://morooi.cn/2019/installhadoop/

作者

SJ Zhou

发布于

2019-03-26

更新于

2021-01-06

许可协议

评论