处理 HiveQL 语句
Hive 是一个在 Hadoop 上运行的应用程序,面向批处理的框架,用于运行 MapReduce 任务。发出 HiveQL 语句后,Hive 确定是否可以立即返回结果,或者是否必须提交 MapReduce 任务。
例如,考虑使用 ddb_features 表(来自 教程:使用 Amazon DynamoDB 和 Apache Hive)。下面的 Hive 查询打印州缩写和每个州的高山数量:
SELECT state_alpha, count(*) FROM ddb_features WHERE feature_class = 'Summit' GROUP BY state_alpha;
Hive 不立即返回结果,而是提交一个由 Hadoop 框架处理的 MapReduce 任务。Hive 将等到任务完成后,显示查询结果:
AK 2 AL 2 AR 2 AZ 3 CA 7 CO 2 CT 2 ID 1 KS 1 ME 2 MI 1 MT 3 NC 1 NE 1 NM 1 NY 2 OR 5 PA 1 TN 1 TX 1 UT 4 VA 1 VT 2 WA 2 WY 3 Time taken: 8.753 seconds, Fetched: 25 row(s)
监控和取消任务
Hive 启动 Hadoop 任务后,打印任务输出。任务完成状态随着任务的进展而更新。在某些情况下,状态可能会很长时间不会更新。(查询预置读取容量设置低的大型 DynamoDB 表时,可能会发生这种情况。)
如果需要在任务完成之前取消任务,可以随时键入 Ctrl+C
。