如何对 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 表进行查询?的主要内容,如果未能解决你的问题,请参考以下文章