Configurando o Serviço Object Storage com o Hadoop

No Hadoop, a conectividade do Object Storage é usada para executar operações de arquivo no Object Storage. Por exemplo, listar, ler, gravar, copiar etc.

Observação

Você pode usar nós de cluster do Big Data Service para configuração de serviço e exemplos em execução. Para usar um nó Edge, você deve criar e acessar o nó Edge.
  1. (Opcional) Para usar um nó de Borda para configurar o Object Storage, primeiro crie um nó de Borda e, em seguida, acesse o nó. Em seguida, copie a chave de API do nó un0 para o nó Edge.
    sudo dcli rsync -a <un0-hostname>:/opt/oracle/bds/.oci_oos/
        /opt/oracle/bds/.oci_oos/
  2. Crie um usuário com permissões suficientes e um arquivo JCEKS com o valor de frase-senha necessário. Se você estiver criando um arquivo JCEKS local, copie o arquivo para todos os nós e altere as permissões do usuário.
    sudo dcli -f <location_of_jceks_file> -d <location_of_jceks_file>
    sudo dcli chown <user>:<group> <location_of_jceks_file>
  3. Adicione uma das seguintes combinações HADOOP_OPTS ao perfil bash do usuário.
    Opção 1:
    export HADOOP_OPTS="$HADOOP_OPTS -DOCI_SECRET_API_KEY_ALIAS=<api_key_alias>
          -DBDS_OSS_CLIENT_REGION=<api_key_region>
          -DOCI_SECRET_API_KEY_PASSPHRASE=<jceks_file_provider>"

    Opção 2:

    export HADOOP_OPTS="$HADOOP_OPTS -DBDS_OSS_CLIENT_AUTH_FINGERPRINT=<api_key_fingerprint> 
    -DBDS_OSS_CLIENT_AUTH_PASSPHRASE=<jceks_file_provider> -DBDS_OSS_CLIENT_AUTH_PEMFILEPATH=<api_key_pem_file_path> 
    -DBDS_OSS_CLIENT_AUTH_TENANTID=<api_key_tenant_id> -DBDS_OSS_CLIENT_AUTH_USERID=<api_key_user_id> 
    -DBDS_OSS_CLIENT_REGION=<api_key_region>"
  4. Verifique se a conexão do Object Storage foi estabelecida:
    hdfs dfs -ls oci://<bucket-name>@<namespace>/
    hdfs dfs -cat oci://<bucket-name>@<namespace><file-on-object-storage>
    hdfs dfs -mkdir oci://<bucket-name>@<namespace>/<test-directory-name>
    hdfs dfs -cp /<file-on-hdfs> oci://<bucket-name>@<namespace>/<test-directory-name>
    hadoop distcp -Dmapreduce.reduce.java.opts="${HADOOP_OPTS}" -Dmapreduce.map.java.opts="${HADOOP_OPTS}" 
    -Dyarn.app.mapreduce.am.command-opts="${HADOOP_OPTS}" oci://<bucket-name>@<namespace>/<file-on-object-storage>
    /<path_on_hdfs>