【问题标题】:Streaming live data from HDFS to Hive将实时数据从 HDFS 流式传输到 Hive
【发布时间】:2020-05-06 02:37:13
【问题描述】:

我是 Hadoop 生态系统的新手,并通过在线文章自学。 我正在做一个非常基础的项目,这样我就可以动手实践我学到的东西。

我的用例非常:想法是我想将登录到门户的用户的位置显示给应用程序管理员。所以,我有一个不断生成日志的服务器,日志有用户 ID、IP 地址、时间戳.所有字段均以逗号分隔。

我这样做的想法是有一个水槽代理来流式传输实时日志数据并写入 HDFS。有适当的 HIVE 进程,它将从 HDFS 读取增量数据并写入 HIVE 表。使用 scoop 将数据从 HIVE 连续复制到 RDMBS SQL 表并使用该 SQL 表进行操作。 到目前为止,我已经成功配置了从给定位置读取日志并写入 hdfs 位置的水槽代理。但在此之后,我对如何将数据从 HDFS 移动到 HIVE 表感到困惑。我想到的一个想法是拥有一个 MapRed 程序,它将读取 HDFS 中的文件并以 Java 编程方式写入 HIVE 表。但我也想删除已经处理过的文件,并确保 MapRed 没有读取重复记录。我在网上搜索并找到了可用于将文件数据复制到 HIVE 的命令,但这是一种手动操作。在我的用例中,我想在 HDFS 中可用时立即推送数据。 请指导我如何完成此任务。链接会有所帮助。

我正在开发版本:Cloudera Express 5.13.0


更新 1: 我刚刚创建了一个外部 HIVE 表,指向 Flume 正在转储日志的 HDFS 位置。我注意到,一旦创建表,我就可以查询 HIVE 表并获取数据。这太棒了。但是如果我暂时停止flume代理,让app server写日志会发生什么,现在如果我再次启动flume,那么flume只会读取新的日志而忽略已经处理的日志?同样,hive 是否会读取未处理的新日志而忽略已处理的日志?

【问题讨论】:

  • 如何将数据传送到 HDFS?为什么选择 HDFS 作为数据缓冲区?
  • 正如我上面提到的,我正在学习 Hadoop 技术,所以我不关注哪种技术最适合哪种用例,我目前唯一的目的是学习并了解事物是如何工作的。所以我想出了描述的用例。我想处理我评论中提到的日志数据。请指导我如何处理来自 hdfs 的最新数据以配置 hive n 从 hdfs 中删除旧文件。目前我将所有日志文件放在一个中,没有分区以使其端到端简单。
  • 如何将数据写入 HDFS?
  • 使用flume,flume从服务器日志中读取数据并写入hdfs。
  • 那是非常“过时”的设置。 Kafka 可能可以用来代替 Flume

标签: hadoop hive flume


【解决方案1】:

我应该如何将数据从 HDFS 移动到 HIVE 表

这不是 Hive 的工作方式。 Hive 是现有 HDFS 存储之上的元数据层。在 Hive 中,您将在 Flume 将数据写入的任何位置定义一个 EXTERNAL TABLE

当数据到达时,Hive“自动知道”有新数据要查询(因为它读取给定路径下的所有文件)


如果我暂时停止flume代理会发生什么,让app server写日志,现在如果我再次启动flume,那么flume只会读取新的日志并忽略已经处理的日志

取决于你如何设置 Flume。 AFAIK,它将检查所有已处理的文件,并且只选择新文件。

hive 会读取未处理的新日志并忽略已处理的日志吗?

Hive 没有未处理记录的概念。在每次新查询时,将始终读取表位置中的所有文件,受查询条件的限制。


奖励:移除 Flume 和 Scoop。让您的应用程序将记录生成到 Kafka。让 Kafka Connect(或 NiFi)从单个位置(Kafka 主题)写入 HDFS 和 RDBMS。如果你确实需要读取日志文件,Filebeat 或 Fluentd 比 Flume(或 Logstash)占用更少的资源

奖励 2:移除 HDFS 和 RDBMS,转而使用 Druid 或 Elasticsearch 等更实时的摄取管道进行分析。

奖励 3:Presto / SparkSQL / Flink-SQL 比 Hive 快(注意:Hive metastore 实际上很有用,因此请保留 RDBMS)

【讨论】:

  • 我真的很喜欢你根据最新科技趋势放下东西的方式。我是大数据的初学者,现在只是探索事物以了解基础知识,我的雷达中有 Kafka、Spark 和 ElasticSearch。非常感谢您的评论。
  • 欢迎。市场瞬息万变,因此只需紧跟最新趋势,而不是陷入“大数据”之类的流行语中。尝试解决手头的问题,don't assume you need Hadoop
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-08
  • 1970-01-01
  • 2014-12-25
相关资源
最近更新 更多