CREATE TABLE purchase_analysis AS > SELECT > get_json_object(log_line, '$.phoneNumber') AS user_id, > get_json_object(log_line, '$.productId') AS product_id, > CAST(get_json_object(log_line, '$.shopPrice') AS INT) AS price, > from_unixtime(unix_timestamp( > get_json_object(log_line, '$.times'), > 'yyyy-MM-dd HH:mm:ss' > )) AS purchase_time, > get_json_object(log_line, '$.title') AS product_name > FROM raw_purchase_logs; Query ID = root_20250423042001_d8f007cb-c053-4e7e-82aa-0683940fb16f Total jobs = 3 Launching Job 1 out of 3 Number of reduce tasks is set to 0 since there's no reduce operator Starting Job = job_1745405696032_0002, Tracking URL = http://hadoop01:8088/proxy/application_1745405696032_0002/ Kill Command = /home/hadoop03/hadoop/hadoop-3.3.4/bin/mapred job -kill job_1745405696032_0002 Hadoop job information for Stage-1: number of mappers: 0; number of reducers: 0 2025-04-23 04:20:17,326 Stage-
时间: 2025-08-24 13:14:46 浏览: 4
<think>好的,我现在需要帮助用户查找Hadoop SQL中CREATE TABLE语句的执行日志和任务信息,特别是关于purchase_analysis表的创建过程及Job执行情况。首先,我需要回忆Hadoop生态系统中常用的组件,比如Hive或Spark SQL,因为用户提到的是Hadoop SQL,可能指的是Hive。
用户的需求是找到执行CREATE TABLE时的日志和Job信息。我需要考虑如何在这些组件中获取相关信息。首先,Hive的元数据存储在Metastore中,但执行日志可能分散在多个地方,比如Hive的日志文件、YARN的资源管理器日志,以及作业历史服务器。
接下来,我需要分步骤指导用户如何查找这些信息。首先是检查Hive CLI或Beeline的执行日志,如果用户是在命令行中直接执行语句的话,这些日志可能包含错误信息或执行状态。但如果是通过其他工具执行的,可能需要查看对应的日志路径。
然后是YARN的Job信息,因为Hive在底层会生成MapReduce或Tez作业。用户需要访问YARN ResourceManager的Web UI来查找对应的应用ID,或者使用yarn application命令来列出作业。一旦找到应用ID,可以通过作业历史服务器的Web界面查看详细日志,包括每个任务的运行情况。
另外,Hive的元数据查询也很重要。用户可能需要检查表的创建时间和DDL语句,这可以通过Hive的元数据库(通常是MySQL或Derby)来查询,使用DESCRIBE EXTENDED或SHOW CREATE TABLE语句来获取详细信息。
对于Spark SQL的情况,用户可能需要查看Spark的作业日志,通过Spark History Server来查看提交的应用信息,包括执行计划和日志。此外,检查HDFS上的表存储路径,确认目录结构和文件是否正确生成,也能帮助确认CREATE TABLE是否成功。
在用户提供的引用中,引用了Spark和Hadoop的关系[^3],以及一些SQL查询的例子,但当前问题更关注于日志和作业信息的获取。因此,需要确保指导用户的方法适用于他们的环境配置,比如确认Hadoop和Hive的版本,日志文件的具体位置可能因安装方式不同而变化。
用户可能需要知道具体的命令和访问路径,比如如何通过命令行工具或Web界面查找信息。同时,提醒用户权限问题,访问日志和作业信息可能需要特定的权限。如果用户遇到权限问题,建议他们联系系统管理员。
最后,生成的相关问题需要围绕用户可能进一步的需求,比如优化查询、处理执行失败的情况,或者配置日志记录级别,这些都是用户在获取日志信息后可能遇到的后续问题。</think>在Hadoop生态系统中查找SQL CREATE TABLE执行日志和任务信息,可通过以下步骤实现:
### 一、Hive执行日志定位
1. **CLI/Beeline日志**
通过Hive CLI或Beeline执行建表语句时,控制台会返回执行状态:
```bash
$ beeline -u jdbc:hive2://hiveserver:10000 -e "CREATE TABLE purchase_analysis(...)"
```
日志会包含$Query ID$和$Application ID$[^3]
2. **Hive Server日志**
检查以下路径获取详细日志(路径可能因安装方式不同变化):
```
/var/log/hive/hiveserver2.log
/var/log/hive/hive-metastore.log
```
### 二、YARN任务追踪
1. **通过Application ID查询**
在YARN ResourceManager Web UI(默认8088端口)搜索包含以下特征的作业:
- 应用类型:`HIVE` 或 `TEZ`
- 应用名称包含`CREATE_TABLE`或`purchase_analysis`
```bash
yarn logs -applicationId application_1625555555555_12345
```
2. **MapReduce任务详情**
如果使用MapReduce引擎,检查:
```bash
mapred job -list | grep -i purchase_analysis
mapred job -history all <job_id>
```
### 三、Hive元数据验证
1. **表结构确认**
```sql
DESCRIBE EXTENDED purchase_analysis;
SHOW CREATE TABLE purchase_analysis; -- 显示完整DDL语句[^1]
```
2. **元数据库查询**
直接查询Hive Metastore数据库(MySQL示例):
```sql
SELECT TBL_NAME, CREATE_TIME, DB_LOCATION_URI
FROM TBLS
JOIN DBS ON TBLS.DB_ID = DBS.DB_ID
WHERE TBL_NAME = 'purchase_analysis';
```
### 四、HDFS存储验证
检查表对应的HDFS路径是否存在:
```bash
hdfs dfs -ls /user/hive/warehouse/purchase_analysis
```
### 五、Spark SQL场景补充
如果使用Spark SQL执行建表:
1. **Spark History Server**
访问http://spark-master:18080 查看对应批次的任务DAG图
2. **事件日志解析**
```bash
spark-submit --conf spark.eventLog.enabled=true \
--conf spark.eventLog.dir=hdfs:///spark-logs
```
阅读全文