草庐IT

hadoop - hive 到 Hbase : wrong use case for Spark?

我最近遇到了一个关于将数据从Hive迁移到Hbase的问题。我们项目在cdh5.5.1集群上使用Spark(7个节点在SUSELinuxEnterprise上运行,具有48个内核,每个256GBRAM,hadoop2.6)。作为初学者,我认为使用Spark从Hive加载表数据是个好主意。我正在使用正确的Hive列/HbaseColumnFamily和列映射在HBase中插入数据。我找到了一些关于如何将数据批量插入Hbase的解决方案,例如我们可以使用hbaseContext.bulkPut或rdd.saveAsHadoopDataset(我测试了两者的结果相似).结果是一个功能正常的程

csv - 如何将所有字段转义的 Hive 表导出为 CSV

如何以如下格式导出Hive表:"aaa,aaa","bbbbbb","cccccc"我已经累了:1)创建一个基于初始表的临时表"rowformat...escapedby'\042'"2)使用"insertoverwrite...rowformat...escapeby'\042'"两者都只转义包含一些特殊字符的字段,如下所示:"aaa,aaa",bbbbbb,cccccc我有Hive版本1.1.0-cdh5.5.0 最佳答案 如果您使用的是Hive0.14及更高版本,则可以使用CSVSerde您可以像这样指定serde属性:CRE

hadoop - Hive 授予对数据库范围的权限

是否可以授予hive数据库上的所有表。HBase支持在全局范围、命名空间范围内授予权限并上升到列限定符。我已经在配置单元中配置了基于SQL标准的授权。是否可以直接授予数据​​库而不是特定表或View的权限?将对数据库database_name的选择授予用户user_name在基于hivenativesql标准的授权中是否有实现上述命令的选项。提前致谢。 最佳答案 使用基本身份验证这是不可能的。您需要使用/启用sentry(cloudera)或ranger(hortonworks)以获得此精细权限。

mysql - 从 Hive 表中提取 XML 数据并解析数据

我想从配置单元表中提取特定的列值。该列包含XML数据。如何解析XML数据并从该特定XML列中提取名称和值。我还想将提取的数据插入到另一个Hive表中。 最佳答案 选项1:LanguageManualXPathUDF示例:selectxpath('','/descendant::c/ancestor::b/@id')fromt1limit1;[1","2]选项2:另一种实现方式是Hive-XML-SerDe在这两个选项中,您都需要具备Xpath表达式知识。如果要将提取的数据插入到另一个表中,请使用createtableasselect

hadoop - Hive 中异常的日期时间字符串解析

您好,我正在尝试在配置单元中解析以下字符串"2016-09-30T21:59:58.093Z"我想从中提取年、月、日和小时。我可以使用year()、day()和to_date()函数来提取日期,但我无法从中获取小时数。如果我这样做hour("2016-09-30T21:59:58.093Z")或unix_timestamp("2016-09-30T21:59:58.093Z")它们将返回NULL。有人可以提出建议吗?谢谢 最佳答案 hive>selectfrom_unixtime(unix_timestamp("2016-09-30

hadoop - hive -e 带分隔符

我正在尝试从配置单元表中导出数据,如下所示,但它正在生成以制表符作为分隔符的文件。导出时是否可以指定分隔符为逗号或制表符?hive-e"usedefault;sethive.cli.print.header=true;select*fromtest1;">/temp/test.txt(or.csv)谢谢J 最佳答案 您可以通过管道传输数据并使用简单的sed命令将数据转换为所需的输出格式。下面的sed命令用逗号替换制表符。默认输出是Tab。您可以相应地更改输出。hive-e"usedefault;sethive.cli.print.h

java - 如何修复 Hadoop : the Definitive Guide? 中 Hive UDAF 示例的 NoMatchingMethodException

我想计算温度的平均值。然后我创建了一个名为“mean”的UDAF。我按照书中建议的步骤进行操作并得到了NoMatchingMethodException。FAILED:NoMatchingMethodExceptionNomatchingmethodforclasscom.zzy.hadoopbook.hive.Meanwith(double).Possiblechoices:_FUNC_(struct)这是我的HiveQL:DROPTABLEIFEXISTSrecords3;CREATETABLErecords3(yearSTRING,temperatureDOUBLE,qualit

sql - Hive SQL Integer YYYYMM 前几个月

我想创建一个查询最近2个月的SQL语句。例如:Select*fromxwheresampledate目前我正在使用这个:(year(from_unixtime(unix_timestamp()))*100+month(from_unixtime(unix_timestamp())))-1但它在一年的前两个月返回错误的语句:(我的想法是用日期计算,然后把它改成yyyymm整数格式。有什么想法吗? 最佳答案 你能试试这个吗:SELECTcolomnFROMtableWHEREdate>(SELECTadd_months(from_uni

sql - 使用时间轴列作为 Hive 分区字段时出现异常

我正在尝试将数据从普通表加载到Hive分区表。这是我的普通表格语法:createtablex(namestring,date1string);这是我的新分区表语法:createtabley(namestring,date1string)partitionedby(timestamp1string);下面是我是如何加载数据到y的:insertintotableyPARTITION(SUBSTR(date1,0,2))selectname,date1fromx;这是我的异常(exception):FAILED:ParseExceptionline1:39missing)at'('near'

hadoop - 如何删除 Hive 中的两个分区列之一?

我创建了一个包含两个分区列的配置单元表,例如col1和col2,现在出于某些分析目的,我希望删除col2分区。基本上我希望从分区列列表中删除列-col2,但我不应该丢失col2中的数据。很明显,最终表应仅由col1分区,而col2也应存在于最终分区表中,但作为普通列而不是分区列。请提出前进的方向。 最佳答案 下面是最好的方法之一。只需更新配置单元分区:ALTERTABLEPARTITION(year=2018,month=05)SETLOCATION'hdfs://some/temp/location/tale_name/2018/