• 沒有找到結果。

MRS离线处理集群,可对海量数据进行分析和处理,形成结果数据,供下一步数据应 用使用。

离线处理对处理时间要求不高,但是所处理数据量较大,占用计算存储资源较多,通 常通过Hive/SparkSQL引擎或者MapReduce/Spark2x实现。

本实践基于华为云MapReduce服务,用于指导您创建MRS集群后,使用Hive对原始数 据进行导入、分析等操作,展示了如何构建弹性、低成本的离线大数据分析。

基本内容如下所示:

1. 创建MRS离线查询集群。

2. 将本地数据导入到HDFS中。

3. 创建Hive表。

4. 将原始数据导入Hive并进行分析。

场景描述

Hive是建立在Hadoop上的数据仓库框架,提供大数据平台批处理计算能力,能够对结 构化/半结构化数据进行批量分析汇总完成数据计算。提供类似SQL的Hive Query Language语言操作结构化数据,其基本原理是将HQL语言自动转换成MapReduce任 务,从而完成对Hadoop集群中存储的海量数据进行查询和分析。

Hive主要特点如下:

● 海量结构化数据分析汇总。

● 将复杂的MapReduce编写任务简化为SQL语句。

● 灵活的数据存储格式,支持JSON,CSV,TEXTFILE,RCFILE,SEQUENCEFILE,

ORC(Optimized Row Columnar)这几种存储格式。

本实践以某图书网站后台用户的点评数据为原始数据,导入Hive表后通过SQL命令筛 选出最受欢迎的畅销图书。

创建 MRS 离线查询集群

1. 登录华为云控制台,选择“大数据 > MapReduce服务”,单击“购买集群”,选 择“快速购买”,填写软件配置参数,单击“下一步”。

1-5 软件配置(以下参数仅供参考,可根据实际情况调整)

参数项 取值

区域 华北-北京四

计费模式 按需计费

集群名称 MRS_demo

集群版本 MRS 3.1.0

组件选择 Hadoop分析集群

可用区 可用区1

虚拟私有云 vpc-01

子网 subnet-01

企业项目 default

Kerberos认证 不开启

用户名 root/admin

密码 设置密码登录集群管理页面及ECS节点

用户的密码,例如:Test!@12345。

确认密码 再次输入设置用户密码

通信安全授权 勾选“确认授权”

2. 单击“立即购买”,等待约15分钟,MRS集群创建成功。

将本地数据导入到 HDFS 中

1. 在本地已获取某图书网站后台图书点评记录的原始数据文件“book_score.txt”,

例如内容如下。

桶名称 mrs-hive

默认存储类别 标准存储

桶策略 私有

默认加密 关闭

归档数据直读 关闭

企业项目 default

标签

-等待桶创建好,单击桶名称,选择“对象 > 上传对象”,将数据文件上传至OBS 桶内。

3. 切换回MRS控制台,单击创建好的MRS集群名称,进入“概览”,单击“IAM用 户同步”所在行的“同步”,等待约5分钟同步完成。

4. 将数据文件上传HDFS。

a. 在“文件管理”页签,选择“HDFS文件列表”,进入数据存储目录,如

“/tmp/test”。

“/tmp/test”目录仅为示例,可以是界面上的任何目录,也可以通过“新 建”创建新的文件夹。

b. 单击“导入数据”。

OBS路径:选择上面创建好的OBS桶名,找到“book_score.txt”文件,

单击“是”。

HDFS路径:选择“/tmp/test”,单击“是”。

c. 单击“确定”,等待数据导入成功,此时数据文件已上传至MRS集群的HDFS 文件系统内。

创建 Hive 表

1. 下载并安装集群全量客户端,例如在主Master节点上安装,客户端安装目录为

“/opt/client”,相关操作可参考安装客户端。

也可直接使用Master节点中自带的集群客户端,安装目录为“/opt/Bigdata/

client”。

2. 为主Master节点绑定一个弹性IP并在安全组中放通22端口,然后使用root用户登

cd /opt/client source bigdata_env

3. 执行beeline -n 'hdfs'命令进入Hive Beeline命令行界面。

执行以下命令创建一个与原始数据字段匹配的Hive表:

create table bookscore (userid int,bookid int,score int,remarks string) row format delimited fields terminated by ','stored as textfile;

4. 查看表是否创建成功:

show tables;

+---+

1. 继续在Hive Beeline命令行中执行以下命令,将已导入HDFS的原始数据导入Hive 表中。

load data inpath '/tmp/test/book_score.txt' into table bookscore;

2. 数据导入完成后,执行如下命令,查看Hive表内容。

select * from bookscore;

+---+---+---+---+

| bookscore.userid | bookscore.bookid | bookscore.score | bookscore.remarks | +---+---+---+---+

select count(*) from bookscore;

+---+

| _c0 | +---+

| 32 | +---+

3. 执行以下命令,等待MapReduce任务完成后,筛选原始数据中累计评分最高的图 书top3。

select bookid,sum(score) as summarize from bookscore group by bookid order by summarize desc limit 3;

例如最终显示内容如下:

...INFO : 2021-10-14 19:53:42,427 Stage-2 map = 0%, reduce = 0%

INFO : 2021-10-14 19:53:49,572 Stage-2 map = 100%, reduce = 0%, Cumulative CPU 2.15 sec INFO : 2021-10-14 19:53:56,713 Stage-2 map = 100%, reduce = 100%, Cumulative CPU 4.19 sec INFO : MapReduce Total cumulative CPU time: 4 seconds 190 msec

INFO : Ended Job = job_1634197207682_0025 INFO : MapReduce Jobs Launched:

INFO : Stage-Stage-1: Map: 1 Reduce: 1 Cumulative CPU: 4.24 sec HDFS Read: 7872 HDFS Write:

322 SUCCESS

INFO : Stage-Stage-2: Map: 1 Reduce: 1 Cumulative CPU: 4.19 sec HDFS Read: 5965 HDFS Write:

143 SUCCESS

INFO : Total MapReduce CPU Time Spent: 8 seconds 430 msec INFO : Completed executing

command(queryId=omm_20211014195310_cf669633-5b58-4bd5-9837-73286ea83409); Time taken:

47.388 seconds INFO : OK

INFO : Concurrency mode is disabled, not creating a lock manager +---+---+

3 rows selected (47.469 seconds)

以上内容表示,ID为456、302、474的3本书籍,为累计评分最高的Top3图书。