草庐IT

平分分区

全部标签

hadoop - Spark 1.0.2(也是 1.1.0)卡在一个分区上

我在apachespark中遇到了一个奇怪的问题,我将不胜感激。从hdfs读取数据(并进行一些从json到对象的转换)后,下一阶段(处理所述对象)在处理完2个分区(总共512个)后失败。这种情况发生在大型数据集上(我注意到的最小数据集约为700兆,但可能会更低,我还没有缩小范围)。编辑:700megs是tgz文件大小,未压缩是6gigs。编辑2:同样的事情发生在spark1.1.0我在一台32核、60演出的机器上使用本地主机运行spark,设置如下:spark.akka.timeout=200spark.shuffle.consolidateFiles=truespark.kryose

scala - 获取 HDFS 中 Parquet 文件的大小,以便在 Scala 中使用 Spark 进行重新分区

我在HDFS上有许多parquet文件目录,每个目录包含几千个小的(大多数使用以下代码,我可以将本地parquet文件重新分区为更少的部分:valpqFile=sqlContext.read.parquet("file:/home/hadoop/data/file.parquet")pqFile.coalesce(4).write.save("file:/home/hadoop/data/fileSmaller.parquet")但我不知道如何通过Scala代码以编程方式获取HDFS上目录的大小,因此我无法计算出要传递给coalesce函数的分区数真实数据集。我该怎么做?或者在Spar

hadoop - 按现有字段分区 Hive 表?

我可以在插入现有字段时对Hive表进行分区吗?我有一个10GB的文件,其中包含一个日期字段和一个小时字段。我可以将这个文件加载到一个表中,然后插入覆盖到另一个使用这些字段作为分区的分区表中吗?像下面这样的东西会起作用吗?INSERTOVERWRITETABLEtealeaf_eventPARTITION(dt=evt.datestring,hour=evt.hour)SELECT*FROMstaging_eventevt;谢谢!特拉维斯 最佳答案 我刚刚遇到这个问题,试图回答同样的问题,它很有帮助,但还不够完整。简短的回答是肯定的,

hadoop - Presto 和 Hive 分区发现

我主要使用带有Hive连接器的Presto来连接到HiveMetastore。我的所有表都是指向存储在S3中的数据的外部表。我的主要问题是没有办法(至少我知道)在Presto中进行分区发现,所以在我开始在Presto中查询表之前,我需要切换到配置单元并运行msck修复表mytable在Presto中是否有更合理的方式来做到这一点? 最佳答案 我使用的是0.227版,以下内容对我有帮助:从hive.yourschema."yourtable$partitions"中选择*此选择返回目录中映射的所有分区。您可以像普通查询一样过滤、排序等

MariaDB mysql zabbix分区

持续更新最新版本…全自动安装方法下载一键安装脚本一键安装脚本执行命令全自动安装tar-zxvfzabbix-rocky_8_zabbix_6.0.x_mysql.tar.gzcdzabbix-rocky_8_zabbix_6.0.x_mysqlshautosetup.shinstallRocky8.9系统下载Rocky系统bug报告手动安装方法操作系统:Rocky8数据库版本[root@localhost/]#rpm-qa|grepMariaDBMariaDB-common-11.1.2-1.el8.x86_64MariaDB-shared-11.1.2-1.el8.x86_64MariaDB

hadoop - Apache hive MSCK REPAIR TABLE 未添加新分区

我是ApacheHive的新手。在处理外部表分区时,如果我直接向HDFS添加新分区,则在运行MSCKREPAIR表后不会添加新分区。以下是我试过的代码,--创建外部表hive>createexternaltablefactory(namestring,empidint,ageint)partitionedby(regionstring)>rowformatdelimitedfieldsterminatedby',';--详细的表格信息Location:hdfs://localhost.localdomain:8020/user/hive/warehouse/factoryTableTy

hadoop - Hive 1.1.0 将表分区类型从 int 更改为 string

我有一个表,它有一个int类型的分区,但我想将其转换为字符串。但是,我不知道该怎么做。表的描述是:Col1timestampCol2stringCol3stringCol4stringPart_colint#Partitioninformation#col_namedata_typecommentPart_colint我创建的分区是Part_col=0,Part_col=1,...,Part_col=23我想将它们更改为Part_col='0'等我在配置单元中运行这个命令:sethive.exec.dynamic.partitions=true;Altertabletbl_namepa

hadoop - 分区! hadoop是怎么做到的?使用哈希函数?默认功能是什么?

分区是确定哪个reducer实例将接收哪些中间键和值的过程。每个映射器必须为其所有输出(键、值)对确定哪个缩减器将接收它们。有必要对于任何键,无论哪个映射器实例生成它,目标分区都是相同的问题:hadoop是怎么做到的?使用哈希函数?默认功能是什么? 最佳答案 Hadoop中的默认分区器是HashPartitioner,它有一个名为getPartition的方法。它采用key.hashCode()&Integer.MAX_VALUE并使用reduce任务的数量找到模数。例如,如果有10个reduce任务,getPartition将为所

hadoop - 使用分区将数据从一个 Hive 表加载到另一个

我在一个Hive表中有数据,想将数据加载到另一个Hive表中。源表是reg_logs,它有2个分区,日期和小时。数据每小时加载到该表中。架构是:CREATEEXTERNALTABLEIFNOTEXISTSreg_logs(idint,region_codeint,countint)PARTITIONEDBY(utc_dateSTRING,utc_hourSTRING)ROWFORMATDELIMITEDFIELDSTERMINATEDBY'\t'STOREDASTEXTFILELOCATION'/ad_data/raw/reg_logs';目标表是reg_logs_org我想做的就是从

hadoop - 如何从具有特定分区的配置单元中选择数据?

大家。以下是与配置单元的交互:hive>showpartitionsTABLENAMEpt=2012.07.28.08/is_complete=1pt=2012.07.28.09/is_complete=1pt=2012.07.28.10/is_complete=1pt=2012.07.28.11/is_complete=1hive>select*fromTABLENAMEwherept='2012.07.28.10/is_complete=1'limit1;OKTimetaken:2.807secondshive>select*fromTABLENAMEwherept='2012.0