我是Hadoop和Hive的新手。我正在使用Hive与Hadoop集成来执行查询。当我提交任何查询时,控制台上会显示以下日志消息:
Hive历史 file = /tmp/root/hive_job_log_root_28058@hadoop2_201203062232_1076893031.txt总MapReduce作业= 1启动作业1中的1个减少数量 在编译时确定的任务:1为了改变平均值 load for reducer(以字节为单位):set hive.exec.reducers.bytes.per.reducer =为了限制 最大减速器数:set hive.exec.reducers.max = In 为了设置一个恒定数量的reducer:set mapred.reduce.tasks = 开始工作= job_201203062223_0004, 跟踪网址= http://:50030 / jobdetails.jsp?jobid = job_201203062223_0004 Kill Command = //opt/hadoop_installation/hadoop-0.20.2/bin/../bin/hadoop stage -kill job_201203062223_0004 Stage-1的Hadoop工作信息: 映射器数量:1;减速机数量:1 2012-03-06 22:32:26,707 Stage-1 map = 0%,reduce = 0%2012-03-06 22:32:29,716 Stage-1 map = 100%,reduce = 0%2012-03-06 22:32:38,748 Stage-1 map = 100%,reduce = 100%结束作业= job_201203062223_0004 MapReduce作业启动:作业0:地图:1减少:1 HDFS读取:8107686 HDFS写入:4成功总计 MapReduce CPU花费的时间:0毫秒确定
以粗体提到的文字开始了一个hadoop工作(这就是我所相信的)。这项工作需要很长时间。一旦执行此行,map reduce操作就会迅速执行。以下是我的问题:
如果需要任何输入,请告诉我。
答案 0 :(得分:1)
1)开始工作= job_201203062223_0004,跟踪网址= http :: 50030 / jobdetails.jsp?jobid = job_201203062223_0004
ANS:您的HQL查询>翻译成hadoop工作> hadoop将做一些后台工作(如计划资源,数据位置,处理查询所需的阶段,启动配置,作业,任务生成等)>发布地图集>排序&& shuffle>减少(聚合)>导致hdfs。
以上流程是hadoop作业生命周期的一部分,因此不会跳过任何...
http://namenode:port/jobtracker.jsp
---您可以通过job-id查看您的工作状态:job_201203062223_0004,(监控)
2)Kill Command = HADOOP_HOME / bin / hadoop job -kill job_201203062223_0004
答:在启动映射器之前,您将看到这些行,因为,hadoop适用于bigdata,这可能需要花费很多或更少的时间取决于您的数据集大小。所以在任何时候,如果你想要杀死这份工作,那就是帮助热线。对于任何hadoop-job,将显示此行,显示这样的信息行不会花费太多时间。关于你的意见的一些插件:
启动开销(参考q1s - hadoop会做一些后台工作)在Hive中,它是无法避免的。
即使对于小尺寸的数据集,这些在头上的发射也在hadoop中。
PS:如果你真的希望及时获得快速结果(请参阅shark)
答案 1 :(得分:0)
首先,Hive是用HQL取代你的先生工作的工具。在后台,它已经丢失了预定义的函数,先生程序。运行HQL,HADOOP集群会丢失东西,找到数据块,分配任务等等。
其次,您可以通过hadoop shell命令终止作业。 如果您的工作ID是AAAAA。 你可以执行下面的命令来杀死它
$HADOOP_HOME/bin/hadoop job -kill AAAAA
答案 2 :(得分:0)
由于资源不足,启动hadoop作业可能会延迟。如果使用纱线,您可以看到作业处于已接受状态但尚未运行。这意味着还有一些其他正在进行的工作已经消耗了所有执行程序并且新查询正在等待运行。
您可以使用hadoop job -kill <job_id>
命令终止旧作业或等待它完成。