草庐IT

performance - hive 查询中 where 条件的顺序是否会影响查询性能?

我的HiveSQL查询有时会导致全表扫描并持续很长时间。因此我想知道where语句的顺序是否真的会影响查询的性能。例如查询具有基于日期构建的主键和区分对象的辅助键。我想只分析昨天的数据,这应该比全表扫描快得多。查询1:SELECTprimarykey,COALESCE(SUM(param1),0L),COALESCE(SUM(param2),0L),param3FROMTableWHEREparam1="abc"ANDparam2>0ANDprimarykey=yesterdaysdateGROUPBYparam3;查询2:SELECTprimarykey,COALESCE(SUM(p

java - Hive 无法在 hdfs 中写入数据

我们编写了一个Storm三叉戟拓扑,它将使用配置单元将数据插入到hdfs中,但是我们遇到了以下异常。我不确定发生了什么,我也没有在谷歌上找到任何帮助:(2015-08-2412:35:40o.a.h.h.s.AbstractRecordWriter[ERROR]Failedcreatingrecordupdaterjava.io.IOException:java.lang.InterruptedExceptionatorg.apache.hadoop.ipc.Client.call(Client.java:1448)~[hadoop-common-2.6.0.2.2.6.0-2800.

azure - 如何将数据上传到 HDInsight 中的 Hive?

我正在尝试将blob数据从Azureblob存储上传到Hive表,该表具有以下格式保存在名为myblob_test.csv的.csv文件中:以下脚本用于创建表:CREATETABLEIFNOTEXISTSAzureData.Events(DaySTRING,Event_TypeSTRING,Time_StampSTRING)ROWFORMATDELIMITEDFIELDSTERMINATEDBY','LINESTERMINATEDBY'\n'STOREDASTEXTFILELOCATION'/bigdatapoc1/azure-data-2/myblob_test.csv';我的文件保

oracle - 使用 sqoop 从 Oracle 到 hive 的日期导入问题

我正在尝试将数据从Oracle导入到配置单元。Oracle“LOAD_DATE”中有一列,其值的格式为“8/13/20152:55:17AM”。导入后,我得到的值类似于“2015-08-1302:55:17.0”。导入的数据中缺少“AM”。请给出导入正确数据的解决方案。这是我正在触发的命令,sqoopimport--connectjdbc:oracle:thin:@ipaddr/dbname--usernameuname--passwordpword--tabletname--hive-import--hive-tabledbname.tname-m1--null-字符串'\N'--n

hadoop - 同时使用 Hive 和 Impala 时出现表文件夹权限问题

我们使用最新版本的Hive和Impala。Impala正在使用LDAP进行身份验证,并通过Sentry完成授权。Hive访问尚未通过Sentry授权。我们正在从Impala创建表,而/user/hive/warehouse具有“hive”组的组级所有权,因此,文件夹权限是impala:hive。drwxrwx--T-impalahive02015-08-2421:16/user/hive/warehouse/test1.dbdrwxrwx--T-impalahive02015-08-1117:12/user/hive/warehouse/test1.db/events_test_ven

hadoop - 通过变量计算 Hive 中的滞后

我的输入表是这样的:guest_iddays1017910170101681016110210110290102551039910390请注意,天数按guest_id降序排列期望的输出表:guest_iddaysdays_diff101790101709101682101617102101010290111025535103990103909days_diff是guest_id的第一个订单差异(不是天数列) 最佳答案 您还需要有一个唯一的id列(否则Hive不知道您的行的顺序)。然后你可以自己加入id=id+1来获得你的差异:sel

hadoop - Oozie工作流中Hive action执行参数设置

我正在使用HiveAction通过Oozie执行查询。我将TEZ和MR设置为查询的执行引擎。如何设置最大可能数量的reducer以执行查询?目前,我正在使用mapred.reduce.tasks但它需要一个静态数字。真正的问题是,当我在hiveCLI上执行相同的查询时,Hive选择的reducer数量是最优的,而不是1;那么我的Oozie作业缺少什么设置,它为所有查询选择1个reducer? 最佳答案 通常控制Hive查询的reducer数量的理想方法是使用hive.exec.reducers.bytes.per.reducer属性

hadoop - HIVE 十进制 2 精度

在我的配置单元表中,实际值如下所示。100200.34512.365我想让它们看起来像:100.00200.3412.36这怎么可能? 最佳答案 您应该声明为十进制(5,2)。HiveDecimals.语法是DECIMAL(precision,scale)。精度是指这个数字的位数,包括点后面的数字。 关于hadoop-HIVE十进制2精度,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questio

csv - 加载到 Hive 时从平面文件中删除单引号

嘿,我正在为我的平面文件数据创建一个Hive外部表。我的平面文件中的数据是这样的:'abc',3,'xyz'当我将它加载到Hive表中时,它会用单引号显示结果。但我希望它是这样的:abc,3,xyz有什么办法吗? 最佳答案 我可以想到两种方法来获得所需的结果。使用hive中可用的现有字符串函数-SUBSTR和LENGTH。selectSUBSTR("\'abc\'",2,length("\'abc\'")-2),SUBSTR("\'3\'",2,length("\'3\'")-2),SUBSTR("\'xyz\'",2,length

hadoop - 用于处理非常大的字典文件的 Hadoop/Hive 分布式缓存的替代解决方案?

我们正在Hadoop和Hive上创建一个类似字典的应用程序。大体过程是对一个大的固定字典(大约100G,如多语言WordNet字典)批量扫描数十亿的日志数​​据(例如单词)。我们已经有了一个单机版本的java应用程序(我们称之为“singleApp”)来查询这个字典。我们目前无法修改此java应用程序或字典文件,因此我们无法重新设计和重新编写一个完整的新MapReduce应用程序。我们需要使用这个单机版本的Java应用程序作为构建block,将其扩展到MapReduce版本。目前,我们可以通过调用此“singleApp”并使用分布式缓存传递字典子集(例如1G字典)来创建MapReduc