HiveServer遇到一个问题

6 篇文章 0 订阅

  基于给开发同学使用与BI用户使用的需求,打算开启HiveServer2服务,集群上面的Hive任务执行、调度,都走HiveServer2方式。之前只有调度任务与开发同学使用,所以使用的是Hive CLI方式,开发同学没有添加权限控制。

  使用一段时间之后,发现HiveServer2存在各种问题。突出的问题就是不稳定、运行日志很难获取、任务ID需要解析等,最近遇到一个概率性出现的问题。

INFO  : Cleaning up the staging area file:/tmp/hadoop-hive/mapred/staging/hive1294900272/.staging/job_local1294900272_0933
ERROR : Job Submission failed with exception 'java.io.IOException(java.util.concurrent.ExecutionException: java.io.IOException: Unable to rename file: [/tmp/hadoop-hive/mapred/local/1526009
296491_tmp/tmp_hive-exec-1.1.0-cdh5.12.1-core.jar] to [/tmp/hadoop-hive/mapred/local/1526009296491_tmp/hive-exec-1.1.0-cdh5.12.1-core.jar])'
java.io.IOException: java.util.concurrent.ExecutionException: java.io.IOException: Unable to rename file: [/tmp/hadoop-hive/mapred/local/1526009296491_tmp/tmp_hive-exec-1.1.0-cdh5.12.1-core
.jar] to [/tmp/hadoop-hive/mapred/local/1526009296491_tmp/hive-exec-1.1.0-cdh5.12.1-core.jar]
        at org.apache.hadoop.mapred.LocalDistributedCacheManager.setup(LocalDistributedCacheManager.java:143)
        at org.apache.hadoop.mapred.LocalJobRunner$Job.<init>(LocalJobRunner.java:171)
        at org.apache.hadoop.mapred.LocalJobRunner.submitJob(LocalJobRunner.java:758)
        at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:244)
        at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1307)
        at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1304)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:422)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1917)
        at org.apache.hadoop.mapreduce.Job.submit(Job.java:1304)
        at org.apache.hadoop.mapred.JobClient$1.run(JobClient.java:578)
        at org.apache.hadoop.mapred.JobClient$1.run(JobClient.java:573)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:422)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1917)
        at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:573)
        at org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:564)
        at org.apache.hadoop.hive.ql.exec.mr.ExecDriver.execute(ExecDriver.java:436)
        at org.apache.hadoop.hive.ql.exec.mr.MapRedTask.execute(MapRedTask.java:142)
        at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:214)
        at org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:99)
        at org.apache.hadoop.hive.ql.exec.TaskRunner.run(TaskRunner.java:79)
Caused by: java.util.concurrent.ExecutionException: java.io.IOException: Unable to rename file: [/tmp/hadoop-hive/mapred/local/1526009296491_tmp/tmp_hive-exec-1.1.0-cdh5.12.1-core.jar] to [
/tmp/hadoop-hive/mapred/local/1526009296491_tmp/hive-exec-1.1.0-cdh5.12.1-core.jar]
        at java.util.concurrent.FutureTask.report(FutureTask.java:122)
        at java.util.concurrent.FutureTask.get(FutureTask.java:192)
        at org.apache.hadoop.mapred.LocalDistributedCacheManager.setup(LocalDistributedCacheManager.java:139)
        ... 21 more
Caused by: java.io.IOException: Unable to rename file: [/tmp/hadoop-hive/mapred/local/1526009296491_tmp/tmp_hive-exec-1.1.0-cdh5.12.1-core.jar] to [/tmp/hadoop-hive/mapred/local/15260092964
91_tmp/hive-exec-1.1.0-cdh5.12.1-core.jar]
        at org.apache.hadoop.yarn.util.FSDownload.unpack(FSDownload.java:327)
        at org.apache.hadoop.yarn.util.FSDownload.call(FSDownload.java:362)
        at org.apache.hadoop.yarn.util.FSDownload.call(FSDownload.java:60)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)


INFO  : Cleaning up the staging area file:/tmp/hadoop-hive/mapred/staging/hive1101623315/.staging/job_local1101623315_0934
ERROR : Job Submission failed with exception 'java.io.IOException(java.util.concurrent.ExecutionException: java.io.FileNotFoundException: File /tmp/hadoop-hive/mapred/local/1526009296491_tm
p does not exist)'
java.io.IOException: java.util.concurrent.ExecutionException: java.io.FileNotFoundException: File /tmp/hadoop-hive/mapred/local/1526009296491_tmp does not exist
        at org.apache.hadoop.mapred.LocalDistributedCacheManager.setup(LocalDistributedCacheManager.java:143)
        at org.apache.hadoop.mapred.LocalJobRunner$Job.<init>(LocalJobRunner.java:171)
        at org.apache.hadoop.mapred.LocalJobRunner.submitJob(LocalJobRunner.java:758)
        at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:244)
        at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1307)
        at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1304)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:422)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1917)
        at org.apache.hadoop.mapreduce.Job.submit(Job.java:1304)
        at org.apache.hadoop.mapred.JobClient$1.run(JobClient.java:578)
        at org.apache.hadoop.mapred.JobClient$1.run(JobClient.java:573)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:422)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1917)
        at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:573)
        at org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:564)
        at org.apache.hadoop.hive.ql.exec.mr.ExecDriver.execute(ExecDriver.java:436)
        at org.apache.hadoop.hive.ql.exec.mr.MapRedTask.execute(MapRedTask.java:142)
        at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:214)
        at org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:99)
        at org.apache.hadoop.hive.ql.exec.TaskRunner.run(TaskRunner.java:79)
Caused by: java.util.concurrent.ExecutionException: java.io.FileNotFoundException: File /tmp/hadoop-hive/mapred/local/1526009296491_tmp does not exist
        at java.util.concurrent.FutureTask.report(FutureTask.java:122)
        at java.util.concurrent.FutureTask.get(FutureTask.java:192)
        at org.apache.hadoop.mapred.LocalDistributedCacheManager.setup(LocalDistributedCacheManager.java:139)
        ... 21 more
Caused by: java.io.FileNotFoundException: File /tmp/hadoop-hive/mapred/local/1526009296491_tmp does not exist
        at org.apache.hadoop.fs.RawLocalFileSystem.deprecatedGetFileStatus(RawLocalFileSystem.java:598)
        at org.apache.hadoop.fs.RawLocalFileSystem.getFileLinkStatusInternal(RawLocalFileSystem.java:811)
        at org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:588)
        at org.apache.hadoop.fs.RawLocalFileSystem.deprecatedGetFileLinkStatusInternal(RawLocalFileSystem.java:827)
        at org.apache.hadoop.fs.RawLocalFileSystem.getFileLinkStatusInternal(RawLocalFileSystem.java:813)
        at org.apache.hadoop.fs.RawLocalFileSystem.getFileLinkStatus(RawLocalFileSystem.java:784)
        at org.apache.hadoop.fs.DelegateToFileSystem.getFileLinkStatus(DelegateToFileSystem.java:132)
        at org.apache.hadoop.fs.AbstractFileSystem.renameInternal(AbstractFileSystem.java:701)
        at org.apache.hadoop.fs.FilterFs.renameInternal(FilterFs.java:236)
        at org.apache.hadoop.fs.AbstractFileSystem.rename(AbstractFileSystem.java:674)
        at org.apache.hadoop.fs.FileContext.rename(FileContext.java:932)
        at org.apache.hadoop.yarn.util.FSDownload.call(FSDownload.java:364)
        at org.apache.hadoop.yarn.util.FSDownload.call(FSDownload.java:60)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

ERROR : FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
INFO  : Completed executing command(queryId=hive_20180511112828_b253761f-a1ae-40bc-ae7e-650cfa4c7b79); Time taken: 9.506 seconds

Error: Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask (state=08S01,code=1)
Closing: 0: 

  想要排查问题,该问题又不会定期出现,在运行几百个JOB中,偶尔出现几个这样的报错信息。
  最后还是找到了这样一篇文章:一台服务器同时起多个hive跑local mr很大机率会报 FileAlreadyExistsException。根据该文中的报错信息,以及源代码的内容,可以看出我们这里的报错应该也是同类,或同一个出处。至此为我们的问题找打了一个合理的解释,因此可以对症下药解决问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HiveServer2是Apache Hive一个重要组成部分,它作为一个服务提供程序,允许客户端(如Impala或SQL查询工具)连接到Hive元数据仓库并执行SQL查询。如果HiveServer2遇到问题并卡住,可能有多种原因: 1. **资源不足**:内存、CPU或磁盘空间不足可能导致服务器无法处理更多的请求。 2. **SQL查询错误或无限循环**:如果某个查询有语法错误或者逻辑问题,比如无限递归,这可能会阻塞整个服务。 3. **表锁定或并发问题**:如果表被其他事务长时间占用,新请求可能会被阻塞。 4. **元数据问题**:Hive元数据存储可能出错,导致查询无法正确解析或处理。 5. **网络延迟或故障**:如果服务器间的网络连接不稳定,也可能影响通信。 **解决方法**: - **检查日志**:查看HiveServer2的日志文件,通常在`logs`目录下,找出具体的错误信息和异常堆栈。 - **资源监控**:确保集群资源使用正常,如有必要,调整配置或增加资源。 - **优化查询**:如果是查询性能问题,尝试优化SQL语句,避免全表扫描或者减少复杂的关联操作。 - **重启服务**:有时候简单的重启可以解决临时的内存泄漏或状态问题。 - **排查并发限制**:检查并发设置,确保没有达到最大限制。 **相关问题**: 1. HiveServer2日志中显示了哪些错误类型? 2. 如何检查HiveServer2的资源使用情况? 3. 如何设置和管理Hive的并发限制?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值