鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

Spark-SQL ORC数据源

使用OmniShield机密大数据特性执行Spark引擎业务,需通过启动Spark提交任务执行。

  1. 部署Hadoop KMS服务,创建好所需的primary key。
    1
    hadoop key create key1 -cipher 'SM4/GCM/NoPadding'
    
  2. “/opt/omnishield”目录下执行如下命令启动Spark-SQL。
    1
    spark-sql --master local --conf spark.sql.extensions=com.huawei.analytics.shield.sql.DataSourceEncryptPlugin --conf spark.hadoop.io.compression.codecs=com.huawei.analytics.shield.crypto.CryptoCodec --jars omnishield-1.0-SNAPSHOT.jar,kms.jar  --conf spark.executor.extraClassPath=omnishield-1.0-SNAPSHOT.jar:kms.jar --driver-class-path omnishield-1.0-SNAPSHOT.jar:kms.jar
    
  3. 在Spark-SQL命令行执行如下SQL创建加密数据表。
    1
    2
    drop table if exists otest1;
    create table otest1 (name string) options ( hadoop.security.key.provider.path "kms://http@IP:PORT/kms", orc.key.provider "hadoop", orc.encrypt "key1:name") stored as orc;
    
    • hadoop.security.key.provider.path是指定Hadoop KMS的地址和端口号。
    • orc.encrypt是指定加密的列。
  4. 在Spark-SQL命令行执行如下SQL检测数据表是否为加密数据表。
    1
    describe extended otest1;
    

    在SQL运行结果的Storage Properties中如果包含orc.encrypt项则为加密表。