何时将数据移动到 HDFS/Hive?
When to move data to HDFS/Hive?
所以我正在开发一个需要处理大量数据的应用程序,因此我决定使用 Hadoop 来处理它。
我的服务节点和数据节点与 Web 应用程序是分开的,所以我使用 HttpFS 将应用程序与 Hadoop 进行通信。
那么,每当我的应用程序中生成新的 行 数据时,我是否应该已经调用相应的 HttpFS URL 将数据附加到 HDFS 文件?我是否应该将这些数据写入网络服务器的文件中,并使用 cronjob 每小时将其上传到 HDFS?
我应该更新 Hive table 还是应该在需要查询时只在其中加载数据?
我是 Hadoop 的新手,所以任何 link 可能有用的东西也会很有用。
我更喜欢下面的方法。
不要调用 HtpFS URL 为每个行更新将数据附加到 HDSF 文件。当数据文件大小超过 128 MB(在 Hadoop 2.x)或 64 MB(在 Hadoop 1.x)
时,HDFS 是高效的
将数据写入网络服务器。当文件大小达到一定限制时有一个滚动附加程序 - 128 MB 的倍数,例如 1 GB 文件。
你可以有基于小时的 cron 作业,但要确保你发送的是大数据文件(例如 1 GB 或 128 MB 的倍数)而不是只发送日志文件,日志文件在 1小时。
关于加载数据,可以使用内部或外部HIVE表。看看这个article
所以我正在开发一个需要处理大量数据的应用程序,因此我决定使用 Hadoop 来处理它。
我的服务节点和数据节点与 Web 应用程序是分开的,所以我使用 HttpFS 将应用程序与 Hadoop 进行通信。
那么,每当我的应用程序中生成新的 行 数据时,我是否应该已经调用相应的 HttpFS URL 将数据附加到 HDFS 文件?我是否应该将这些数据写入网络服务器的文件中,并使用 cronjob 每小时将其上传到 HDFS? 我应该更新 Hive table 还是应该在需要查询时只在其中加载数据?
我是 Hadoop 的新手,所以任何 link 可能有用的东西也会很有用。
我更喜欢下面的方法。
不要调用 HtpFS URL 为每个行更新将数据附加到 HDSF 文件。当数据文件大小超过 128 MB(在 Hadoop 2.x)或 64 MB(在 Hadoop 1.x)
时,HDFS 是高效的
将数据写入网络服务器。当文件大小达到一定限制时有一个滚动附加程序 - 128 MB 的倍数,例如 1 GB 文件。
你可以有基于小时的 cron 作业,但要确保你发送的是大数据文件(例如 1 GB 或 128 MB 的倍数)而不是只发送日志文件,日志文件在 1小时。
关于加载数据,可以使用内部或外部HIVE表。看看这个article