修改hive 默认fs为s3 遇到的坑
问题: hive我修改了 默认的f <property> <name>fs.defaultFS</name> <value>hdfs://。。。:8020</value> </property> 修改为<property> <name>fs.defaultFS</name> <value>s3://。。。</value> </property> 修改后执行窗口函数的时候会执行失败,如果不执行窗口函数的没问题。
失败hive命令简化版:select * ,row_number() over (partition by id order by utime desc) as sort_num from mobi_warehouse.table ; 成功命令简化版:select * from mobi_warehouse.table;
错误:FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.tez.TezTask
查看hive运行日志,发现报错如下:
INFO [main([])]: session.SessionState (SessionState.java:close(1573)) - Error closing tez session java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.io.IOException: Incomplete HDFS URI, no host: hdfs:///apps/tez/tez.tar.gz at org.apache.hadoop.hive.ql.exec.tez.TezSessionState.isOpen(TezSessionState.java:163) ~[hive-exec-2.3.2-amzn-2.jar:2.3.2-amzn-2] at org.apache.hadoop.hive.ql.exec.tez.TezSessionState.toString(TezSessionState.java:125) ~[hive-exec-2.3.2-amzn-2.jar:2.3.2-amzn-2] .....
这个错误指明无法找到 tez 执行引擎的 library 档案,这个路径 hdfs:///apps/tez/tez.tar.gz 表示它存储于 HDFS 上。 由于您已修改 fs.defaultFS 至 S3 桶,因此可行的解决方法是将 tez.tar.gz 也复制到您的 S3 桶中。 以下是我的操作步骤。
1. 将 tez.tar.gz 从 HDFS 上复制到 master node 的本地磁盘 $ hdfs dfs -copyToLocal /apps/tez/tez.tar.gz ./
2. 将 tez.tar.gz 复制到 S3 桶中 $ aws s3 cp ./tez.tar.gz s3://S3桶名称/
3. 修改 /etc/tez/conf/tez-site.xml, 找到 tez.lib.uris property, 并修改其值如下
<property>
<name>tez.lib.uris</name>
<value>s3://S3桶名称/tez.tar.gz</value>
</property>
修改后执行,发现仍然报如下错误:
Caused by: java.util.concurrent.ExecutionException: java.io.IOException: The ownership on the staging directory s3://mobimagic-microl-risk/tmp/hive/hadoop/_tez_session _dir/5db8dd84-5154-460d-9a6d-f875adb6fd6b is not as expected. It is owned by . The directory must be owned by the submitter hadoop or by hadoop at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[?:1.8.0_121] at java.util.concurrent.FutureTask.get(FutureTask.java:206) ~[?:1.8.0_121] at org.apache.hadoop.hive.ql.exec.tez.TezSessionState.isOpen(TezSessionState.java:168) ~[hive-exec-2.1.1-amzn-0.jar:2.1.1-amzn-0] ... 14 more Caused by: java.io.IOException: The ownership on the staging directory s3://mobimagic-microl-risk/tmp/hive/hadoop/_tez_session_dir/5db8dd84-5154-460d-9a6d-f875adb6fd6b is not as expected. It is owned by . The directory must be owned by the submitter hadoop or by hadoop
最终发现,当前hadoop版本是亚马逊的2.7.2,升级到2.8.3就根据如上配置就没问题了,把emr版本提高到5.12以上就可以了
如果帮到你了,请点下赞
转载注明出处
修改hive 默认fs为s3 遇到的坑的更多相关文章
- Hive默认数据库修改配置
此文是基于上一篇文章:Hive环境搭建及测试 因为Hive默认的数据库是derby,不支持同时开启两个./hive的命令终端: 而将Hive的默认数据库修改成mysql后,可以解决该问题. 仅在安装H ...
- MyEclipse使用总结——修改MyEclipse默认的Servlet和jsp代码模板
http://www.cnblogs.com/xdp-gacl/p/3769058.html 孤傲苍狼 只为成功找方法,不为失败找借口! MyEclipse使用总结——修改MyEclipse默认的 ...
- 修改MySQL默认字符集编码
好记心不如烂笔头,很多东西当时没记下来,过了就忘了,下次用到时又得浪费好多时间才能解决.今天又遇到修改MySQL默认字符集编码的问题,折腾了半天解决了,赶快记录下来,以后就不用每次折腾了. 查看MyS ...
- Mysql 修改字段默认值
环境:MySQL 5.7.13 问题描述:建表的时候,users_info表的role_id字段没有默认值,后期发现注册的时候,需要提供给用户一个默认角色,也就是给role_id字段一个默认值. 当前 ...
- SQL SERVER 2012 修改数据库默认位置不立即生效
今天修改SQL SERVER 2012的数据库默认位置:即数据文件.日志文件默认位置时遇到一个问题,单击"服务器属性"(Server Properties)--> 数据库设置 ...
- xampp修改mysql默认密码详解
在这里介绍xampp修改mysql默认密码的大概过程是先利用xampp的phpmyadmin进入修改mysql密码,修改之后我们再修改xampp中phpmyadmin的密码,这样就完整的修改mysql ...
- RHEL7 修改SSH默认端口及修改SELinux运行状态
RHEL7安装后,默认开启SSH服务以便远程配置,但默认端口22并不安全,一般不建议使用默认端口,那就修改SSH默认端口.在sshd_config里面的修改RHEL7.0上修改和7.0以下类似,但要注 ...
- 修改wamp默认网站目录
使用WAMP集成环境,如何更改web根目录 做php开发使用WAMP集成环境的同学大部分有过这样的经历: 如果你试图修改web根目录,那么你肯定会想到要修改apache/apache2.2.11/co ...
- linux查看修改线程默认栈空间大小(ulimit -s)
linux查看修改线程默认栈空间大小 ulimit -s 1.通过命令 ulimit -s 查看linux的默认栈空间大小,默认情况下 为10240 即10M 2.通过命令 ulimit -s 设置大 ...
随机推荐
- Code First项目Migrations
关于Enable-Migrations指令说明我们知道,Enable-Migrations的作用是在Code First项目中使用数据迁移,通过get-help Enable-Migrations查看 ...
- SpringBoot整合MyBatis的分页插件PageHelper
1.导入依赖(maven) <dependency> <groupId>com.github.pagehelper</groupId> <artifactId ...
- ext grid添加2行topbar
bbar: paginToolbar(this.getStore()), dockedItems: [{ xtype: 'toolbar', dock: 'top', items: me.create ...
- js中with的作用
js中with的作用当一个对象有多个需要操作的属性或方法时,可以使用如<体>试验<script type=“text/javascript”>var o=文件.创建元素(“DI ...
- GitHub使用--01
1.Git下载与安装 Git网站下载地址https://git-scm.com/downloads 2.本地Git使用 在存储代码仓库的文件夹下右键 git bash here 初始化仓库 git i ...
- openlayers加载天地图过程中遇到跨域问题
// 采用openlayers加载天地图 var layer = new ol.layer.Tile({ source: new ol.source.XYZ({ // crossOrigin: 'An ...
- Entity Framework:三种开发模式实现数据访问
原文地址 http://blog.csdn.net/syaguang2006/article/details/19606715 前言 Entity Framework支持Database First. ...
- Linux服务器性能检查教程
一.uptime命令 这个命令可以快速查看机器的负载情况.在Linux系统中,这些数据表示等待CPU资源的进程和阻塞在不可中断IO进程(进程状态为D)的数量.这些数据可以让我们对系统资源使用有一个宏观 ...
- Delphi 使用Query组件的SQL查询
樊伟胜
- Winfrom TextBox 添加水印文字 + 字体颜色
using System.Drawing; using System.Windows.Forms; namespace KK.WaterMark.Control { public partial cl ...