Construção de cluster Hive sob CentOS7

1. Baixe o Hive

Este exemplo usa apache-hive-2.1.1. Baixe o hive localmente e descompacte-o conforme necessário. Link para download: http://archive.apache.org/dist/hive/
caminho descompactado:

[root@hadoop-master apache-hive-2.1.1]# pwd
/usr/local/hive/apache-hive-2.1.1

2. Instale o banco de dados mysql

Existem três maneiras de construir o Hive
内嵌Derby方式: Ao usar o método de armazenamento derby, a execução do hive irá gerar um arquivo derby e um diretório metastore_db no diretório atual. A desvantagem desse método de armazenamento é que apenas um cliente hive pode usar o banco de dados no mesmo diretório ao mesmo tempo.
本地模式: Este método de armazenamento precisa executar um servidor mysql localmente e configurar o seguinte (das duas maneiras a seguir de usar mysql, você precisa copiar o pacote jar mysql para o diretório $ HIVE_HOME / lib).
多用户模式: Este método de armazenamento precisa executar um servidor mysql no servidor remoto e precisa iniciar o meta serviço no servidor Hive.
Na análise final 元数据的存储位置不一样, os três métodos são o modo multiusuário.
Para a instalação do mysql, consulte "Instalando mysql-5.7.24 sob CentOS7"

3. Modifique o arquivo de configuração

Primeiro entre no seguinte diretório, edite o hive-site.xmlarquivo, adicione um novo se não

[root@hadoop-master conf]# vi /usr/local/hive/apache-hive-2.1.1/conf/hive-site.xml 

O conteúdo de hive-site.xml:

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

<configuration>

 <!--  在hdfs上文件的位置  -->
  <property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/usr/local/hive/warehouse</value>
  </property>

  <!--数据连接地址  -->
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://hadoop-master:3306/hive?createDatabaseIfNotExist=true</value>
    <description>JDBC connect string for a JDBC metastore</description>
  </property>
  <!-- 数据库驱动,这里使用mysql数据库驱动 -->
  <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
    <description>Driver class name for a JDBC metastore</description>
  </property>
  <!-- 数据库用户名,根据自己的数据库用户名填写 -->
  <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
    <description>username to use against metastore database</description>
  </property>
  <!-- 数据库密码,根据自己的数据库密码填写 -->
  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>root</value>
    <description>password to use against metastore database</description>
  </property>

 <property>
   <name>hive.metastore.schema.verification</name>
   <value>false</value>
    <description>
    Enforce metastore schema version consistency.
    True: Verify that version information stored in metastore matches with one from Hive jars.  Also disable automatic
          schema migration attempt. Users are required to manully migrate schema after Hive upgrade which ensures
          proper metastore schema migration. (Default)
    False: Warn if the version information stored in metastore doesn't match with one from in Hive jars.
    </description>
 </property>

 <property>
     <name>hive.querylog.location</name>
     <value>/usr/local/hive/tmp</value>
 </property>

 <property>
     <name>hive.exec.local.scratchdir</name>
     <value>/usr/local/hive/tmp</value>
 </property>

 <property>
     <name>hive.downloaded.resources.dir</name>
     <value>/usr/local/hive/tmp</value>
 </property>

 <property>
     <name>datanucleus.schema.autoCreateAll</name>
     <value>true</value>
 </property>
</configuration>

4. Adicione o driver mysql ao hive

Adicione no seguinte diretóriomysql-connector-java-5.1.30.jar

[root@hadoop-master lib]# pwd
/usr/local/hive/apache-hive-2.1.1/lib

E chomd 777 mysql-connector-java-5.1.30.jarconceder permissões
p1

5. Adicione o comando hive à variável de ambiente

[root@hadoop-master bin]# vi /etc/profile

Adicionar HIVE_HOME às variáveis ​​de ambiente

#java环境变量
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_261
export CLASSPATH=.:${
    
    JAVA_HOME}/jre/lib/rt.jar:${
    
    JAVA_HOME}/lib/dt.jar:${
    
    JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${
    
    JAVA_HOME}/bin

#配置Hadoop环境变量
export HADOOP_HOME=/usr/local/hadoop/apps/hadoop-2.7.3
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:

#配置hive环境变量
export HIVE_HOME=/usr/local/hive/apache-hive-2.1.1
export PATH=$PATH:$HIVE_HOME/bin:$HIVE_HOME/sbin:

Execute a atualização após adicionar:

[root@hadoop-master bin]# source /etc/profile

6. Iniciar colmeia

Se houver erro de inicialização:

MetaException(message:Hive metastore database is not initialized. Please use schematool (e.g. ./sch

Você pode fazer o seguinte: https://blog.csdn.net/beidiqiuren/article/details/53056270 Você
precisa executar as seguintes instruções (executadas no diretório bin do hive) para inicializar os metadados

[root@hadoop-master bin]# ./schematool -initSchema -dbType mysql

Finalmente comece a colmeia

[root@hadoop-master bin]# hive
which: no hbase in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/jdk/jdk1.8.0_261/bin:/usr/local/hadoop/apps/hadoop-2.7.3/bin:/usr/local/hadoop/apps/hadoop-2.7.3/sbin::/root/bin:/usr/local/jdk/jdk1.8.0_261/bin:/usr/local/hadoop/apps/hadoop-2.7.3/bin:/usr/local/hadoop/apps/hadoop-2.7.3/sbin::/usr/local/hive/apache-hive-2.1.1/bin:/usr/local/hive/apache-hive-2.1.1/sbin:)
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/hive/apache-hive-2.1.1/lib/log4j-slf4j-impl-2.4.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/hadoop/apps/hadoop-2.7.3/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]

Logging initialized using configuration in jar:file:/usr/local/hive/apache-hive-2.1.1/lib/hive-common-2.1.1.jar!/hive-log4j2.properties Async: true
Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
hive> 

As outras máquinas precisam apenas configurar as variáveis ​​de ambiente do hive.

Acho que você gosta

Origin blog.csdn.net/u011047968/article/details/108679838
Recomendado
Clasificación