草庐IT

平分分区

全部标签

hadoop - hive |无法创建分区表 |解析异常

我正在尝试从HiveCLI创建一个分区表,CREATEEXTERNALTABLEIFNOTEXISTSstocks(ymdSTRING,price_openFLOAT,price_highFLOAT,price_lowFLOAT,price_closeFLOAT,volumeFLOAT,price_adj_closeFLOAT)PARTITIONEDBY(exchangeSTRING,symbolSTRING)ROWFORMATDELIMITEDFIELDSTERMINATEDBY',';但是终端抛出异常而不是“ParseException”。错误转储,NoViableAltExcep

hadoop - HIVE 插入到动态分区表永远运行/挂起

假设我们有2个配置单元表,tableA和tableB。我正在分解表A,将它与其他几个表连接起来,然后插入到表B中。当tableB没有分区或使用静态分区完成插入时,插入工作正常。然而,当存在动态分区时,mapreduce作业甚至不会启动。它有点挂起。为了调试更多,我在初始化配置单元时设置了以下参数:-hiveconfhive.root.logger=DEBUG,console现在,我可以看到作业实际上并没有挂起。它不断打印日志,如:........16/02/1109:25:50[main]:INFOoptimizer.SortedDynPartitionOptimizer:Sorted

hadoop - 配置单元:没有位置的外部分区表

是否可以创建没有位置的外部分区表?我想稍后添加所有位置以及分区。我试过:CREATEEXTERNALTABLEIFNOTEXISTSa.b(lineSTRING)COMMENT'abc'ROWFORMATDELIMITEDFIELDSTERMINATEDBY'\n'STOREDASTEXTFILEPARTITIONEDBYday;但我得到了ParseException:在“TEXTFILE”附近的“PARTITIONED”处缺少EOF 最佳答案 我不这么认为,如alterlocation中所说.但无论如何,我认为您的查询有一些错误,

hadoop - 如何在不移动数据的情况下从具有不同分区的另一个配置单元表创建配置单元表?

我有一个表database1.table1表'database1.table1'有2列和1个分区列:columnA,columnB按columnC分区我需要创建一个没有分区但有两列columnA、columnB的表“database2.table2”。我需要将数据从database1.table1复制到database2.table2(不删除database1.table1中的任何数据)我尝试了以下操作,但数据被移动了。我只需要复制数据CREATETABLEDATABASE2.TABLE2SELECTCOLUMNA,COLUMNBFROMDATABASE1.TABLE1注意:我需要包含

java - 将动态值传递给 MapReduce 中的分区程序代码

我写了下面的代码来过滤掉与141不匹配的行,但我希望这个141是动态的,并且想在执行这个mapreduce程序时从命令行传递一个值。我不确定如何将参数从主函数传递到分区程序类。publicclassCharecterCountPartitionerextendsPartitioner{@OverridepublicintgetPartition(Textkey,IntWritablevalue,intnumReduceTasks){//intline_length=Integer.parseInt();if(value.get()==141){return0;}else{return1

linux - 向 HDFS 中的一个数据节点添加一个新的硬盘驱动器或磁盘分区

我有一个集群,由一个master节点(它只运行namenode)和两个从节点组成,即slave1和slave2(它运行数据节点)。现在,我只想给slave1添加一个新的硬盘,并用它来增加数据节点的容量。我在互联网上遵循了不同的教程和方法,并且我了解了一般的操作方法。我的问题是,仅将分区/硬盘驱动器添加到slave1会引发问题,因为在hdfs-site.xml中添加的新分区/硬盘驱动器的路径不会slave2找不到。这是我在slave1上所做的(新磁盘在sdb上):我运行fdisk/dev/sdb来创建分区。该过程毫无问题地结束,创建了/dev/sdb1。我用mkfs.ext4/dev/s

sql - 如何在配置单元(HQL)中获取倒数第二个分区

我有一个包含以下分区的配置单元表:part_date='07-12-2016'part_date='04-12-2016'part_date='01-12-2016'现在如何在配置单元查询中获取小于最新分区的第一个分区。假设分区值是数据被引入表中的日期。在这种情况下,它应该是part_date='04-12-2016'。所以查询应该是这样的:从table_A中选择part_date,其中part_date>second_last_partition(即04-12-2016);提前致谢 最佳答案 您可以使用row_number窗口函数

hadoop - 我可以直接考虑类似于源 (Teradata) 表中存在的分区列的 Hive 分区列吗?

我可以直接考虑与源(Teradata)表中存在的分区列类似的Hive分区列吗?或者我是否考虑过任何其他参数来决定Hive分区列?请帮忙。 最佳答案 这不是最佳实践。如果您以这种方式创建数据,那么试图直接访问HDFS数据的人将不会在每个分区中找到“分区列”。例如,假设Teradata表按date列分区,然后如果hive表也按date分区,则HDFS分区表示2016-08-06将没有日期字段。因此,为了方便最终用户按虚拟列进行分区,请说date_d,它的值与日期列完全相同。 关于hadoop

hadoop - Hive - 将数据插入分区表 : partition not found

我在尝试向Hive外部分区表中插入新数据时遇到问题。表是按天分区的,我得到的错误是:FAILED:SemanticException[Error10006]:Line1:51Partitionnotfound''18102016''我的查询如下:ALTERTABLEmy_source_tableRECOVERPARTITIONS;INSERTOVERWRITETABLEmy_dest_tablePARTITION(d='18102016')SELECT'III'ASprimary_alias_type,iii_idASprimary_alias_id,FROMmy_source_tab

hadoop - 如何为 Hive 的分区表指定 HDFS Location

我有一个hdfs目录,因为我有很多文件。这个目录正在获取连续数据。现在我正在尝试为该HDFS位置创建一个外部分区表,如下所示,createexternaltablesensor_data(sensor_namestring,alert_typestring,isvalid_alertboolean,valuestring,alert_generated_timebigint)partitionedby(mac_idstring)clusteredby(sensor_name)into13bucketsrowformatdelimitedfieldsterminatedby'|'line