CentOS7でのHiveクラスターの構築

1. Hiveをダウンロードする

この例ではapache-hive-2.1.1を使用しています。ハイブをローカルにダウンロードし、必要に応じて解凍してください。ダウンロードリンク:http://archive.apache.org/dist/hive/
非圧縮パス:

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

2. mysqlデータベースをインストールする

Hiveをビルドするには3つの方法があります。
内嵌Derby方式:: derbyストレージを使用している場合、hiveを実行すると、現在のディレクトリにderbyファイルとmetastore_dbディレクトリが生成されます。この格納方法の欠点は、1つのハイブクライアントのみが同じディレクトリ内のデータベースを同時に使用できることです。
本地模式:このストレージメソッドは、mysqlサーバーをローカルで実行し、以下を構成する必要があります(mysqlを使用するには、次の2つの方法で、mysql jarパッケージを$ HIVE_HOME / libディレクトリにコピーする必要があります)。
多用户模式:このストレージメソッドは、リモートサーバーでmysqlサーバーを実行する必要があり、Hiveサーバーでメタサービスを開始する必要があります。
最終的な分析元数据的存储位置不一样では、3つの方法はマルチユーザーモードです。
mysqlのインストールについては、「CentOS7でのmysql-5.7.24のインストール」を参照してください

3.構成ファイルを変更します

まず次のディレクトリに入り、hive-site.xmlファイルを編集し、そうでなければ新しいディレクトリを追加ます

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

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. mysqlドライバをハイブに追加します

次のディレクトリに追加mysql-connector-java-5.1.30.jar

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

そしてchomd 777 mysql-connector-java-5.1.30.jar許可を与える
p1

5. hiveコマンドを環境変数に追加します

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

HIVE_HOMEを環境変数に追加する

#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:

追加後に更新を実行します。

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

6.ハイブを開始する

起動エラーの場合:

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

次のよう
に実行できます。https://blog.csdn.net/beidiqiuren/article/details/53056270 次の手順(ハイブのbinディレクトリで実行)を実行して、メタデータを初期化する必要があります。

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

最後にハイブを開始します

[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> 

他のマシンは、ハイブの環境変数を構成するだけで済みます。

おすすめ

転載: blog.csdn.net/u011047968/article/details/108679838