Hadoop 文件格式
Hadoop File Formats
我需要考虑如何将我的数据写入 Hadoop。
我正在使用 Spark,我收到了一条来自 Kafka 主题的消息,每条消息都在 JSON 记录中。
我每天大约有 200B 条记录。
数据字段可能会更改(不是很多,但将来可能会更改),
我需要快速写入和快速读取,磁盘空间小。
我应该选择什么? Avro 还是 Parquet?
我还看了下面的https://community.hitachivantara.com/community/products-and-solutions/pentaho/blog/2017/11/07/hadoop-file-formats-its-not-just-csv-anymore And Avro v/s Parquet
但是还是不知道选什么,
有什么建议吗?
如果您关心存储和查询,按顺序排列的最佳存储类型是
- 兽人
- 镶木地板
- 阿芙罗
- JSON
- CSV/TSV(纯结构化文本)
- 非结构化文本
如果您的磁盘容量有限 space 并且想牺牲检索,Snappy 或 Bzip2 最好,Bzip2 压缩得更多。
通常,我看到人们直接将 JSON 数据写入 Hadoop,然后批处理作业以每天将其转换为更可选的格式(例如,Hadoop 更喜欢非常大的文件而不是很多小文件个)
如果你很在意检索速度,可以使用HBase或者其他数据库(Hive不是数据库),但最起码你需要根据业务需要将流式数据压缩成更大的时间块。
Avro 原生支持模式演变,如果您能够在现有的 Kafka 集群旁边安装 Confluent Schema Registry,那么您可以使用 Kafka HDFS Connect 立即从 Avro 编写 Parquet(或 JSON ,我认为,假设您在消息中有一个架构字段)连同一个 Hive table.
其他选项包括 Apache Nifi 或 Streamsets。换句话说,不要重新发明轮子编写 Spark 代码将 Kafka 拉到 HDFS
我需要考虑如何将我的数据写入 Hadoop。
我正在使用 Spark,我收到了一条来自 Kafka 主题的消息,每条消息都在 JSON 记录中。
我每天大约有 200B 条记录。
数据字段可能会更改(不是很多,但将来可能会更改),
我需要快速写入和快速读取,磁盘空间小。
我应该选择什么? Avro 还是 Parquet?
我还看了下面的https://community.hitachivantara.com/community/products-and-solutions/pentaho/blog/2017/11/07/hadoop-file-formats-its-not-just-csv-anymore And Avro v/s Parquet
但是还是不知道选什么,
有什么建议吗?
如果您关心存储和查询,按顺序排列的最佳存储类型是
- 兽人
- 镶木地板
- 阿芙罗
- JSON
- CSV/TSV(纯结构化文本)
- 非结构化文本
如果您的磁盘容量有限 space 并且想牺牲检索,Snappy 或 Bzip2 最好,Bzip2 压缩得更多。
通常,我看到人们直接将 JSON 数据写入 Hadoop,然后批处理作业以每天将其转换为更可选的格式(例如,Hadoop 更喜欢非常大的文件而不是很多小文件个)
如果你很在意检索速度,可以使用HBase或者其他数据库(Hive不是数据库),但最起码你需要根据业务需要将流式数据压缩成更大的时间块。
Avro 原生支持模式演变,如果您能够在现有的 Kafka 集群旁边安装 Confluent Schema Registry,那么您可以使用 Kafka HDFS Connect 立即从 Avro 编写 Parquet(或 JSON ,我认为,假设您在消息中有一个架构字段)连同一个 Hive table.
其他选项包括 Apache Nifi 或 Streamsets。换句话说,不要重新发明轮子编写 Spark 代码将 Kafka 拉到 HDFS