MapReduce 是用于并行处理大数据集的软件框架。用于大规模数据集(大于1TB)的并行运算。概念“Map(映射)”和“Reduce(归纳)”,及他们的主要思想,都是从函数式编程语言借鉴的,还有从矢量编程语言借来的特性。更多信息,请参阅 MapReduce 教程。
本文将为您介绍如何使用 mapreduce2 执行 SQL 作业。
已创建好包含 Hive 组件服务的火山引擎 E-MapReduce(EMR)集群。详见创建集群。
已安装 OpenLDAP 服务并添加有用户。
使用 Hive 提交 MR 任务,需先将 Hive 切换 MR 为执行引擎:
登录 EMR 控制台。
在左侧导航栏中,单击进入集群管理 > 集群列表 > 集群详情 > 服务列表 > Hive > 服务参数界面。
修改 Hive 参数 hive.execution.engine
为 mr,在右上角单击服务操作 > 重启按钮,重启 Hive 服务。
单击集群列表 > 集群名称 > 服务列表 > Hive > 部署拓扑页签,进入 Hive 组件服务的部署拓扑界面。
展开 HiveServer2 组件名称,单击其主机名称的 ECS ID,跳转进入到云服务器的实例界面,点击右上角的远程连接按钮。
选择一种远程连接方式(推荐选择 ECS Terminal),并输入集群相关认证信息,登录到 Hive 集群的命令行环境中,来执行相关命令行操作。
参考 Hive连接方式 章节连接 HiveServer2,示例如下:
beeline -u "jdbc:hive2://<HiveServer2地址>:10000/" -n <username> -p <password>
说明
命令行传递的 username 和 password 参数来自您在 EMR 控制台 集群详情 > 用户管理页面,通过 IAM 用户导入或手动添加的用户名和密码信息。详情参看用户管理。
连接 HiveServer2 后,您可根据实际场景执行相关 Hive 语句,示例如下:
select orderkey,count(*) from lineitem group by orderkey limit 100;
参考 “3.1.1 登录 EMR master 节点”,登录集群后,执行以下 hadoop jar 提交命令:
/usr/lib/emr/current/hadoop/bin/hadoop jar /usr/lib/emr/current/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar pi 16 100000 //提交 jar 包,参数分别为 // 所需执行 jar 包位置,比如/usr/lib/emr/current/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar // 主类名称 比如pi // 提交参数 比如 16 100000,有些任务会通过参数指定输入输出文件位置,同理