Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark Hadoop文件格式 我需要考虑如何将数据写入Hadoop。< /P>_Apache Spark_Hadoop_Hive_Avro_Parquet - Fatal编程技术网

Apache spark Hadoop文件格式 我需要考虑如何将数据写入Hadoop。< /P>

Apache spark Hadoop文件格式 我需要考虑如何将数据写入Hadoop。< /P>,apache-spark,hadoop,hive,avro,parquet,Apache Spark,Hadoop,Hive,Avro,Parquet,我在使用Spark,我从Kafka主题中得到一条消息,每条消息都在JSON记录中 我每天有大约200B的记录 数据字段可能不会有太多变化,但将来可能会有变化 我需要快速写入和快速读取,磁盘大小小 我应该选择什么?Avro还是拼花地板 我也读了下面的内容 但还是不知道该选什么 有什么建议吗?如果您关心存储和查询,最佳存储类型如下 兽人 拼花地板 阿夫罗 JSON CSV/TSV纯结构化文本 非结构化文本 如果您的磁盘空间有限,并且希望牺牲检索,那么Snappy或Bzip2将是最好的选择,而Bzip

我在使用Spark,我从Kafka主题中得到一条消息,每条消息都在JSON记录中

我每天有大约200B的记录

数据字段可能不会有太多变化,但将来可能会有变化

我需要快速写入和快速读取,磁盘大小小

我应该选择什么?Avro还是拼花地板

我也读了下面的内容

但还是不知道该选什么


有什么建议吗?

如果您关心存储和查询,最佳存储类型如下

兽人 拼花地板 阿夫罗 JSON CSV/TSV纯结构化文本 非结构化文本 如果您的磁盘空间有限,并且希望牺牲检索,那么Snappy或Bzip2将是最好的选择,而Bzip2的压缩程度更高

通常,我看到人们直接将JSON数据写入Hadoop,然后每天批处理一个作业以将其转换为更可选的格式,例如,Hadoop更喜欢非常大的文件而不是很多小的文件

如果您关心检索速度,请使用HBase或其他数据库。Hive不是数据库,但至少需要根据业务需要将流式数据压缩到更大的时间块中

Avro本机支持模式演化,如果您能够在现有Kafka集群旁边安装合流模式注册表,那么您可以使用Kafka HDFS Connect立即从Avro或JSON写入拼花,我认为,假设您在消息中有一个模式字段和一个配置单元表一起写入HDFS


其他选项包括apachenifi或streamset。换句话说,不要重新发明编写火花代码的轮子,把卡夫卡拉到HDFS中去

也许两者都有。看看Uber的Hoodie——为什么他们需要一个用于热数据的数据存储,包括更新/删除操作,再加上另一个用于冷数据的读优化数据存储,以及热数据和冷数据的增量合并;再加上在顶部的一个抽象,在阅读时可以同时利用这两个功能。这正是HBase、Cassandra或RocksDB所做的,但用于随机键/值访问,而Uber需要它来进行批量读取和分析。此外,JSON非常冗长。非常冗长。在大规模的情况下,卡夫卡可能会开始被巨大的容量所窒息——除非你切换到AVRO或类似的Criteo选择Protobuf,或者找到CloudFlare所做的最好的压缩选项,嗨,谢谢你的回答。关于我看到人们直接将JSON数据写入Hadoop,然后批处理一个作业,每天将其转换。我可以用一列只包含JSON字符串的内容将JSON写入临时表,然后制作一个将其转换为我的表的作业吗?就性能而言,我建议您在配置单元中使用JSONSerde,而不是字符串列,但您不需要表。您可以只写JSON,然后让Spark或Pig,例如,自己将其处理到另一个表中。您的意思是,我可以只将JSON写到我定义为JsonSerDe的表中,使用JSON列,然后让Spark/Pig将JSON字段处理到另一个表中?您可以将JSON格式的明文写入HDFS。您可以选择使用JsonSerde在其上创建配置单元表。从那里,您可以使用任何与配置单元兼容的库进行查询和解析。或者您可以使用SparkSQL直接在HDFS中读回JSON,跳过配置单元,使用给定或推断的模式,好的,关于读取性能?最好使用JSON字段创建一个表,并使用SparkSQL作为拼花文件来编写它?