如何对 hdfs 中的数据进行加密,然后创建 hive 或 impala 表进行查询?

Posted

技术标签:

【中文标题】如何对 hdfs 中的数据进行加密,然后创建 hive 或 impala 表进行查询?【英文标题】:How to encrypt data in hdfs , and then create hive or impala table to query it? 【发布时间】:2016-10-28 09:37:54 【问题描述】:

最近,我遇到了一个情况: 远程hdfs中有一个数据文件,我们需要对数据文件进行加密,然后创建impala表来查询本地hdfs系统中的数据,impala如何查询加密的数据文件,我不知道怎么解决。

【问题讨论】:

我无法通过创建 udf 函数控制查询 sql,因为查询 sql 不可见。我只能控制创建表。 【参考方案1】:

可以通过在 hive 中创建用户定义函数 (UDF) 来完成。您可以使用 UDF Hive 接口创建 UDF 函数。然后,从您的 UDF 类中制作 jar,放入 hive lib。

【讨论】:

我无法通过udf控制查询sql,因为查询sql是不可见的,还有其他方法吗? 我认为这个链接很好地解释了如何创建 UDF。 http://blog.matthewrathbone.com/2013/08/10/guide-to-writing-hive-udfs.html 您在 hdfs 中加密了您的数据,不是吗?然后,我假设它还没有加密。因此,您可以通过两种方式进行加密。 一种方法是,您可以创建临时 hive 表,然后将 UDF jar 放入 hive lib 路径,然后使用该 UDF 函数将您的数据加密到您的真实 hive 表中。另一种方法是,如果你了解 Spark,你可以实现一个加密算法来做到这一点。 我认为当前的问题不在于如何加密数据。我想解决这个问题,我们有一个基于impala表的应用程序,但是数据不允许放在我们的本地环境中,我们必须访问远程hdfs中的数据,现在我们要处理如何使用本地 impala 表在安全性下访问远程 hdfs 数据。查询sql不可见,只能创建本地impala表来映射远程数据。

以上是关于如何对 hdfs 中的数据进行加密,然后创建 hive 或 impala 表进行查询?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用php对mysql数据库中的数据进行加密和解密?

SPARK如何在内存中读取数据和管理

HDFS中的透明加密

如何使用 Flume 按年和月对 txt/csv 文件中的数据进行分区?是不是可以使 HDFS 路径动态化?

219-如何对密码进行加密?

219-如何对密码进行加密?