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
- Instalação de mysql-server
- Verificando o servidor mysql e seu processo
- Usando o comando sudo apt-get install mysql-server, podemos baixar o servidor mysql
Instale o MySQL conforme mostrado na captura de tela
- 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:
- 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
- Esta propriedade é para o nome do driver de conexão. Aqui, mysql.jdbc.Driver é o valor respeitado que devemos mencionar na tag de valor
- Esta propriedade é usada para definir o nome do usuário de conexão. Neste, definimos "hiveguru" como nome de usuário
- 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.ConnectionURL jdbc:mysql://localhost/metastore?createDatabaseIfNotExist=true metadata is stored in a MySQL server javax.jdo.option.ConnectionDriverName com.mysql.jdbc.Driver MySQL JDBC driver class javax.jdo.option.ConnectionUserName hiveuser user name for connecting to mysql server javax.jdo.option.ConnectionPassword hivepassword password 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.