我一直在寻找一种方法来保护Parquet文件,列式方式,用于Spark访问。理想情况下,Apache Ranger的工作方式与Hive相同,即系统管理员定义不同组和列的访问策略。
我一直在通过Hortoworks HDP尝试游侠,然而,似乎Spark和Parquet的插件还没有。
我也能够使用Apache Drill和观点来设计解决方案,但是,目前这是不可接受的,主要是因为社区对Drill的支持仍然很少。
是否有人面临同样的要求和/或有一些解决方案?
答案 0 :(得分:0)
经过大量的研究,我得出的结论是,这是不可能的。
Ranger与其他工具(HDFS,Hive,HBase等)协同工作的方式是使用实现这些工具提供的钩子的插件。例如,要创建一个自定义插件来保护Hive,需要通过Xero API .NET Core client创建一个HiveAuthorizer。但Parquet没有这样的钩子,因为它只不过是一种文件格式。
允许从Ranger以列级方式保护Parquet文件的可能解决方案是为Ranger的HDFS插件创建扩展。此扩展将实现通过Ranger定义的Parquet文件的访问规则。这样,只要文件存储在HDFS中,我们就可以像Hive或HBase一样无缝地保护Parquet文件。