从一张已有的Hive Table中创建新表及Partition出现如下问题
- 原有Hive Table中有160g数据(为三个月中所有应用和服务器的用户访问记录)
- 新表选取需要字段,并按照应用/服务器Ip/访问时间创建Partition
-
//创建table set hive.exec.dynamic.partition=true; set hive.exec.dynamic.partition.mode=nonstrict; CREATE TABLE IF NOT EXISTS app_trace( trace_id string, client_ip string, user_device string, user_id string, user_account string, org_id string, org_name string, org_path string, org_parent_id string, url string, completed boolean, cost int, create_time bigint, parameters map<string,string>, subtrace array<string> ) PARTITIONED BY (app_id int,server_ip string,create_date string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\|' COLLECTION ITEMS TERMINATED BY '\$' MAP KEYS TERMINATED BY '\:' STORED AS SEQUENCEFILE //加载数据 insert OVERWRITE table app_trace partition(app_id,server_ip,craete_date) select trace_id, client_ip, user_device, user_id, user_account, org_id, org_name, org_path, org_parent_id, url, completed, cost, create_time, parameters, subtrace, app_id, server_ip, create_date from user_trace;
-
Hive错误信息 写道Task with the most failures(4):
-----
Task ID:
task_1418272031284_0203_r_000071
URL:
http://HADOOP-5-101:8088/taskdetails.jsp?jobid=job_1418272031284_0203&tipid=task_1418272031284_0203_r_000071
-----
Diagnostic Messages for this Task:
Error: org.apache.hadoop.mapreduce.task.reduce.Shuffle$ShuffleError: error in shuffle in InMemoryMerger - Thread to merge in-memory shuffled map-outputs
at org.apache.hadoop.mapreduce.task.reduce.Shuffle.run(Shuffle.java:134)
at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:376)
at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:167)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1557)
at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:162)
Caused by: org.apache.hadoop.fs.FSError: java.io.IOException: No space left on device
at org.apache.hadoop.fs.RawLocalFileSystem$LocalFSFileOutputStream.write(RawLocalFileSystem.java:221)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
at java.io.BufferedOutputStream.write(BufferedOutputStream.java:126)
at org.apache.hadoop.fs.FSDataOutputStream$PositionCache.write(FSDataOutputStream.java:58)
at java.io.DataOutputStream.write(DataOutputStream.java:107)
at org.apache.hadoop.mapred.IFileOutputStream.write(IFileOutputStream.java:88)
at org.apache.hadoop.fs.FSDataOutputStream$PositionCache.write(FSDataOutputStream.java:58)
at java.io.DataOutputStream.write(DataOutputStream.java:107)
at org.apache.hadoop.mapred.IFile$Writer.append(IFile.java:250)
at org.apache.hadoop.mapred.Merger.writeFile(Merger.java:208)
at org.apache.hadoop.mapreduce.task.reduce.MergeManagerImpl$InMemoryMerger.merge(MergeManagerImpl.java:476)
at org.apache.hadoop.mapreduce.task.reduce.MergeThread.run(MergeThread.java:94)
Caused by: java.io.IOException: No space left on device
at java.io.FileOutputStream.writeBytes(Native Method)
at java.io.FileOutputStream.write(FileOutputStream.java:345)
at org.apache.hadoop.fs.RawLocalFileSystem$LocalFSFileOutputStream.write(RawLocalFileSystem.java:219)
... 11 more
FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
MapReduce Jobs Launched:
Job 0: Map: 282 Reduce: 80 Cumulative CPU: 12030.1 sec HDFS Read: 79178863622 HDFS Write: 15785449373 FAIL
Total MapReduce CPU Time Spent: 0 days 3 hours 20 minutes 30 seconds 100 msec
经过排查,发现
-
HDFS存储正常[jyzx@HADOOP-5-101 main_disk]$ hdfs dfs -df -h
Filesystem Size Used Available Use%
hdfs://HADOOP-5-101:8020 8.9 T 625.9 G 7.8 T 7% -
DataNode本地存储异常[jyzx@HADOOP-5-101 main_disk]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
50G 46G 837M 99% /
tmpfs 7.8G 56K 7.8G 1% /dev/shm
/dev/cciss/c0d0p1 485M 32M 428M 7% /boot -
具体出现问题的目录/hadoop/yarn/local/usercache
[root@HADOOP-6-199 local]# du -h --max-depth=1
4.0K ./usercache_DEL_1411698127772
4.0K ./usercache_DEL_1411700964513
4.0K ./usercache_DEL_1411713191383
4.0K ./usercache_DEL_1418272057670
4.0K ./usercache_DEL_1411699568217
628K ./filecache
4.0K ./usercache_DEL_1411713338641
7.2G ./usercache
4.0K ./usercache_DEL_1411698079868
4.0K ./usercache_DEL_1411713240205
104K ./nmPrivate
7.2G . -
/hadoop/yarn/local/usercache是yarn的node-manager本地目录
yarn.nodemanager.local-dirs=/hadoop/yarn/local/usercache
解决方法
- 只需要修改yarn的配置yarn.nodemanager.local-dirs,指定到更大的存储上即可
- yarn.nodemanager.local-dirs=/mnt/disk1/hadoop/yarn/local/usercache
- 重启yarn集群
相关推荐
【Hive任务提交流程】 Hive作为大数据处理领域的一个重要工具,它允许用户通过SQL语句来查询和管理存储在Hadoop集群上的大规模数据。在Hive中,复杂的SQL查询会被解析并转换为一系列的任务(Task),这些任务通常是...
综上所述,YARN内存管理的优化需要综合考虑RM、NM和AM的角色及它们的配置参数,确保资源有效利用,同时避免内存不足或溢出导致的问题。在实际操作中,需根据应用需求和集群资源状况合理调整这些参数,以实现最佳性能...
windows中使用yarn-cluster模式提交spark任务,百度找不着的啦,看我这里。另外spark的版本要使用正确哦 更简单的方式参考: https://blog.csdn.net/u013314600/article/details/96313579
- 可以通过`yarn application -list`命令来查看所有正在运行的任务列表,并从中找到Hive任务的应用ID,以此来检查任务的状态。 - **Cdh集群-yarn-resourcemanager-web-ui** - Cloudera Data Hub(CDH)提供了一个...
Hive是一个基于Hadoop的数据仓库工具,它本身并不存储数据,部署在...Hive也不提供资源调度系统,默认由Hadoop集群中的YARN集群来调度。 Hive可以将结构化的数据映射为一张数据库表,并提供HQL(HiveSQL)查询功能。
在更换网络接口卡后重新启动服务时,可能会遇到Hive连接失败的问题。此类问题通常与元数据存储中的异常有关,例如存在多个版本的元数据或者端口被其他服务占用。 1. **元数据版本冲突**: - **现象**:启动时提示`...
1. 将下载的Hive压缩包解压到指定目录,例如:/usr/local/hive。 2. 配置环境变量,在~/.bashrc或~/.bash_profile文件中添加以下内容: ``` export HIVE_HOME=/usr/local/hive export PATH=$PATH:$HIVE_HOME/bin ```...
npm install -g yarn yarn install 安装失败,使用官方下载的yarn.lock文件
### 基于CDH 6.3.0 搭建 Hive on Spark 及相关配置和调优 #### 概述 随着大数据技术的发展,Hadoop生态系统不断成熟与完善,其中Apache Hive作为数据仓库工具,支持通过SQL语句进行查询、分析存储在Hadoop文件系统...
本文将深入探讨Cloudera提供的YARN任务监控API,以及与之相关的Hadoop MapReduce API,帮助开发者更好地理解和利用这些工具进行集群管理和任务监控。 首先,我们关注YARN的Resource Manager API。Resource Manager...
安装和使用 Hive 需要先安装 Hadoop 环境,因为 Hive 依赖于 HDFS 进行数据存储,依赖于 YARN 或 MRv1 进行任务调度。安装完成后,配置 Hive 的环境变量,然后可以通过 Hive 提供的 CLI(命令行界面)或者 Beeline...
一键启动HDFS集群、YARN集群、Hive服务脚本
一键停止HDFS集群、YARN集群、Hive服务脚本
当遇到Java堆空间溢出错误时,这意味着Hive on Tez的内存配置可能不足。可以通过调整`hive.tez.container.size`和`hive.tez.java.opts`来增加内存分配,例如设置前者为9216MB,后者为6144MB。同时,如果物理内存或...
在前端开发领域,`Yarn` 是一个非常流行的依赖管理工具,它被广泛用于替代 `npm` 进行包的安装和管理。`Yarn` 提供了更快的速度、更可靠的重复性和更好的安全性。在某些情况下,我们可能需要对前端项目进行特定的...
Java提交Spark任务到YARN平台是一项常见的大数据处理操作,它结合了Java的编程能力和Spark的高性能计算框架,以及Hadoop的资源管理系统YARN。在这个过程中,开发者需要理解多个关键概念和配置步骤,以便有效地调度和...
1. **资源限制**:本地模式仅在单个节点上运行,如果任务所需资源超出节点容量,可能会影响其他进程或导致任务失败。 2. **不适合大规模任务**:对于大数据量的查询,本地模式可能无法充分利用集群资源,此时还是...
5. **资源管理**:显示Hive如何分配资源(如MapReduce或Tez任务)来执行查询,帮助管理员理解资源使用情况,以便进行更有效的集群管理。 在标签中提到的“软件/插件”,暗示可能有多种不同的实现方式。例如: - **...
3. **Windows环境下安装Hive**: 在Windows系统上安装Hive通常需要先安装Hadoop的本地模式或者伪分布式模式,因为Hive依赖于Hadoop的HDFS(Hadoop Distributed File System)和YARN(Yet Another Resource Negotiator...
yarn任务邮件监控及linux进程邮件监控,定时检查 ,本人在生产环境使用的,可以监控yarn任务,各种进程 如namenode ,java jar进程,如果不明白可以留言或者联系我(文档里面有联系方式)