文档首页/
MapReduce服务 MRS/
开发指南(LTS版)/
MapReduce开发指南(普通模式)/
开发MapReduce应用/
MapReduce访问多组件样例程序/
MapReduce访问多组件样例程序开发思路
更新时间:2024-10-18 GMT+08:00
MapReduce访问多组件样例程序开发思路
场景说明
该样例以MapReduce访问HDFS、HBase、Hive为例,介绍如何编写MapReduce作业访问多个服务组件。帮助用户理解认证、配置加载等关键使用方式。
该样例逻辑过程如下:
以HDFS文本文件为输入数据:
log1.txt:数据输入文件
YuanJing,male,10 GuoYijun,male,5
Map阶段:
- 获取输入数据的一行并提取姓名信息。
- 查询HBase一条数据。
- 查询Hive一条数据。
- 将HBase查询结果与Hive查询结果进行拼接作为Map输出。
Reduce阶段:
- 获取Map输出中的最后一条数据。
- 将数据输出到HBase。
- 将数据保存到HDFS。
数据规划
- 创建HDFS数据文件。
- 在Linux系统上新建文本文件,将log1.txt中的内容复制保存到data.txt。
- 在HDFS上创建一个文件夹“/tmp/examples/multi-components/mapreduce/input/”,并上传data.txt到此目录,命令如下:
- 创建HBase表并插入数据。
- 在Linux系统HBase客户端执行source bigdata_env,并使用命令hbase shell。
- 在HBase shell交互窗口创建数据表table1,该表有一个列族cf,使用命令create 'table1', 'cf'。
- 插入一条rowkey为1、列名为cid、数据值为123的数据,使用命令put 'table1', '1', 'cf:cid', '123'。
- 执行命令quit退出。
- 创建Hive表并载入数据。
- 在Linux系统Hive客户端使用命令beeline。
- 在Hive beeline交互窗口创建数据表person,该表有3个字段:name/gender/stayTime,使用命令CREATE TABLE person(name STRING, gender STRING, stayTime INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' stored as textfile;。
- 在Hive beeline交互窗口加载数据文件,LOAD DATA INPATH'/tmp/examples/multi-components/mapreduce/input/'OVERWRITE INTO TABLE person;。
- 执行命令!q退出。
- 由于Hive加载数据将HDFS对应数据目录清空,所以需再次执行1。
父主题: MapReduce访问多组件样例程序