- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我们使用 Hiveserver2(在 Hortonworks HDP2.2 发行版上)创建新集群。一段时间后,我们在 hdfs 上的/tmp/hive/hive 中有超过 1048576 个目录,因为 hive 服务器在这个位置生成它。
有人遇到过类似的问题吗?来自 hive 服务器的日志:
2015-08-31 06:48:15,828 WARN [HiveServer2-Handler-Pool: Thread-1104]: conf.HiveConf (HiveConf.java:initialize(2499)) - HiveConf of name hive.heapsize does not exist
2015-08-31 06:48:15,829 WARN [HiveServer2-Handler-Pool: Thread-1104]: conf.HiveConf (HiveConf.java:initialize(2499)) - HiveConf of name hive.server2.enable.impersonation does not exist
2015-08-31 06:48:15,829 WARN [HiveServer2-Handler-Pool: Thread-1104]: conf.HiveConf (HiveConf.java:initialize(2499)) - HiveConf of name hive.auto.convert.sortmerge.join.noconditionaltask does not exist
2015-08-31 06:48:15,833 INFO [HiveServer2-Handler-Pool: Thread-1104]: thrift.ThriftCLIService (ThriftCLIService.java:OpenSession(232)) - Client protocol version: HIVE_CLI_SERVICE_PROTOCOL_V6
2015-08-31 06:48:15,835 INFO [HiveServer2-Handler-Pool: Thread-1104]: session.SessionState (SessionState.java:createPath(558)) - Created local directory: /tmp/ffd9e5e7-7a4e-472e-b5f1-9c7f8acb0bff_resources
2015-08-31 06:48:15,883 INFO [HiveServer2-Handler-Pool: Thread-1104]: session.SessionState (SessionState.java:createPath(558)) - Created HDFS directory: /tmp/hive/hive/ffd9e5e7-7a4e-472e-b5f1-9c7f8acb0bff
2015-08-31 06:48:15,884 INFO [HiveServer2-Handler-Pool: Thread-1104]: session.SessionState (SessionState.java:createPath(558)) - Created local directory: /tmp/hive/ffd9e5e7-7a4e-472e-b5f1-9c7f8acb0bff
2015-08-31 06:48:16,064 INFO [HiveServer2-Handler-Pool: Thread-1104]: session.SessionState (SessionState.java:createPath(558)) - Created HDFS directory: /tmp/hive/hive/ffd9e5e7-7a4e-472e-b5f1-9c7f8acb0bff/_tmp_space.db
2015-08-31 06:48:16,065 INFO [HiveServer2-Handler-Pool: Thread-1104]: session.SessionState (SessionState.java:start(460)) - No Tez session required at this point. hive.execution.engine=mr.
创建 session 时的 Hiveserver 方法:
/**
* Create dirs & session paths for this session:
* 1. HDFS scratch dir
* 2. Local scratch dir
* 3. Local downloaded resource dir
* 4. HDFS session path
* 5. Local session path
* 6. HDFS temp table space
* @param userName
* @throws IOException
*/
private void createSessionDirs(String userName) throws IOException {
HiveConf conf = getConf();
Path rootHDFSDirPath = createRootHDFSDir(conf);
// Now create session specific dirs
String scratchDirPermission = HiveConf.getVar(conf, HiveConf.ConfVars.SCRATCHDIRPERMISSION);
Path path;
// 1. HDFS scratch dir
path = new Path(rootHDFSDirPath, userName);
hdfsScratchDirURIString = path.toUri().toString();
createPath(conf, path, scratchDirPermission, false, false);
// 2. Local scratch dir
path = new Path(HiveConf.getVar(conf, HiveConf.ConfVars.LOCALSCRATCHDIR));
createPath(conf, path, scratchDirPermission, true, false);
// 3. Download resources dir
path = new Path(HiveConf.getVar(conf, HiveConf.ConfVars.DOWNLOADED_RESOURCES_DIR));
createPath(conf, path, scratchDirPermission, true, false);
// Finally, create session paths for this session
// Local & non-local tmp location is configurable. however it is the same across
// all external file systems
String sessionId = getSessionId();
// 4. HDFS session path
hdfsSessionPath = new Path(hdfsScratchDirURIString, sessionId);
createPath(conf, hdfsSessionPath, scratchDirPermission, false, true);
conf.set(HDFS_SESSION_PATH_KEY, hdfsSessionPath.toUri().toString());
// 5. Local session path
localSessionPath = new Path(HiveConf.getVar(conf, HiveConf.ConfVars.LOCALSCRATCHDIR), sessionId);
createPath(conf, localSessionPath, scratchDirPermission, true, true);
conf.set(LOCAL_SESSION_PATH_KEY, localSessionPath.toUri().toString());
// 6. HDFS temp table space
hdfsTmpTableSpace = new Path(hdfsSessionPath, TMP_PREFIX);
createPath(conf, hdfsTmpTableSpace, scratchDirPermission, false, true);
conf.set(TMP_TABLE_SPACE_KEY, hdfsTmpTableSpace.toUri().toString());
}
最佳答案
我们之前遇到过类似的问题。许多 hive 在运行 Hive 客户端和默认 HDFS 实例的机器上使用临时文件夹。这些文件夹用于存储每个查询的临时/中间数据集,并且通常在查询完成时由 Hive 客户端清理。但是,在 Hive 客户端异常终止的情况下,可能会留下一些数据。配置详情如下:
在 HDFS 集群上,这默认设置为/tmp/hive- 并由配置变量 hive.exec.scratchdir 控制在客户端机器上,这被硬编码到/tmp/请注意,当将数据写入表/分区时,Hive 将首先写入目标表文件系统上的临时位置(使用 hive.exec.scratchdir 作为临时位置),然后将数据移动到目标表。这适用于所有情况——无论表是存储在 HDFS 中(正常情况)还是存储在 S3 甚至 NFS 等文件系统中。
因此您可以使用手动脚本或作业定期清理临时位置,或者您可以使用 cron shell 脚本清理 30 或 60 天的数据
关于hadoop - HiveServer2在hdfs/tmp/hive/hive中生成了很多目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32306404/
我正在使用 springboot 2.1.4 和 EmbeddedTomcat。当我运行服务器时,会创建/tmp/jar_cache###.tmp 。我该如何处理 jar_cache###.tmp?
我有一个简单的上传表单,这里是开始和结束标签: 我在提交时收到 500 内部服务器错误。并且 apache 日志显示以下条目(主机名和 ip 已编辑): [Tue Feb 14 00:08:32
尽管用户是 sudo 用户,但远程主机在运行 Ansible playbook 时仍会引发错误。 "/usr/bin/python: can't open file '/home/ludd/.ansi
在运行 sqoop 命令时,它会运行 java 代码并将它们存储到 /tmp 中。目录所以,它给了我以下错误: (Could not create temporary directory: /tmp/
当我尝试将本地存储库推送到服务器时,我的 Ubuntu 服务器突然出现此错误。谁能帮我解决这个问题。 最佳答案 那是服务器端的 python 说“嘿!这 4 个目录都不是我可以写临时文件的地方!”。检
SQL 2005 中两种类型的临时表@tmp 与#tmp 之间有什么区别? 他们的其他类型是我不知道的吗? 谢谢 最佳答案 #tmp是一个临时表,主要表现得像一个真正的表。它可以有索引,可以有统计数据
我在 Hadoop 文档中看到 1 hadoop.tmp.dir 的默认值是 /tmp/hadoop-${user.name} 但如果我这样设置,当机器重新启动时,我是否丢失数据? 我的意思是,也许我
我发现有关 php 和 /tmp 文件夹的奇怪行为。 Php 在使用 /tmp 时使用另一个文件夹。 PHP 5.6.7,nginx,php-fpm。 我以两种方式执行相同的脚本:通过浏览器和通过 s
当我在hadoop集群上运行java map reduce代码时,出现以下错误消息: -sh-3.2$ hadoop jar PearsonSim1.jar PearsonSim.PearsonDri
我正在尝试编译 Tizen 源代码。编译工具使用rpm构建环境。在编译特定包时,我遇到 rpm 构建问题“Bad exit status from/var/tmp/rpm-tmp.b1DgAt (%b
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 9 年前。 Improve this
我和我的一位同事就此进行了讨论。并且想知道更多人对哪个“可以”更优的看法?PS:如果代码只是一个 hello world 程序,-O3 会产生相同的代码,但我们讨论的是此代码段位于大型项目中间的场景。
我在提交时遇到以下错误, 无法打开 .svn\tmp\tempfile.tmp:访问被拒绝。 当我开始在谷歌搜索这个错误时,我开始知道可能是因为 McAfee 杀毒软件,这个错误可能会出现。如果 Mc
我正在开发一个网站,该网站要求我创建上传 .csv 文件的函数。上传文件时,提示格式错误,并显示以下消息: C:\xampp\tmp\php9F4F.tmp 我应该如何解决该错误,然后将 csv 文件
我正在尝试构建一个 rpm 文件来安装 ATM 驱动程序。构建 rpm 文件的最后一步是使用此 rpmbuild 命令 [anjanu@matrix rpmbuild]$ rpmbuild -bb S
我有一个java spring boot应用程序,它实现了多线程,其中一个线程订阅ZMQ,四个并行线程根据一些预定的时间间隔对接收到的数据执行一些处理。当 jar 在 Linux VM 上运行并使用命
我有一个奇怪的 RPM 问题,我是新手所以请多多包涵...我创建了规范文件,当我运行构建时出现错误: /var/tmp/rpm-tmp.ajKra4: 第 36 行:cd: hero-01: 没有那个
在过去的几年里,我一直在使用 Cruise Control .NET 持续集成服务器,它运行良好。最近,我在启动 WebDashboard 后开始收到此错误。有人对如何解决此错误有任何建议吗?我是不是
情况是此应用程序在/tmp 中需要更多空间。目前我的 tmp 文件夹在 root 的分区中。临时创建指向不同分区的 tmp 符号链接(symbolic link)以利用更大的空间是否安全? 最佳答案
ls -1/tmp/dir/返回: file1.txt file2.txt ls -1/tmp/dir/* 返回: /tmp/dir/file1.txt /tmp/dir/file2.txt 为什么会
我是一名优秀的程序员,十分优秀!