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

DataFrame行式数据源

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

  1. 部署相应KMS服务,创建好所需的primary key。例如可以通过以下指令在Hadoop KMS中创建primary key。
    1
    hadoop key create key1
    
  2. “/opt/omnishield”目录下执行数据源加密的命令如下, 指令执行完成后将生成“/home/en”目录,并存放加密后的simple.csv数据。
    1
    spark-submit --class com.huawei.analytics.shield.utils.Encrypt --master local --conf spark.hadoop.io.compression.codecs=com.huawei.analytics.shield.crypto.CryptoCodec  --conf spark.shield.primaryKey.name=key1 --conf spark.shield.primaryKey.key1.kms.type=test.example.HadoopKeyManagementService --jars omnishield-1.0-SNAPSHOT.jar,kms.jar omnishield-1.0-SNAPSHOT.jar  -i file:///home/simple.csv -o file:///home/en -a AES/GCM/NOPadding -t csv -e encrypt
    
  3. “/opt/omnishield”目录下执行数据源解密的命令如下,指令执行完成后将生成“/home/de”目录,并存放解密后的数据。
    1
    spark-submit --class com.huawei.analytics.shield.utils.Encrypt --master local --conf spark.hadoop.io.compression.codecs=com.huawei.analytics.shield.crypto.CryptoCodec  --conf spark.shield.primaryKey.name=key1 --conf spark.shield.primaryKey.key1.kms.type=test.example.HadoopKeyManagementService --jars omnishield-1.0-SNAPSHOT.jar,kms.jar omnishield-1.0-SNAPSHOT.jar  -i file:///home/en -o file:///home/de -a AES/GCM/NOPadding -t csv -e decrypt
    
    • spark.shield.primaryKey是指定当前使用的primary key,该key需要提前在KMS中创建生成。
    • spark.shield.primaryKey.key1.kms.type是指定primary key的KMS类型,KMS需要使用者自行按照OmniShield提供的接口实现,该项的值需要指定KMS在kms.jar中的具体类路径。
    • -i、-o分别用于指定输入和输出的路径,支持HDFS或本地文件系统。
      • 在加密模式下,-i指定的是原始数据文件,-o指定的是加密后输出的文件夹位置。
      • 在解密模式下,-i指定的是已加密的文件夹位置,-o指定的是解密后输出的文件夹位置。
    • -a用于指定使用的加密算法,目前只支持AES/GCM/NOPadding。
    • -t用于指定数据源文件格式,目前支持CSV/JSON/TXT格式。
    • -e用于指定工作模式,encryp表示加密,decrypt表示解密。