草庐IT

搞机分区

全部标签

apache-spark - 如何根据数据大小重新分区rdd

我正在开发SparkStreaming项目,该项目从Kafka获取数据并应用一些规则并将数据保存在Hive中。我的问题是数据摄取率不固定。60秒可能是100万条消息到来,也可能是1条。我想在Dstream上添加重新分区。因为Dstream只有3个分区,无法在一分钟内处理百万条记录。重新分区在少于20条记录时会出现问题。它在Hive中创建多个小文件。dataStream.map(_._2).repartition(20)我的问题是如何根据rdd大小对rdd进行重新分区。这样它就可以处理一条消息或100万条消息。 最佳答案 你无法以任何

mysql - sqoop导出mysql分区

我正在尝试使用sqoop从分区的配置单元表导出到mysql。起初我尝试做$sqoopexport--connectjdbc:mysql:///--username-P--tablesource_edge_daily--export-dir/path/to/table/--input-fields-terminated-by'\t'--verbose命令错误说Openfailedforfile/path/to/table//,attempttoopenadirectory当我指向分区目录时$sqoopexport--connectjdbc:mysql:///--username-P--t

hadoop - 在 MapReduce 中不运行分区器的多个 reducer

我试图理解在MR作业中运行多个reducer的概念,并了解到它是分区器决定哪个(键,值)对进入哪个reducer。我的问题是:我们可以在不运行partitioner的情况下运行多个reducer吗?那是一个有效的场景吗? 最佳答案 将分区器视为决定哪个化简器(桶)将处理映射器的特定键值(元素)输出的实体。默认的分区器使用键的散列函数在reducer中划分元素。打个比方,核心javamapcollection是如何使用hash函数来决定元素(key-value)的bucket(reducer)。在此过程中,它保证将相同键发送到单个re

hadoop - 自定义分区程序错误

我正在编写自己的自定义Partitioner(旧Api),下面是我扩展Partitioner类的代码:publicstaticclassWordPairPartitionerextendsPartitioner{@OverridepublicintgetPartition(WordPairwordPair,IntWritableintWritable,intnumPartitions){returnwordPair.getWord().hashCode()%numPartitions;}}设置JobConf:conf.setPartitionerClass(WordPairPartit

hadoop - hive 中的分区和分桶有什么区别?

这个问题在这里已经有了答案:WhatisthedifferencebetweenpartitioningandbucketingatableinHive?(8个答案)关闭7年前。我不清楚hive中的分区和分桶之间的区别,如果您能提供一些详细信息和示例,我将不胜感激。

Hadoop - sqoop 导出/导入分区表

谁能解释一下如何将分区表从hive导出到MYSQL数据库?如何从mysql导入到hive分区表?我已经阅读了google中的文档,但不确定可以使用的最新技术。谢谢 最佳答案 sqoop到hive分区导入1。在mysql中创建一个包含4个字段(id、姓名、年龄、性别)的表CREATETABLE`mon2`(`id`int,`name`varchar(43),`age`int,`sex`varchar(334))2。使用csvabc.csv将数据插入mysql表1,mahesh,23,m2,ramesh,32,m3,prerna,43,

amazon-s3 - 我应该如何对 s3 中的数据进行分区以便与 hadoop hive 一起使用?

我有一个s3存储桶,其中包含大约300gb的日志文件,没有特定的顺序。我想使用日期时间戳对这些数据进行分区以便在hadoop-hive中使用,以便与特定日期相关的日志行集中在同一个s3“文件夹”中。例如,1月1日的日志条目将位于与以下命名匹配的文件中:s3://bucket1/partitions/created_date=2010-01-01/file1s3://bucket1/partitions/created_date=2010-01-01/file2s3://bucket1/partitions/created_date=2010-01-01/file3等等转换数据的最佳方式

mysql - sqoop从hdfs导出到mysql是否保留分区

我已经创建了一个多节点hadoop集群并在其上安装了hive。另外,我在另一台远程机器上安装了MySQL。我打算将存储在HDFS中的数据导出到关系型数据库MySQL中。我研究了如何使用Sqoop完成此操作。所以我发现我需要在MySQL中创建一个表,该表具有相同顺序的目标列(与Hive中存在的一样),并具有适当的SQL类型。然后使用sqoopexport命令。我的问题是:如果表在Hive中分区,并且在MySQL中创建表时我相应地对其进行分区,sqoopexport命令会保留分区吗?我的问题类似于sqoopexportmysqlpartition.我想知道分区支持是否已添加到sqoop。这

sql - Hive 无法在 hbase 中为外部表创建分区列

我无法使用以下脚本在配置单元中创建带有分区列的外部表CREATEEXTERNALTABLEOpportunity_par(keystring,Opportunity__Idstring,Campaign__Namestring)>PARTITIONEDBY(eventDatetimestamp)>STOREDBY'org.apache.hadoop.hive.hbase.HBaseStorageHandler'>WITHSERDEPROPERTIES("hbase.columns.mapping"=":key,cf2:Opportunity__Id,cf3:Campaign__Name

hadoop - Hive:一个分区中的多个文件

Hive:我可以添加位置很少的分区吗?例如,下面的查询是否有效?altertabledataaddpartition(year=2013,month=11,day=18)LOCATION'/path1/a.avro,/path2/b.avro..'; 最佳答案 是的,你可以。如果该分区已经存在于Hive(HDFS目录)中,那么您不需要运行任何hivealter命令。只需使用hadoop-fsput..例如你有一个hive分区表test(按dt分区):/用户/配置单元/仓库/测试/dt=20131216与文件:/user/hive/w