作業概要-HiveMySQLServerMode-Mysqlメタデータベース構成

3802 ワード

hiveデバッグ情報表示モード:


./hive -hiveconf hive.root.logger=DEBUG,console
デフォルトでは、Hiveメタデータは埋め込まれたDerbyデータベースに保存され、1つのセッション接続しか許可されず、簡単なテストにのみ適用されます.プロジェクトで大きな問題が発生しましたSpark-Schellスクリプトが起動するとhive-siteが呼び出されます.xmlプロファイル、デフォルトのプロファイルはDerby、azkabanでタスクをスケジューリングする場合、起動に失敗するという問題が発生し、チェックするとDerbyデータベースの仕業なので、Hiveのデフォルトのderbyをmysqlに変更するつもりで、hive-siteを整理します.xml構成の変更:

1、まずMysqlが必要で、次にHiveが必要です。この両者については私はあまり詳しく述べない。


2、Hiveのために相応のMySQLアカウントを創立して、そして十分な権限を与えて、命令を実行するのは以下の通りです:

hadoop@ubuntu:~$ mysql -uroot -pmysql
mysql> CREATE USER 'hive' IDENTIFIED BY 'mysql';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%' WITH GRANT OPTION;
mysql> flush privileges;

デフォルトではMysqlはローカルログインのみが許可されているため、プロファイルを変更してコメントにアドレスをバインドする必要があります.
root@ubuntu:~# sudo gedit /etc/mysql/my.cnf

次の内容が見つかりました.
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address           = 127.0.0.1  

mysqlサービスを再起動するには:
sudo service mysql restart

3、Hive専用のメタデータベースを作成し、作成時に先ほど作成した「hive」アカウントでログインしてください。

mysql> exit;
hadoop@ubuntu:~$ mysql -uhive -pmysql
mysql> create database hive;

4、Hiveのconfディレクトリの下のファイル「hive-site.xml」に以下の構成を追加する。





    
        hive.metastore.local
        true
    
    
        javax.jdo.option.ConnectionURL
        jdbc:mysql://remote_ip:3306/hive?characterEncoding=UTF-8
    
    
        javax.jdo.option.ConnectionDriverName
        com.mysql.jdbc.Driver
    
    
        javax.jdo.option.ConnectionUserName
        hive
    
    
        javax.jdo.option.ConnectionPassword
        mysql
    

「hive-site.xml」は「hive-default.xml.template」のコピーであり、中の構成パラメータは非常に多いことがわかりますが、私たちが必要とするわけではありません.Hiveシステムは2つの構成ファイルをロードします.1つはデフォルトの構成ファイル「hive-default.xml」で、もう1つはユーザーカスタムファイル「hive-site.xml」です.「hive-site.xml」の構成パラメータの値が「hive-default.xml」ファイルと一致しない場合は、ユーザー定義に準じます.そこで不要なパラメータをすべて削除し、上記の内容だけを残します.

5、MySQLのJDBCドライバパッケージをHiveのlibディレクトリにコピーする。


6、Hive Shellを起動する


「show tables;」を実行します.コマンドは、独立したメタデータベースに基づくHiveが正常にインストールされていることを示します.
hadoop@ubuntu:~$ hive
Logging initialized using configuration in file:/home/hadoop/hive-0.9.0/conf/hive-log4j.properties
Hive history file=/tmp/hadoop/hive_job_log_hadoop_201303041631_450140463.txt
hive> show tables;
OK
Time taken: 1.988 seconds
hive> 

7.Hive構成に誤りがないか確認する


Hiveのshellの新しいテーブルに入り、MySQLのHiveデータベースに対応するメタデータベース情報が表示されます.
Hiveでのデータテーブルの作成
hive> CREATE TABLE xp(id INT,name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
MySQLデータベースからのメタデータ情報の表示
使用するSQL文:
use hive;//hiveデータベースライブラリの使用
show tables;//hiveデータベースのデータテーブルの表示
select * from TBLS;//hiveのメタデータ情報の表示
このHiveにMysqlをメタデータとして統合しました.

リモートモードのインストール


リモートモードインストールはmetastoreをリモートマシンに配置し、複数配置できます.独立モードに基づいてhive-site.xmlファイルに追加された構成項目は次のとおりです.

    hive.metastore.local
    local


    hive.metastore.uris
    uri1,uri2,... //  uri
    JDBC connect string for a JDBC metastore