Conecte-se ao HiveMetaStore e adote big data de código aberto

Este artigo é compartilhado pela comunidade Huawei Cloud " Conectando-se com HiveMetaStore e adotando big data de código aberto ". Autor: Dormir é um grande negócio.

1. Introdução

  • Versões aplicáveis: 9.1.0 e superior

Na era da análise de fusão de big data, quando confrontados com grandes quantidades de dados e diversas consultas complexas, o desempenho é a consideração mais importante ao usar um mecanismo de processamento de dados. O serviço GaussDB (DWS) possui um poderoso mecanismo de computação, seu desempenho computacional é melhor do que mecanismos de computação como hive ou spark no serviço MRS e pode atender às necessidades de alta elasticidade e agilidade do negócio a um custo menor. Ao vincular-se ao MRS, não há necessidade de realocar dados. Está se tornando cada vez mais uma solução convencional usar o mecanismo de computação de alto desempenho do DWS para processar e analisar dados massivos no data lake, bem como vários serviços complexos de consulta e análise. .

Podemos nos conectar ao serviço de metadados HiveMetaStore criando um esquema externo, para que o GaussDB (DWS) possa consultar diretamente a tabela Hive/Spark ou inserir dados na tabela Hive/Spark. Não há necessidade de criar uma tabela de leitura ou gravação e não há necessidade de se preocupar com o fato de o GaussDB (DWS) não atualizar a definição da tabela a tempo quando a definição da tabela Hive/Spark for alterada.

Este artigo descreve principalmente a configuração e orientação da conexão entre GaussDB (DWS) e hivememtastore.

2. Breve análise de princípios

2.1 O que é HiveMetaStore

HiveMeatStore é um componente chave do Apache Hive. É um repositório de metadados usado para gerenciar informações de metadados de tabelas Hive/Spark. HiveMeatStore armazena as informações estruturais da tabela Hive, incluindo nome da tabela, nome da coluna, tipo de dados, informações de partição, etc. Ele também armazena as informações de localização da tabela, ou seja, onde os dados da tabela estão armazenados. A principal função do HiveMeatStore é fornecer serviços de metadados para que o Hive/Spark possa consultar e analisar dados. Ele também fornece APIs que permitem aos desenvolvedores acessar os metadados da tabela de forma programática. Resumindo, o HiveMeatStore é um componente importante do Hive, que fornece gerenciamento de metadados e serviços de consulta.

Esquema externo é o esquema externo que GaussDB (DWS) se conecta ao serviço HiveMeatStore criando um esquema extranal e obtém ativamente os metadados do objeto da tabela Hive/Spark para cada consulta. Não há necessidade de o kernel GaussDB (DWS) obter os metadados da tabela Hive/Spark por meio da criação de tabela externa.

2.2 A diferença entre esquema externo e esquema

1 esquema externo é usado principalmente para estabelecer uma conexão com o HiveMeatStore e obter metadados de objetos de tabela. Ao criar um esquema externo, você precisa especificar os vários valores de atributos necessários para a conexão.

2 Após a criação do esquema comum, as informações do esquema serão registradas em pg_namespace. Após a criação do esquema externo, elas também serão registradas em pg_namespace como o esquema comum. o campo nsptype em pg_namespace.

ilustrar

Além das informações relevantes armazenadas em pg_namespace, as informações de configuração relacionadas às conexões de esquema externo serão registradas em pg_external_namespace.

ilustrar

3 Objetos de tabela não são suportados em esquema externo. O objeto é criado no hive ou spark, e o esquema externo é usado apenas para realizar operações DML.

2.3 Descrição do princípio

O processo de acoplamento do GaussDB (DWS) com HiveMetaStore é mostrado na figura abaixo

1. Crie servidor, esquema externo, consulta sql.

Antes de usar este recurso, os usuários precisarão criar um Servidor. O processo de criação de um Servidor é o mesmo de um Servidor existente.

Existem duas maneiras de criar um servidor OBS. Uma é criá-lo por meio de AK e SK permanentes. (A premissa deste método é que AK e SK permanentes podem ser obtidos, mas este método não é seguro. AK/SK são expostos diretamente no arquivo de configuração, e AK e SK precisam ser inseridos em texto não criptografado ao criar um serviço. Não é recomendado criar serviços desta forma)

Outro método de vincular o DWS ao ECS na nuvem é acessar o OBS e criar um servidor OBS por meio do plano de controle. Para confiar a criação de um servidor através do plano de controle, consulte como criar um servidor OBS ao criar uma aparência. https://support.huaweicloud.com/mgtg-dws/dws_01_1602.html

Crie um esquema externo:

A sintaxe de criação de esquema externo é

CRIAR Esquema Externo ex
COM colmeia FONTE
BANCO DE DADOS 'padrão'
SERVIDOR hdfs_server
METAENDEREÇO ​​'10.254.159.121:9010'
CONFIGURAÇÃO '/home/fengshuo/conf2';

O campo SOURCE especifica o tipo de mecanismo de armazenamento de metadados externo, DATABASE é o nome do banco de dados correspondente no Hive, SERVER é o servidor criado na etapa 1, METAADDRESS é o endereço e as informações de porta fornecidas pelo Hive e CONFIGURATION é o caminho para Hive e Kerberos arquivos de configuração relacionados.

O objetivo do esquema externo é conectar-se a metadados externos (Foreign Meta) para que o DWS possa perceber ativamente mudanças nos metadados externos, conforme mostrado na figura abaixo.

GaussDB (DWS) se conecta ao HiveMetaStore por meio de esquema externo, mapeia para os metadados da tabela correspondente e, em seguida, acessa o Hadoop por meio da tabela.

Consulta SQL: O formato da consulta selecionada é select * from ex.tbl, onde tbl é o nome da tabela de origem externa e ex é o esquema externo criado.

2. Análise gramatical: A camada de análise gramatical é a principal responsável pela análise e é principalmente responsável pelos seguintes conteúdos:

Depois de ler a tabela ex.tbl, conecte-se ao HMS para consulta de metadados

3. Consulta de metadados: Consulta informações de metadados do HMS Esta etapa é concluída na etapa 1.

A leitura de dados do HMS inclui principalmente informações de coluna, informações de partição, informações de chave de partição, informações de delimitador, etc.

4. Consulta de dados (para seleção): Obtenha o número e o tamanho dos arquivos de informações estatísticas do armazenamento DFS para fornecer uma base para a geração do plano.

5. Reescrita de consulta, otimização de consulta, execução de consulta

6. Entrega da consulta: Envie os metadados para o DN junto com o plano. Após o DN receber o plano, ele decodificará os metadados e os inserirá no SysCache.

7. Execução da consulta: o DN acessa o arquivo obs correspondente e executa a consulta.

3. Processo de interconexão com hivememtastore

3.1 Prepare o ambiente

O cluster DWS 3.0 e o cluster de análise MRS foram criados. Você precisa garantir que os clusters MRS e DWS estejam na mesma região, zona de disponibilidade e sub-rede VPC para garantir a interoperabilidade da rede do cluster;

Obteve AK e SK.

3.2 Crie a tabela que precisa ser conectada no lado da colmeia

1. No caminho /opt/client, importe as variáveis ​​de ambiente.
fonte bigdata_env

2. Faça login no cliente Hive.

3. Execute as seguintes instruções SQL em sequência para criar o banco de dados de demonstração e a tabela de destino product_info.
CRIAR demonstração de BANCO DE DADOS;
usar demonstração;
DROP TABLE informações_do_produto;
 
CRIAR TABELA product_info
(    
    preço_produto int,
    id_do_produto char(30) ,
    data_hora_produto,
    nível_do_produto char(10) ,
    nome_do_produto varchar(200) ,
    tipo_produto1 varchar(20) ,
    tipo_produto2 char(10) ,
    produto_mês_vendas_cnt int ,
    data_comment_time do produto,
    product_comment_num int ,
    produto_comment_content varchar(200)                   
)
campos delimitados por formato de linha terminados por ','
armazenado como orc;
4. Importe dados para a tabela Hive por meio de inserção

3.3 Criar servidor externo

Use o Data Studio para se conectar ao cluster DWS criado.

Existem dois formatos suportados no lado MRS, hdfs e obs. As formas de criar servidores externos para acoplamento de hive nesses dois cenários também são diferentes.

Execute as instruções a seguir para criar um servidor externo OBS.

CRIAR SERVIDOR obs_servevr ESTRANGEIRO DATA WRAPPER DFS_FDW
OPÇÕES
(
endereço 'obs.xxx.com:5443', //Endereço de acesso ao OBS.
criptografar 'ligado',
access_key '{valor AK}',
secret_access_key '{valor SK}',
 digite 'obs'
);
Execute as instruções a seguir para criar um servidor externo HDFS.
CRIAR SERVIDOR hdfs_server FOREIGN DATA WRAPPER OPÇÕES HDFS_FDW (
      TIPO 'hdfs',
      ENDEREÇO ​​'{nó primário},{nó em espera}',
      HDFSCFGPATH '{endereço do arquivo de configuração hdfs}');

Codificar o AK e SK usados ​​para autenticação no código ou armazená-los em texto simples apresenta grandes riscos de segurança. Recomenda-se armazená-los em texto cifrado no arquivo de configuração ou variável de ambiente e descriptografá-los quando usados ​​para garantir a segurança. Além disso, o dws criptografará o sk internamente, portanto, não há necessidade de se preocupar com o vazamento do sk durante a transmissão.

Verifique o servidor externo (obs como exemplo).
SELECT * FROM pg_foreign_server WHERE srvname='obs_server';

O resultado retornado é o seguinte, indicando que foi criado com sucesso:

nome de serviço | proprietário | srvfdw | tipo de serviço | srvversão | srvacl | opções de serviço
-------------------------------------------------- +----------+--------+---------+------------+------ --+---------------------------------------------------------- -------------------------------------------------- --------------------
 obs_servidor | 16476 | 14337 | | | | {address=obs.xxx.com:5443,type=obs,encrypt=on,access_key=***,secret_access_key=***}
(1 linha)

3.4 Criar ESQUEMA EXTERNO

Obtenha o IP interno e a porta do serviço metastore do Hive e o nome do banco de dados do lado do Hive a ser acessado.

Faça login no console de gerenciamento do MRS.

Selecione "Lista de clusters > Cluster existente", clique no nome do cluster que deseja visualizar e entre na página de informações básicas do cluster.

Clique em “Ir para gerente” no escritório de gerenciamento de operação e manutenção e digite seu nome de usuário e senha para fazer login na página de gerenciamento FI.

Clique em "Cluster", "Hive", "Configuração", "Todas as configurações", "MetaStore" e "Porta" na ordem e registre o valor correspondente ao parâmetro hive.metastore.port.

Clique em "Cluster", "Hive" e "Instance" em sequência e registre o IP de gerenciamento do nome do host correspondente ao MetaStore que contém master1.

CRIAR ESQUEMA EXTERNO

// Cenário OBS de acoplamento do Hive: O nome do SERVIDOR preenche o nome do servidor externo criado em 2, DATABASE preenche o banco de dados criado no lado do Hive, METAADDRESS preenche o endereço e a porta do serviço metastore do lado do hive registrado em 1, CONFIGURATION é o caminho de configuração padrão da fonte de dados MRS. Nenhuma alteração é necessária.
DEIXAR ESQUEMA SE EXISTIR ex1;
 
CRIAR ESQUEMA EXTERNO ex1
    COM colmeia FONTE
         'Demonstração' do BANCO DE DADOS
         SERVIDOR obs_server
         METAENDEREÇO ​​'***.***.***.***:***'
         CONFIGURAÇÃO '/MRS/gaussdb/mrs_server'
 
//Cenário HDFS de acoplamento do Hive: o nome do SERVER preenche o nome da fonte de dados mrs_server criado pela criação da conexão da fonte de dados MRS, METAADDRESS preenche o endereço e a porta do serviço metastore do lado do hive registrado em 1, CONFIGURATION é o caminho de configuração padrão de a fonte de dados MRS, não há necessidade de alterar.
DEIXAR ESQUEMA SE EXISTIR ex1;
 
CRIAR ESQUEMA EXTERNO ex1
    COM colmeia FONTE
         'Demonstração' do BANCO DE DADOS
         SERVIDOR mrs_server
         METAENDEREÇO ​​'***.***.***.***:***'
         CONFIGURAÇÃO '/MRS/gaussdb/mrs_server'

Visualizar o ESQUEMA EXTERNO criado

SELECIONE * FROM pg_namespace WHERE nspname='ex1';
SELECT * FROM pg_external_namespace WHERE nspid = (SELECT oid FROM pg_namespace WHERE nspname = 'ex1');
                     nspid | nome de serviço | fonte | endereço | banco de dados | confpath | enopções | Catálogo
-------------------------------------------------- +----------+--------+---------+------------+------ --+---------------------------------------------------------- -------------------------------------------------- --------------------
                  16393 | obs_servidor | colmeia | ***.***.***.***:*** | demonstração | *** | |
(1 linha)

3.5 Executar importação de dados para a tabela Hive

Crie uma tabela de fonte de dados local, a estrutura da tabela é consistente com o hive
DROP TABLE SE EXISTE product_info_export;
CRIAR TABELA product_info_export
(
    número inteiro do produto_preço,
    id_do_produto char(30) ,
    data_hora_produto,
    nível_do_produto char(10) ,
    nome_do_produto varchar(200) ,
    tipo_produto1 varchar(20) ,
    tipo_produto2 char(10) ,
    produto_mês_vendas_cnt inteiro,
    data_comment_time do produto,
    product_comment_num inteiro,
    produto_comment_content varchar(200)                   
) ;

Importar dados

Importe tabelas do Hive de tabelas de origem locais.

INSERT INTO ex1.product_info SELECT * FROM product_info_export;

3.6 Os dados de execução são importados do hive para a tabela dws

Importar dados

Importe tabelas do Hive de tabelas de origem locais.

INSERIR EM product_info_orc_export SELECT * FROM ex1.product_info;

4 Resumo

Este artigo explica principalmente os princípios e métodos de acoplamento do GaussDB (DWS) com o hiveMetaStore.

Clique para seguir e conhecer as novas tecnologias da Huawei Cloud o mais rápido possível~

Linus resolveu resolver o problema por conta própria para evitar que os desenvolvedores do kernel substituíssem tabulações por espaços. Seu pai é um dos poucos líderes que sabe escrever código, seu segundo filho é o diretor do departamento de tecnologia de código aberto e seu filho mais novo é um núcleo. contribuidor de código aberto Huawei: Demorou 1 ano para converter 5.000 aplicativos móveis comumente usados ​​A migração abrangente para Hongmeng Java é a linguagem mais propensa a vulnerabilidades de terceiros Wang Chenglu, o pai de Hongmeng: Hongmeng de código aberto é a única inovação arquitetônica. no campo de software básico na China. Ma Huateng e Zhou Hongyi apertam as mãos para "remover rancores". Ex-desenvolvedor da Microsoft: o desempenho do Windows 11 é "ridiculamente ruim" " Embora o que Laoxiangji seja de código aberto não seja o código, as razões por trás disso são muito emocionantes. Meta Llama 3 é lançado oficialmente. Google anuncia uma reestruturação em grande escala.
{{o.nome}}
{{m.nome}}

Acho que você gosta

Origin my.oschina.net/u/4526289/blog/11054552
Recomendado
Clasificación