APP下载

虚拟环境下快速部署Hadoop 集群的探讨

2020-11-26孔瑞平天津工业职业学院

数码世界 2020年5期
关键词:配置文件命令集群

孔瑞平 天津工业职业学院

一、 Hadoop 介绍

1.Hadoop 框架

Hadoop 是Apache 旗下的一个分布式计算的开源平台,它详细的为用户提供了系统底层的细节,是一种分布式的基础架构。Hadoop 框架是采用JAVA 语言来编写的,因此它具有较好的跨平台性,且能够很好的适用于各种廉价的集群中。

分布式文件系统HDFS 和分布式计算系统MR 是Hadoop 框架中两个较为重要的组件,重要应用在于这两个重要组件的分布式处理功能。由于Hadoop 框架具有的明显优点,各个领域中已逐步在采用Hadoop 来处理大量的企业历史数据等,其中以互联网行业为主。目前,国内大量应用Hadoop框架来完成数据处理的主要有淘宝、中国移动、京东、华为和百度等大型网站。

2.Hadoop 核心组件

(1)MapReduce(分布式计算系统):MR 主要负责作业的批处理和分布式的计算,完成了海量数据的大量计算和处理工作。

(2)HDFS(分布式存储系统):采用HDFS 实现了超大数据集的存储,可采用廉价的成千上百台普通服务器同时存储大量数据。实际上,海量数据是同时存储在很多台分布式的主机中,实现了在集群主机之间很好的通过网络共享文件系统,但在用户看来仍像是存储在同一台主机中。

(3)YARN:属于Hadoop 框架的资源调度系统,它主要负责调度集群中各主机的CPU、内存等资源。

(4)HBase:是一种分布式的超大型数据库,用户在处理数据时主要依赖HBase 来实现随机读写操作,而HDFS 只是实现了顺序读写,不是真正意义上的存储。

(5)Spark:Spark 的逻辑和MR 类似,不同点在于MR 是基于硬盘方面的计算,而Spark 框架是内存方面的计算,所以从一定程度上来说,Spark 框架的性能占有优势。

(6)Hive:它主要实现了数据仓库的作用。数据仓库一般主要用于存储海量的历史数据,用于企业决策、统计分析等情况下,从多种维度出发使用、分析、统计数据,最终满足用户的数据处理要求。Hive 的功能主要是基于MR,把SQL 语句转换为相应的MR 作业。

(7)Flume:主要用做日志收集,负责收集分析流式数据时产生的众多实时流数据。

二、虚拟环境准备

1.安装VMware 虚拟机

本部署采用的是VMware 14 版本的虚拟机,它要求本地主机的CPU 必须要支持虚拟化功能。按照步骤,设置虚拟机名称、指定磁盘容量(如果机器许可, 可以设置为略大的空间,如30G)。为了性能考虑,将虚拟机磁盘存储为单个文件,并进行光驱的镜像索引。结合本机的性能设置,选择合适的处理器数量和每个处理器的内核数量,完成一系列的配置后成功安装虚拟机软件。

2.安装centos7 系统

本文以centos7 版本进行研究,在安装centos7 之前,需要保证BIOS 中虚拟化功能已正确打开。若虚拟机正确安装后,但打开时没有反应,一般是 Windows 防火墙的问题。首先要把防火墙关闭,如果表现正常了,再将VMware 加入到防火墙的例外中。

安装CentOS 7 按需设置虚拟机的主机名、启动后设置等,安装成功后,能够正常打开图形化的Linux 桌面。然后,选择合适的网络工作模式,进行虚拟机网络配置:当你的电脑所处网络不是DHCP方式,而是为每台虚拟机固定IP 地址,采用NAT 模式。满足以上条件,但仍上不去外网,改用桥接方式,桥接方式需要处在DHCP 环境下,否则不设置静态IP 地址,则不能连通网络。配置完成后打开终端,测试网络的连通性,达到虚拟机能和本地主机、外网之间都能够正常通信。

按照以上方法,需要准备好三台虚拟主机,主机名分别为:master、slave1 和slave2,并确保三台虚拟主机之间的网络是连通的。

三、Hadoop 环境准备

在部署Hadoop 之前,必须要明确其安装方式,按照确定的运行模式进行相应的环境变量等配置,完成Hadoop 平台的部署。

1.选择运行模式

在单机模式下,程序都运行同一个主机中。开发阶段大多会选用单机模式来调试和运行程序;在集群模式中,将使用虚拟环境安装多个虚拟主机,来模拟一个集群中的多台主机。

2.运行 Hadoop 的用户

一般情况下,需要指定系统的用户来操作Hadoop 集群,本集群中三台虚拟主机都默认使用stu 用户 。

3.相关配置

Hadoop 框架主要使用XML 文件,来配置Hadoop 生态系统中的众多组件,其中部分关键的XML 配置文件如下。

(1)core-site.xml:属于hadoop 的核心配置文件 。

(2)hdfs-site.xml:是HDFS 组件的配置文件,主要用于完成HDFS 的相关配置。

(3)mapred-site.xml:是MR 组件的配置文件。

(4)yarn-site.xml:是YARN 组件的配置文件, 主要用于完成YARN 的相关配置。

以上XML 配置文件,全部保存在Hadoop 框架安装路径中的etc/hadoop 子目录下。

四、Hadoop 平台的安装与部署

(一)单机配置与部署

在master 虚拟主机中,默认都是使用stu 用户来操作。

1.通过Xshell 软件,把Hadoop 的安装包上传到master 主机下的相应目录中。

2.通过tar 命令解压至安装的目录中:tar zvxf 安装文件的名称。

3.配置JDK:基于JAVA 语言的Hadoop 框架,需要JDK 运行环境。Hadoop 局限于某个用户,如果这个用户在登录后未进到shell的情况下需要环境生效,就需要同时配置.bash_ profile 文件。经修改后,需要通过source 命令使得设置的环境变量生效。

4.配置虚拟机的环境变量

(1)配置 Hadoop 的 环境变量:在hadoop-env.sh 文件的JAVA_HOME 变量中,中加入JDK 的安装路径。命令为:export JAVA_HOME=/usr/java/jdk1.8.0_211。

(2)配置 Linux 的环境变量:编辑./bash_profile 文件,增加JAVA_HOME 和HADOOP_HOME 目录,在PATH 路径中添加JAVA_HOME/bin, HADOOP_HOME/bin, HADOOP_HOME/sbin。最后,使用source 命令让环境变量生效。

5.运行和验证:以stu 用户来验证环境变量是否设置成功,使用命令hadoop version 来验证。

(二)集群模式配置和部署

按照(一)中方法部署好master 虚拟主机后,打开master 主机,将已配置成功的hadoop 配置文件复制到集群中其他虚拟主机slave1 和slave2 中。复制完成后,所有虚拟主机的环境配置均完成,各虚拟主机相互之间的网络也是互通的。最后,通过jps 命令查看集群中三台虚拟主机的守护进程,来验证Hadoop 部署是否成功。

五、实现 ssh 免密登录

为了实现集群中主机之间快速、方便的实现远程访问、批量复制文件等操作,本集群中的三台虚拟主机必须正确实现ssh 免密登录的功能。

免密登录的实现思路如下。

1.为master 虚拟主机生成公钥、私钥文件:使用ssh-keygen-t rsa 命令。命令执行后,回车三次,分别设置秘钥的存储路径和密码等。

2.将master 主机的公钥内容,复制给slave1 主机,并追加到其authorized_keys 文件下,从而实现了master 主机在远程登录slave1 主机时不再需要输入账号和口令。复制命令为:scp ~/.ssh/authorized_keys stu@slave1:~/。

3.接着为slave1 主机生成公钥与私钥, 同样把该公钥的文件复制给slave2 主机,并追加到其authorized_keys 文件下,从而实现了master 和slave1 主机在远程登录slave2 主机时不再需要输入账号和口令。复制命令为:scp ~/.ssh/authorized_keys stu@slave2:~/。

4.复 制slave2 主 机 的authorized_keys 文 件,给master 与slave1 主机,并存于.ssh 目录目录下,成功覆盖两台接收主机的已有的authorized_keys 文件内容。命令如下:

scp authorized_keys stu@slave1:~/.ssh/

scp authorized_keys stu@master:~/.ssh/

5.验证免密是否实现之前,需要先检查master、slave1 和slave2 三台主机中秘钥文件的权限。在master、slave1 和slave2 每台虚拟主机中的.ssh/目录下, 使用ls -l, authorized_keys 查看,确保各自的秘钥文件的权限都必须是600,否则使用chmod 进行修改。

6.经以上设置后,最后分别在三台虚拟主机中查看authorized_keys 文件中的内容, 此时该秘钥中包含了三台主机的公钥信息,在master、slave1、slave2 分别进行查看: cat /home/stu/.ssh/authorized_keys。

7.验证ssh 免密登录:在三台虚拟主机的终端中, 分别执行以下命令: ssh master、ssh slave1、ssh slave2,查看是否自动的远程登录到了其他主机中。

经验证后,三台主机之间进行远程登录时,都不再需要输入对方的密码,即可直接操作对方,最终实现了集群的ssh 免密登录。

若以上设置没有问题,仍不能远程访问彼此,需要检查各虚拟机的防火墙是否处于关闭状态,关闭防火墙操作, CentOS 7 的防火墙以系统服务的形式存在,建议在root 用户下执行关闭操作,以上集群中的三台虚拟主机都需要执行该操作。

六、小结

本文探讨了虚拟环境下Hadoop 集群的快速部署方法,从单机模式向集群模式进行递进式的探讨,实现了Hadoop 集群的快速部署。

猜你喜欢

配置文件命令集群
基于Docker的实时数据处理系统配置文件管理软件的设计与实现
管理Windows10的PowerShell命令行使用记录
功能性新材料产业集群加速形成
从Windows 10中删除所有网络配置文件
用软件处理Windows沙盒配置文件
互不干涉混用Chromium Edge
海上小型无人机集群的反制装备需求与应对之策研究
培育世界级汽车产业集群
移防命令下达后
勤快又呆萌的集群机器人