<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      快速搭建hadoop KMS開發集成環境

      概要

      Hadoop KMS是一個基于 HadoopKeyProvider API的用密碼寫的 key 管理serverClient是一個KeyProvider的實現,使用KMS HTTP REST APIKMS交互。
      KMS和它的客戶端內置安全和它們支持HTTP SPNEGO Kerberos 身份驗證和HTTPS安全轉換.
      KMS是一個Java Web應用程序,運行在與Hadoop發行版綁定在一起的預先配置好的Tomcat服務器上。

      快速搭建

      既然是基于Hadoop,那最快的方法就是找個容器環境

      https://hub.docker.com/r/gradiant/hdfs

      https://github.com/Gradiant/dockerized-hadoop

      參考https://github.com/Gradiant/dockerized-hadoop/blob/master/docker-compose.yml

      基于這個docker-compose文件和kms的資料【https://hadoop.apache.org/docs/current/hadoop-kms/index.html】,容器環境的設置如下

       

      生成秘鑰

       keytool -genkey -alias 'kmskey' -keystore ./kms.jks -dname "CN=localhost, OU=localhost, O=localhost, L=SH, ST=SH, C=CN" -keypass demokms -storepass demokms -validity 36500 echo "demokms" > kms.keystore.password

      kms-site.xml配置

      <?xml version="1.0" encoding="UTF-8"?>

      <configuration>

      <!-- KMS Backend KeyProvider -->

      <property>

      <name>hadoop.kms.key.provider.uri</name>

      <value>jceks://file@/opt/hadoop/key/kms.jks</value>

      <description>

      URI of the backing KeyProvider for the KMS.

      </description>

      </property>

      <property>

      <name>hadoop.security.keystore.java-keystore-provider.password-file</name>

      <value>kms.keystore.password</value>

      <description>

      If using the JavaKeyStoreProvider, the password for the keystore file.

      </description>

      </property>

       

      <property>

      <name>dfs.encryption.key.provider.uri</name>

      <value>kms://http@172.19.0.10:9600/kms</value>

      </property>

       

      <property>

      <name>hadoop.kms.authentication.type</name>

      <value>simple</value>

      <description>

      Authentication type for the KMS. Can be either "simple"

      or "kerberos".

      </description>

      </property>

      </configuration>

      docker-copose配置和啟動

      # https://github.com/Gradiant/dockerized-hadoop

      # http://localhost:50070 for hadoop 2.x

      # http://localhost:9870 for hadoop 3.x

      # CORE_CONF_fs_defaultFS hdfs://hostname -f:8020

      #

       

      version: "3"

      services:

      namenode:

      image: gradiant/hdfs:3.2.1

      container_name: hdfs-namenode

      environment:

      - HDFS_CONF_dfs_replication=1

      volumes:

      - name:/hadoop/dfs

      - ./sources.list:/etc/apt/sources.list

      - ./kms-site.xml:/opt/hadoop-3.2.1/etc/hadoop/kms-site.xml

      - ./kms.sh:/opt/hadoop/kms.sh

      - ./kms.keystore.password:/opt/hadoop-3.2.1/etc/hadoop/kms.keystore.password

      command:

      - namenode

      ports:

      - 8020:8020

      - 50070:50070

      - 9870:9870

      - 9600:9600

      networks:

      hdfs-networks:

      ipv4_address: 172.19.0.10

       

      datanode-0:

      image: gradiant/hdfs:3.2.1

      container_name: hdfs-datanode1

      environment:

      - CORE_CONF_fs_defaultFS=hdfs://namenode:8020

      - HDFS_CONF_dfs_replication=1

      volumes:

      - data-0:/hadoop/dfs

      - ./sources.list:/etc/apt/sources.list

      command:

      - datanode

      networks:

      hdfs-networks:

      ipv4_address: 172.19.0.11

       

      volumes:

      data-0:

      name:

       

      networks:

      hdfs-networks:

      ipam:

      driver: default

      config:

      - subnet: 172.19.0.0/16

       

      啟動docker-compose up -d

       

      依賴的debian源 sources.list

       

      deb http://mirrors.aliyun.com/debian/ buster main non-free contrib

      deb http://mirrors.aliyun.com/debian-security buster/updates main

      deb http://mirrors.aliyun.com/debian/ buster-updates main non-free contrib

      deb http://mirrors.aliyun.com/debian/ buster-backports main non-free contrib

       

      KMS啟動

      #如上haoop的服務的啟動用戶是hdfs,因此kms.jks這個文件的權限和容器一致,不然生成秘鑰時權限問題會出錯

      docker exec -it hdfs-namenode bash -c "mkdir -p /opt/hadoop/key"

      docker cp kms.jks hdfs-namenode:/opt/hadoop/key/

       

      docker exec -itd hdfs-namenode /opt/hadoop/kms.sh

      kms.sh內容如下

      #!/bin/bash

      nohup hadoop --daemon start kms

      Tip

      docker exec -u root -it hdfs-namenode bash 可以使用這個命令以root權限進入容器安裝一些工具,方便診斷和檢查,這個hadoop系統是debian10,很多包沒有安裝,apt-get update后即可使用aliyun的鏡像安裝 如netstat apt-get install net-tools

       

      如果不出現異常,服務即可使用了

      REST訪問

      參考官方的文檔https://hadoop.apache.org/docs/current/hadoop-kms/index.html

       

      # ?user.name=hdfs 沒有這個會存在授權問題 401

      # curl -X GET http://172.19.0.10:9600/kms/v1/keys/names

      curl -X GET http://172.19.0.10:9600/kms/v1/keys/names?user.name=hdfs

      # curl -i --header "Accept:application/json" -H "Content-Type:application/json" -X GET http://172.19.0.10:9600/kms/v1/keys/names?user.name=hdfs

       

      #https://hadoop.apache.org/docs/current/hadoop-kms/index.html

      #Create a Key

      curl -X POST http://172.19.0.10:9600/kms/v1/keys?user.name=hdfs -H 'Content-Type: application/json' -d'

      {

        "name"        : "testkey",

        "cipher"      : "AES_128_CBC",

        "length"      : 128,

        "material"    : "1234567812345678123456",

        "description" : "demo"

      }

      '

      #Get Key Metadata

      curl -X GET http://172.19.0.10:9600/kms/v1/key/testkey/_metadata?user.name=hdfs

      #Get Current Key

      curl -X GET http://172.19.0.10:9600/kms/v1/key/testkey/_currentversion?user.name=hdfs

       

      curl -X GET http://172.19.0.10:9600/kms/v1/keys/names?user.name=hdfs

       

      #Generate Encrypted Key for Current KeyVersion

      curl -X GET "http://172.19.0.10:9600/kms/v1/key/testkey/_eek?eek_op=generate&num_keys=3&user.name=hdfs" | tee -a /tmp/k.json

       

      # Decrypt Encrypted Key

      #取第一個的key

      IV=`jq ".[0].iv" /tmp/k.json`

      MAT=`jq ".[0].encryptedKeyVersion.material" /tmp/k.json`

      NAME=`jq ".[0].encryptedKeyVersion.name" /tmp/k.json`

       

      curl -X POST "http://172.19.0.10:9600/kms/v1/keyversion/testkey@0/_eek?eek_op=decrypt&user.name=hdfs"  -H 'Content-Type: application/json' -d'

      {

        "name"        : '${NAME}',

        "iv"          : '${IV}',

        "material"    : '${MAT}'

      }

      '

       

      #Delete Key

      curl -X DELETE http://172.19.0.10:9600/kms/v1/key/testkey?user.name=hdfs

      總結

      通過使用一個容器,快速的將hadoop KMS部署起來,此時其他應用即可快速集成和使用。

      如上過程中涉及的rest的訪問權限問題沒有提及,集成的測試可以完成。

      整體上需要用戶名/密碼或Kerberos認證時,只要rest接口上微調集成即可。

       

      posted @ 2021-01-30 09:42  2012  閱讀(1079)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 日韩激情无码免费毛片| 人妻在线无码一区二区三区| 亚洲无码精品视频| 无码AV无码免费一区二区| 免费人妻无码不卡中文字幕系| 国产蜜臀久久av一区二区| 成人午夜激情在线观看| 97人妻精品一区二区三区| 免费观看全黄做爰大片| 国产激情一区二区三区在线| 一级做a爰片在线播放| 人妻久久久一区二区三区| 日日碰狠狠躁久久躁96avv| 97午夜理论电影影院| 成人国产欧美大片一区| 国产高清无遮挡内容丰富| 国产精品午夜福利视频| 成av免费大片黄在线观看| 国产高颜值不卡一区二区| caoporn成人免费公开| 国产亚洲色婷婷久久99精品| 一区二区三区在线色视频| 亚洲一区二区精品极品| 野花社区www高清视频| 日本久久99成人网站| 国产精品自在线拍国产手机版| 福贡县| av激情亚洲男人的天堂| 国产精品一二三入口播放| 国产福利姬喷水福利在线观看 | 一卡2卡三卡4卡免费网站| 久久久久久久久久久久中文字幕 | 国产国产乱老熟女视频网站97| 国产精品久久蜜臀av| 日韩亚洲国产中文永久| 一本一道av中文字幕无码| 亚洲精品自拍在线视频| 色欲AV无码一区二区人妻| 国产偷自一区二区三区在线| 亚洲乱码中文字幕小综合| 国产精品亚洲二区在线播放|