Configuração de HIVE Metastore com MYSQL

Anonim

Por que usar o MySQL no Hive como Metastore:

  • Por padrão, o Hive vem com o banco de dados derby como metastore.
  • O banco de dados Derby pode suportar apenas um único usuário ativo por vez
  • Derby não é recomendado em ambiente de produção

Então, a solução aqui é

  • Use MYSQL como armazenamento Meta no back-end para conectar vários usuários com Hive ao mesmo tempo
  • MYSQL é a melhor escolha para o metastore autônomo

Etapas para instalar e configurar o banco de dados MySQL no Hive no Hadoop

Etapa 1) Nesta etapa, vamos realizar duas tarefas

  1. Instalação de mysql-server
  2. Verificando o servidor mysql e seu processo
  1. Usando o comando sudo apt-get install mysql-server, podemos baixar o servidor mysql

Instale o MySQL conforme mostrado na captura de tela

  1. Após a instalação bem-sucedida no final, o MySQL será executado conforme mostrado na captura de tela abaixo

Etapa 2) Instalação do MySQL Java Connector. Isso é para dependências de java e propósito de conexão

Etapa 3) Criação de soft link para o conector no diretório lib do Hive . Isso é para soft link entre Java e MySql.

Etapa 4) Configurar o armazenamento MySql no Hive

  • Digite MySql -u root -p seguido pela senha
  • Aqui -u representa o nome de usuário root, p denota a senha
  • Após inserir o comando acima, o usuário deve inserir uma senha válida e, em seguida, clicar em inserir
  • Em seguida, ele entrará no modo shell do MySql

Passo 5) Criando nome de usuário e senha para MySql, concedendo privilégios.

Temos que executar os comandos conforme mostrado abaixo,

mysql> CREATE USER 'hiveuser'@'%' IDENTIFIED BY 'hivepassword';mysql> GRANT all on *.* to 'hiveuser'@localhost identified by 'hivepassword';mysql> flush privileges;

Etapa 6) Configurar hive-site.xml

  • Após a Etapa 5, atribua o nome de usuário e a senha ao banco de dados MySQL e os privilégios concedidos.
  • Aqui iremos configurar algumas propriedades no Hive para obter uma conexão com o banco de dados MySQL .

Na captura de tela acima, observamos o seguinte. Aqui estamos definindo 4 propriedades que podem ser necessárias para estabelecer MYSQL como Meta store no Hive

São os seguintes:

  1. Esta propriedade é para fins de URL de conexão. Aqui estamos definindo ConnectionURL nesta propriedade. Ele atua como uma conexão JDBC e também representa o local do metastore
  2. Esta propriedade é para o nome do driver de conexão. Aqui, mysql.jdbc.Driver é o valor respeitado que devemos mencionar na tag de valor
  3. Esta propriedade é usada para definir o nome do usuário de conexão. Neste, definimos "hiveguru" como nome de usuário
  4. Esta propriedade é usada para mencionar a senha de conexão. Neste, definimos senha como senha de usuário.

Uma vez que as propriedades colocadas em hive -site.xml, temos que salvar manualmente (Ctrl + S) e fechar o arquivo. Depois de fechar este arquivo, temos que criar a tabela Hive e verificar os detalhes da tabela no armazenamento MySQL.

Coloque este código em hive-site.xml

hive-site.xml


javax.jdo.option.ConnectionURLjdbc:mysql://localhost/metastore?createDatabaseIfNotExist=truemetadata is stored in a MySQL server
javax.jdo.option.ConnectionDriverNamecom.mysql.jdbc.DriverMySQL JDBC driver class
javax.jdo.option.ConnectionUserNamehiveuseruser name for connecting to mysql server
javax.jdo.option.ConnectionPasswordhivepasswordpassword for connecting to mysql server

Passo 7) Crie a tabela "guru99" no Hive.

Na captura de tela acima, podemos observar o seguinte

  • Criação do nome da tabela "guru99" com dois nomes de coluna
  • Os nomes das colunas mencionados com seu tipo de dados como um é inteiro e outro é do tipo string

Na próxima etapa, vamos verificar se ele está armazenado no MySql ou não

Etapa 8) Entrando no modo shell MySql

Na captura de tela acima, podemos observar o seguinte

  • Primeiro temos que usar o banco de dados como "usar metastore"
  • Depois de escolher a meta store, podemos verificar as tabelas presentes neste usando o comando "show" tables como mostrado na imagem
  • Quaisquer que sejam as tabelas criadas no Hive, os metadados correspondem às tabelas armazenadas em TBLS no banco de dados MySQL.
  • A "tabela Guur99" é criada no Hive, portanto, os metadados correspondentes são armazenados no MySQL em TBLS.

Etapa 9) Verificar se a tabela criada apresenta MySQL ou não

Ao inserir select * from TBLS, ele exibirá as tabelas que criamos no modo shell Hive

Na captura de tela acima, podemos observar as seguintes coisas:

  • O nome da tabela "guru99" que foi criada é o Hive pode ser exibido no modo shell do MySQL
  • Além disso, ele também fornecerá informações como horário de criação da tabela, horário de acesso e outras propriedades conforme mostrado na captura de tela acima.