草庐IT

python - 为什么配置单元试图在 hdfs 中写入/用户?

使用如下所示的简单HiveQL查询:SELECTevent_typeFROM{{table}}wheredt=20140103limit10;{{table}}部分只是通过Jinja2使用的运行器代码插入。我正在使用来自python的subprocess.Popen在配置单元命令行上使用-e标志运行我的查询。出于某种原因,此设置试图写入HDFS中的常规/user目录?Sudo命令无效。产生的错误如下:JobSubmissionfailedwithexception:org.apache.hadoop.security.AccessControlException(Permissiond

hadoop - 从多个 Hive 表中获取记录而无需连接

我有2个表:表1描述:countint表2描述:count_valint我从上面的表中获取字段计数,count_val并插入到另一个审计表(table3)中。表3描述:countintcount_valint我正在尝试将这2个表的记录计数记录到每个作业运行的审计表中。感谢您的任何建议。谢谢! 最佳答案 如果您只需要聚合(如求和),解决方案是使用UNIONINSERTINTOTABLEauditSELECTSUM(count),SUM(count_val)FROM(SELECTt1.count,0ascount_valFROMtabl

hadoop - 为什么我在安装 HDinsight 后运行了多个 Java 实例?

我在台式计算机上安装了HDInsight以学习使用Hive。当我重新启动计算机并登录我的个人资料时,一切都变慢了。我发现Hadoop正在运行Java.exe的多个实例。有没有办法限制Hadoop为此使用的内存量? 最佳答案 Hadoop运行多个Java实例的原因是因为Hadoop有各种守护进程,如namenode、secondarynamenode、datanode、jobtracker、tasktracker执行各种任务,每个守护进程都是一个Java进程。我不确定HDInsight,但在ApacheHadoop中,您可以通过在通常

performance - Hive 查询卡在执行中间

同事们,我在配置单元中使用sql脚本执行bash文件时遇到问题-它总是卡在同一个地方map=100%,reduce=67%我尝试使用具有不同变体和其他调整特性的映射器和缩减器数量:SEThive.exec.parallel=true;SEThive.default.fileformat=RCFILE;SEThive.stats.autogather=false;SEThive.exec.compress.output=true;SETmapred.output.compression.codec=org.apache.hadoop.io.compress.SnappyCodec;SET

hadoop - Pig 的 COGROUP 运算符如何工作?

这里的COGROUP运算符是如何工作的?在最后两行输出中我们如何以及为什么得到空包(没有网站详细解释COGROUP中的数据排列)?A=load'student'as(name:chararray,age:int,gpa:float);B=load'student'as(name:chararray,age:int,gpa:float);dumpB;(joe,18,2.5)(sam,,3.0)(bob,,3.5)X=cogroupAbyage,Bbyage;dumpX;(18,{(joe,18,2.5)},{(joe,18,2.5)})(,{(sam,,3.0),(bob,,3.5)},

hadoop - 仅基于月/年对配置单元表进行分区或分桶以优化查询

我正在构建一个包含大约40万行消息传递应用数据的表。当前表的列看起来像这样:消息标识符(整数)|发件人用户ID(整数)|other_col(字符串)|other_col2(int)|create_dt(时间戳)我将来要运行的很多查询都将依赖于涉及create_dt列的where子句。因为我预计这张表会增长,所以我想立即尝试优化它。我知道分区是一种方式,但是当我根据create_dt对其进行分区时,结果分区太多,因为我的每个日期都可以追溯到2013年11月。有没有办法改为按日期范围进行分区?每3个月分区一次怎么样?甚至每个月?如果这是可能的-我将来可能有太多分区导致效率低下吗?还有哪些其

hadoop - 使用 sqoop 将数据从 Hive 导出到 rdbms 时如何处理主键

这是我的场景,我在配置单元仓库中有一个数据,我想将此数据导出到mysql中名为“测试”数据库的“示例”表中。如果一列是sample.test中的主键,并且hive中的数据(我们正在导出)在该键下有重复值,那么作业显然会失败,那么我该如何处理这种情况?提前致谢 最佳答案 如果你希望你的mysql表只包含重复项中的最后一行,你可以使用以下内容:sqoopexport--connectjdbc:mysql:///test-tablesample--usernameroot-P--export-dir/user/hive/warehouse

sql - 使用 PARTITION BY (HIVE) 时如何过滤掉组中的重复元素

假设我有下表(动物):**Color****Species****Weight**WhiteDog20WhiteDog8WhiteDog33BlackDog55BrownDog80WhiteCat10BlackCat14WhiteCat9我想按物种分组,过滤每个物种内的独特颜色,并为每个过滤组找到两种最亮的动物。生成的表格应如下所示:**Color****Species****Weight**WhiteDog8BlackDog55WhiteCat9BlackCat14我正在使用以下查询(我知道这是不正确的):SELECTcolor,species,weightFROM(SELECTsp

sql - 通过选择在 Hive 中插入值

我正在尝试在配置单元列中插入某些派生值,并想知道为什么它不起作用。我的代码如下。Insertintomonthasselectmonth(datestamp)asmonthfromgc_1;此处month列已存在,其中包含NULL值,gc_1是表名。我不确定是否可以使用month、date等函数从另一列添加到hive中。 最佳答案 从你的问题来看,我认为你正在努力实现以下目标:有一个名为gc_1的表,其中已经存在一个名为datestamp的列,它可能包含一个日期适合作为month函数参数的字符串。然后您想在gc_1中创建一个名为mo

hadoop - 语义异常 [错误 10007] : Ambiguous column reference _c1

我在配置单元查询中使用四级嵌套时遇到问题。以下是我正在执行的查询-SELECT*,SUM(qtod.amount)OVER(PARTITIONBYqtod.id,qtod.year_begin_dateORDERBYqtod.tran_date)FROM(SELECT*,SUM(mtod.amount)OVER(PARTITIONBYmtod.id,mtod.quarter_begin_dateORDERBYmtod.tran_date)FROM(SELECT*,SUM(wtod.amount)OVER(PARTITIONBYwtod.id,wtod.month_begin_dateO