APP下载

基于Hadoop 集群的词频统计应用

2020-01-08刘顺

科学技术创新 2020年30期
关键词:数据处理虚拟化集群

刘顺

(四川信息职业技术学院信息工程系,四川 广元628017)

近年来,随着计算机、智能终端的普及,每天产生了大量数据,数据规模成几何增长,为了满足海量数据的存储和分析,这就需要大量的计算机协同工作,随着信息技术的飞速发展,各种网络应用带来了数据规模的高速增长,为了满足海量数据存储和分析需求,需要使大量计算机协同工作共同完成空前复杂的任务,基于这些原因Apache 软件基金会旗下的一个开源分布式计算平台,它就是Hadoop。该平台是基于Java 语言开发的,核心是HDFS 和MapReduce。HDFS 具有高容错性和高扩展性等优点,允许用户将Hadoop 部署在价格低廉的服务器上,形成分布式系统MapReduce。用户根本不用关心底层实现的技术,就可以实现程序的开发和调用。因此用户通过Hadoop 可以轻松的组织计算机资源,搭建自己的分布式计算平台,完成海量数据的处理。

Hadoop 的原理很简单,其中最核心的就是底层的HadoopDistributedFile System(HDFS)这个文件,它分布在计算机集群内所有的节点上。HDFS(对于本文)的上一层是MapReduce引擎,通过对Hadoop 分布式计算平台最核心的分布式文件系统HDFS、MapReduce 处理过程,这些基本涵盖了Hadoop 分布式平台的所有技术核心。

对于Hadoop 的集群来讲,可分成两大类角色:Master 和Salve。一个HDFS 集群是由一个NameNode 和若干个DataNode组成的。本章将从搭建环境准备以及具体的搭建、配置内容展开,对整个搭建过程进行展示。

1 硬件环境与软件准备

本项目仅仅只是测试Hadoop 的相关功能,虚拟机不需要良好的性能,只要满足最低要求即可,我们选择的是单核CPU,1G的内存空间,一张网卡,虚拟机硬盘大小设置为10G 即可,这只是规划空间,根据实际使用的大小占用空间。

软件准备,关于Hadoop 的版本选择,我选择官方开源版本hadoop-2.6.5.tar。Hadoop 是基于Java 开发,我们在安装hadoop前需要对虚拟机进行JDK 安装,这里我选择较新的版本jdk-7u80-linux-x64.tar。为方便在物理主机与虚拟机之间传输软件包文件,将使用WinSCP 工具。我们在云主机上选择VMware,该软件拥有桌面虚拟化,在主机上需要安装虚拟化软件。Workstation 是功能强大的本地桌面虚拟化软件, 用户可以轻松的在一个系统里面实现完整的不同的操作系统和完整的虚拟网络环境。Linux 系统镜像选择的是Centos7 x86_64 镜像。

2 集群规划

本项目采用的是虚拟机centos7 克隆多个虚拟机,这个centos7 安装时需要带桌面功能。从以往的经验来看,我们在项目实施的时候可以采用安装好一台虚拟机,然后根据项目需求克隆多台虚拟机,并且为了防止安装错误,在一台环境设置好了后,将“快照”,设置为模板,便于在社会错误的时候,返回,也可以需要新建虚拟机的时候,从之前设置的模板中恢复即可,这样可以快速部署虚拟机,节约安装操作系统和虚拟环境设置的时间,本次项目采用的是64 位的虚拟机。从前期的项目需求中可以看出,要使用好hadoop 集群,需要3 台以上的计算机,最简单的方法就是从快照中恢复3 台计算机,并且将网络模式设置为“NAT 模式”,便于外网的访问,实时传送需要的软件,和系统补丁等等。根据项目的需求,我们需要对三台虚拟机进行相关的配置,包括虚拟主机名字,IP 地址、网络规划、域名等等。

3 节点安装

虚拟化软件很多,我们在云主机上选择VMware,该软件拥有桌面虚拟化,在主机上需要安装虚拟化软件。Workstation 是功能强大的本地桌面虚拟化软件, 用户可以轻松的在一个系统里面实现完整的不同的操作系统和完整的虚拟网络环境,我们将使用VMware Workstation Pro 新建虚拟机。

(1)选择准备好的Centos7x86_64 镜像进行安装。

(2)根据引导选择为虚拟机选择1G 内存、20G 硬盘与NAT类型网卡。

(3)点击完成,按着默认引导安装后进入虚拟机使用ipa 命令查看当前主机ip 地址。

(4)通过WinSCP 软件输入主机IP 与用户、密码连接虚拟机。这里用的是root 超级用户登录。

(5)找到安装包拖拽或者复制至右侧等待上传。

(6)通过mkdir 在/home/hadoop1/目录下为hadoop 创建数据存放目录分别为data、name、tmp。

(7)进入虚拟机查看上传到虚拟机的安装包,对安装包解压到指定目录(/user/local 与/home/hadoop1/data)内。

(8)进入/etc/profile 文件添加环境变量,保证hadoop 安装后能够正常运行。

(9)环境变量配置后需重载生效。

4 配置Hadoop 分布式集群环境

4.1 修改主机名和配置IP 映射。该集群由最低的三台云主机组成,将修改每台的hosts 配置文件,编辑/etc/hosts 文件,配置主机名和IP 的映射。三台机器的主机名通过hostname 来修改为master、slave1、slave2。

4.2 SSH 无密码验证配置。SSH 为建立在应用层基础上的安全协议。目前有很多可以实现远程登录的软件或者方式有很多,本项目选着SSH,利用最安全的网络服务和远程登录实现对云主机的访问,管理和配置,有可以防止信息的泄露。Hadoop 需要通过SSH 来启动salve 列表中各台主机的守护进程,因此SSH 是必须安装、配置的。Hadoop 会采用依次序启动文件conf/slaves 中记载的主机上的进程。

4.3 master 主机使用key-gen 生成密钥后发放给slave1 与slave2 确认三次后生产密钥执行。

4.4 下发完成后我们可以通过SSH 命令远程登录,分别登录三台验证后退出。

4.5 配置core-site.xml 文件core-site.xml (工具模块)括Hadoop 常用的一些工具,主要实现其他开发软件提供相应的API 访问调用,这些工具主要包括了FileSystem(这个是抽象系统文件)、还有系统同配置的工具,也有远程过程调用和一些事物序列化的工具。有了这些工具,我们可以很方便的管理和配置配置core-site.xml 文件core-site.xml。

4.6 配置hdfs-site.xml 文件。hdfs-site.xml(数据存储模块),这个模块非常的重要,主要是我们分布式文件系统的设置,其中需要修改的是dfs.namenode.name.dir 和dfs.datanode.data.dir,把value 填写对应前面创建的数据与命名目录,Hadoop 之所以能完成分布式访问,主要是基于数据存储管理的方式,实现高容错和高伸缩性(在压力测试中可以自由增加资源,提高访问的有效性),而且对硬件的要求极低,也是受到开发者或用户追捧的原因。还有一个原因是简化的数据访问方式,让程序对数据的访问,变得更加简洁。

4.7 配置yarn-site.xml 文件。yarn-site.xml(作业调度+资源管理平台)任务调度和集群资源管理。进入etc/hadoop 目录,编辑yarn-site.xml 文件。因在虚拟机上运行hadoop,将CPU 数量要求设为1G,内存大小为2048,使其符合虚拟机的资源数量。

4.8 配置mapred-site.xml 文件。mapred-site.xml(数据处理模块),我们将进入etc/hadoop 目录,修改mapred-site.xml 文件,添加相应的配置,由于该模块是数据处理模块,需要使用YARN的大型数据集并行处理系统。通过这个计算机模型可以实现生产环境环境中,大数据的并行计算。通过数据独立元素中键和值的对应关系,和功能的划分,将大量需要计算机处理的数据进行分布式并行处理。

4.9 配置slaves 文件。slaves 文件为hadoop 集群指定的从节点主机名单,进入etc/hadoop 目录,将slaves 文件中内容修改为slave1 与slave2。

4.10 配置hadoop-env.sh 文件。进入etc/hadoop 目录,编辑hadoop-env.sh 将export=JAVA_HOME 改为JDK 安装目录。10.拷贝hadoop 文件。因整个集群配置文件需要同步,直接将master整个hadoop 文件夹使用scp 复制到slave1 和slave2 的相同目录中的方式完成配置。

5 结论

经过近几年的发展Hadoop 在大数据应用方面得到大家的认可和广泛的应用,主要得益于其自身的架构优势:数据提取、变形和加载(ETL)。Hadoop 主要是用将任务细化,分解的方式传到其他多个云主机上,再将大哥节点数据放到reduce,这就对我们的布局提高了要求,要求数据引擎尽量的考到存储单元,对我们的数据处理直接调用存储,有利于访问的速度,和效率。通过并行处理加快处理速度决定了,在处理计算机节点之间,利用计算机集群完成数据的并行分配,将这些数据分配到无数的云主机节点中,实现高效率,具有高扩展的优势。

通过在单台物理机上搭建虚拟机的方式建立3 节点的Hadoop 集群,并进行文本词频测试。我感受到了Hadoop 对于数据处理的强大能力。开源的性质决定了项目的软件成本不会太高,在较低的资源情况下也能进行较为高效、可靠的数据处理。

同样Hadoop 也还存在许多不足。由于Hadoop 架构的原因,数据访问延迟增加,对于低延迟生产环境的不合适使用Hadoop,仅在吞吐量上做了优化。同样HDFS 不支持多用户同时执行写操作,即同一时间,只能有一个用户执行写操作,不适应与频繁的文件读写。

猜你喜欢

数据处理虚拟化集群
认知诊断缺失数据处理方法的比较:零替换、多重插补与极大似然估计法*
基于低频功率数据处理的负荷分解方法
无人机测绘数据处理关键技术及运用
海上小型无人机集群的反制装备需求与应对之策研究
基于OpenStack虚拟化网络管理平台的设计与实现
培育世界级汽车产业集群
对基于Docker的虚拟化技术的几点探讨
一种无人机集群发射回收装置的控制系统设计
浅析虚拟化技术的安全保障
基于MATLAB语言的物理实验数据处理探讨