ハイブ - ハイブインストール

1、ハイブインストールアドレス

  1。ハイブの公式ウェブサイトのアドレス

      http://hive.apache.org/

  2。ドキュメントビュー住所

      https://cwiki.apache.org/confluence/display/Hive/GettingStarted

  3。githubのアドレス

      https://github.com/apache/hive

2、ハイブのインストールと展開

  1。ハイブインストールと設定

      (1)のapache-ハイブ-1.2.1-bin.tar.gzは、Linuxの/ opt /ソフトウェアのディレクトリをアップロード

      (2)/ OPT /モジュール/ディレクトリにApache-ハイブ-1.2.1-bin.tar.gzを抽出します

  [ルート@マスターソフトウェア] $タール-zxvfのapache-ハイブ-1.2.1-bin.tar.gzは/ opt /モジュール/

      (3)名前のApache-ハイブ-1.2.1-bin.tar.gzはハイブで変更

  [ルート@マスタモジュール] $ MVのapache-ハイブ-1.2.1-binに/ハイブ

      (4)/ OPT /モジュール/ハイブ/ハイブ-env.sh.template confディレクトリ名はhive-env.shある変更

  [ルート@マスターconfに] $ mvとハイブ-env.sh.template hive-env.sh

      (5)設定ファイルをhive-env.sh 

          (A)パス構成HADOOP_HOME

輸出HADOOP_HOME =は/ opt /モジュール/ Hadoopの-2.7.2

          (B)パス構成HIVE_CONF_DIR

輸出HIVE_CONF_DIR =は/ opt /モジュール/ハイブ/ confに

2。Hadoopクラスタ構成

     (1)を開始し、糸HDFSしなければなりません

  [ルート@マスターのHadoop-2.7.2] $ sbinに/ start-dfs.sh

  [ルート@マスターのHadoop-2.7.2] $ sbinに/ start-yarn.sh

     (2)/ TMPおよび/またはユーザ/ハイブ/倉庫2つのディレクトリを作成し、同じグループの権限にそれらを変更することは、HDFSに書き込むことができます

  [ルート@マスターのHadoop-2.7.2] $ビン/ HadoopのFSの-mkdir / tmpに

  [ルート@マスターのHadoop-2.7.2] $ビン/ HadoopのFS -mkdir -p /ユーザー/ハイブ/倉庫

 

  [ルート@マスターのHadoop-2.7.2] $ビン/ HadoopのfsのTMP / W -chmodグラム+

  [ルート@マスターのHadoop-2.7.2] $ビン/のHadoop FS -chmodグラム+ユーザ/ハイブ/倉庫/ W

            またはHDFS-site.xmlののコンフィギュレーション・ファイルのチェックHadoopの中で権限をオフにし

           <プロパティ>

                   <名前> dfs.permissions.enable </名前>

                   <value>は偽</ value>の

           </プロパティ>

 

3。ハイブの基本的な操作

  (1)スタートハイブ

[ルート@マスターハイブ] $ビン/ハイブ

  (2)Viewデータベース

ハイブ>ショーのデータベース;

  (3)デフォルトのデータベースを開きます

ハイブ>デフォルトを使用。

  (4)表示デフォルトのデータベーステーブル

ハイブ>ショーテーブル。

  (5)テーブルを作成します

ハイブ>テーブルの学生(ID int型、名前文字列)を作成します。

  (6)データベース内のいくつかのテーブルがあります

ハイブ>ショーテーブル。

  構造(7)ビューテーブル

ハイブ> DESCの学生。

  (8)テーブルにデータを挿入します

ハイブ>学生の値に挿入(1000年、「SS」)。

  (9)データルックアップテーブル

ハイブ>学生から*選択します。

ハイブを終了する(10)

         ハイブ>終了。

3、ローカルファイルのインポートハイブケース

需要

       学生/opt/module/datas/student.txtハイブ(ID int型、名前文字列)にローカルディレクトリ内のデータを紹介し、テーブル。

1。データ準備

/ opt /モジュール/件のデータディレクトリ内のデータを準備します

(1)は/ opt /モジュール/ディレクトリにある件のデータを作成します

[ルート@マスタモジュール] $のは、mkdir件のデータ

(2)は/ opt /モジュール/件のデータ/ディレクトリにstudent.txtファイルを作成し、データを追加

[ルート@マスター件のデータ] $タッチstudent.txt

[ルート@マスター件のデータ] $ viのstudent.txt

1001 zhangshan

1002リーシー

1003 zhaoliu

タブ間隔であることに注意してください。

2。ハイブ練習

(1)スタートハイブ

[ルート@マスターハイブ] $ビン/ハイブ

(2)表示データベース

ハイブ>ショーのデータベース;

(3)デフォルトのデータベースを使用して

ハイブ>デフォルトを使用。

(4)表示デフォルトのデータベーステーブル

ハイブ>ショーテーブル。

学生テーブル(5)が作成され、削除します

ハイブ>ドロップテーブルの学生。

(6)学生のテーブルを作成すると、ファイルの区切り「\ T」を宣言します

ハイブは、テーブルの学生(ID int型、名前文字列)TERMINATED行形式区切られたフィールドを作成します>

 時間あたり';

(7)/opt/module/datas/student.txtファイルには、学生のデータベーステーブルにロードされました。二重引用符もすることができ

ハイブ>負荷データテーブルの学生に地元INPATH「/opt/module/datas/student.txt」;

(8)ハイブクエリ結果

ハイブ>学生から*選択します。

OK

1001 zhangshan

1002リーシー

1003 zhaoliu

時間が取ら:0.266秒、フェッチされた:3行(複数可)

3。問題が発生しました

     その後、ハイブを開始するには、クライアントのウィンドウを開き、java.sql.SQLExceptionの例外を生成します。

     その理由は、あるメタストアデータベースに格納されているデフォルトダービー、MySQLのストレージメタストアを使用することが推奨されています。

4、MySQLのインストール

4.1インストールパッケージの準備に

1。ビューMySQLがインストールされ、インストールされている場合、アンインストールのmysql

  (1)閲覧

[ルート@マスタテーブル]#回転数-qa | grepのmysqlの

mysqlの-LIBS-5.1.73-7.el6.x86_64

  (2)アン

[ルート@マスターテーブル]#回転数-e --nodepsのMySQL-LIBS-5.1.73-7.el6.x86_64

2。現在のディレクトリにファイルを解凍しますMysql-libs.zip

[hadoop102ソフトウェア@ルート]#解凍mysql-libs.zip

[ルート@のhadoop102ソフトウェア]#LSは

mysql-libs.zip

MySQLの-LIBS

3。mysqlの-libsのフォルダに

[ルート@マスターのmysql-libsの]#のLL

76048の総量

-rw-rを - r--の。1ルートルート18509960 3月26 2015のMySQLクライアント-5.6.24-1.el6.x86_64.rpm

-rw-rを - r--の。1ルートルート3575135 12月1 2013のmysql-コネクタ-javaの-5.1.27.tar.gz

-rw-rを - r--の。1ルートルート55782196 3月26 2015のMySQLサーバ-5.6.24-1.el6.x86_64.rpm

MySQLサーバ4.2のインストール

1。MySQLサーバをインストールします。

[ルート@マスターのmysql-libsの]#回転数-ivhのMySQLサーバ-5.6.24-1.el6.x86_64.rpm

2。生成されたランダムなパスワードを見ます

[ルート@マスターのmysql-LIBS]#猫の/root/.mysql_secret

OEXaQuS8IWkG19Xs

3。表示mysqlのステータス

[ルート@マスターのmysql-libsの]#サービスのmysqlのステータス

4。MySQLを起動します

[ルート@マスターのmysql-libsの]#サービスのmysql開始

4.3クライアントは、MySQLをインストール

1。MySQLのクライアントをインストールします。

[ルート@マスターのmysql-libsの]#回転数-ivh MySQLのクライアント-5.6.24-1.el6.x86_64.rpm

2。リンクmysqlの

[ルート@マスターのmysql-libsの]#mysqlの-uroot -pOEXaQuS8IWkG19Xs

3。パスワードの変更

MySQLの> SETのPASSWORD = PASSWORD( '000000')。

4。終了mysqlの

MySQLの>終了

ユーザテーブルのホスト構成で4.4 MySQLの

コンフィギュ限り、rootユーザー+パスワードなど、任意のホストのMySQLデータベースにログインすることができます。

1。MySQLを入力します。

[ルート@マスターのmysql-libsの]#mysqlの-uroot -p000000

2。表示データベース

MySQLの>ショーのデータベース;

3。MySQLデータベースを使用します

MySQLの>使用mysqlの。

4。mysqlデータベース内のすべてのテーブルを表示します

MySQLの>ショーテーブル。

5。ユーザーのテーブル構造を表示します

MySQLの> DESCユーザー。

6。クエリユーザテーブル

MySQLの> [ユーザー、ホスト、ユーザーからパスワード。

7。ユーザテーブルを変更し、テーブルがホスト%を次のように修正されます

MySQLの>更新ユーザ設定ホストホストは=「ローカルホスト」=「%」。

8。他のホストは、rootユーザーを削除します

MySQLの>ユーザーhostは=「hadoop102」から削除します。

MySQLは>ここで、ホスト=「127.0.0.1」は、ユーザから削除します。

MySQLの>ホスト=ユーザから削除 ':: 1';

9。リフレッシュ

MySQLの>フラッシュ権限;

10。やめます

MySQLの>終了。

MySQLへ配置5、ハイブメタデータ

5.1ドライブのコピー

1。/ opt /ソフトウェア/ mysqlの-libsディレクトリにmysqlのコネクタ-javaの-5.1.27.tar.gzドライバパッケージを抽出します

      [ルート@マスターのmysql-libsの]#タール-zxvfのmysql-コネクタ-javaの-5.1.27.tar.gz

2。/ opt /モジュール/ハイブ/ libにコピーのmysql-コネクタのjava-5.1.27-bin.jarを/opt/software/mysql-libs/mysql-connector-java-5.1.27ディレクトリ/

      [ルート@マスターのmysql-コネクタのjava-5.1.27]#のcpのmysql-コネクタのjava-5.1.27-bin.jarを

 / opt /モジュール/ハイブ/ libに/

MySQLへの5.2の構成メタストア

1。/ opt /モジュール/ハイブ/ confディレクトリにハイブ-site.xmlの作成

[ルート@ mstear confに] $タッチハイブ-site.xmlの

[ルート@マスターのconf] $ viのハイブ-site.xmlに

2。公式文書の設定パラメータによると、ハイブ-site.xmlファイルにデータをコピーします

https://cwiki.apache.org/confluence/display/Hive/AdminManual+MetastoreAdmin

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
	<property>
	  <name>javax.jdo.option.ConnectionURL</name>
	  <value>jdbc:mysql://master:3306/metastore?createDatabaseIfNotExist=true</value>
	  <description>JDBC connect string for a JDBC metastore</description>
	</property>

	<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>123456</value>
	  <description>password to use against metastore database</description>
	</property>
</configuration>

3。設定が完了すると、あなたがハイブの例外を開始した場合、あなたは仮想マシンを再起動することができます。(再起動後、Hadoopクラスタを起動することを忘れないでください)

テストを開始する以上5.3ハイブ窓

1。まずMySQLを起動します

[ルート@ mstear mysqlの-LIBS] $ mysqlの-uroot -p000000

複数のデータベースへのアクセス

MySQLの>ショーのデータベース;

+ -------------------- +

| データベース|

+ -------------------- +

| INFORMATION_SCHEMA |

| mysqlの|

| performance_schema |

| テスト|

+ -------------------- +

2。再度、複数のウィンドウを開いて、各ハイブ開始

[ルート@ mstearハイブ] $ビン/ハイブ

3。ハイブを開始した後、MySQLデータベースを表示するバックウィンドウは、データベースは、メタストアの増加を示します

MySQLの>ショーのデータベース;

+ -------------------- +

| データベース|

+ -------------------- +

| INFORMATION_SCHEMA |

| メタストア|

| mysqlの|

| performance_schema |

| テスト|

+ -------------------- +

6、ハイブ一般的に使用される対話型のコマンド

[ルートmstearハイブ@] $ビン/ハイブ-help

用法:ハイブ

 -d、 - ハイブに適用するには、<キー=値>変数subsitutionを定義します

                                  コマンド。例えば-d A = Bまたは--define A = B

    --database <データベース>使用するデータベースを指定

 -e <引用されたクエリ文字列>コマンドラインからSQL

 ファイルから-f <ファイル名> SQL

 -H、 - ヘルプの印刷ヘルプ情報

    指定されたプロパティの、--hiveconf <プロパティ=値>を使用する値

    ハイブに適用する--hivevar <キー=値>変数subsitution

                                  コマンド。例えば--hivevar A = B

 -i <ファイル名>初期化SQLファイル

 -S、 - インタラクティブシェルでサイレントサイレントモード

 -v、 - verbose詳細モード(コンソールに実行したSQLをエコー)

1。「-E」はハイブ対話型のウィンドウを入力しないSQL文を実行

[ルートmstearハイブ@] $ビン/ハイブ-eは「学生からIDを選択します。」

2。「-F」は、スクリプトのSQL文を実行します

  (1)は/ opt /モジュール/件のデータディレクトリにhivef.sqlファイルを作成します

[mstear件のデータ@ルート] $タッチhivef.sql

              ファイル書か正しくSQL文

              学生から選択*;

  (2)ファイルのSQL文を実行

[ルート@のmstearハイブ] $ビン/ハイブ-f /opt/module/datas/hivef.sql

  SQL文と結果は、実行可能ファイルに(3)ファイルに書き込まれます

[mstearハイブ@ルート] $ビン/ハイブ-f /opt/module/datas/hivef.sql> /opt/module/datas/hive_result.txt

7、ハイブ他のコマンド操作

1。ハイブウィンドウを終了します。

ハイブ(デフォルト)>終了。

ハイブ(デフォルト)>終了。

    ハイブの新しいバージョンの差は、以前のバージョンではありません。

    終了:データを提出した後、終了最初の劣性。

    終了:データと終了を提出していません。

2。ハイブCLIコマンドウィンドウで、HDFSファイルシステムを表示する方法

ハイブ(デフォルト)> DFS -ls /。

3。ハイブのCLIコマンドウィンドウ内のローカルファイルシステムを表示する方法

ハイブ(デフォルト)>!lsのは/ opt /モジュール/件のデータ。

4。ハイブに入力されたすべての履歴コマンドを参照してください

  (1)現在のユーザー/ rootまたは/ホーム/ atguiguのルートディレクトリに

  (2)ビュー。Hivehistoryファイル

[ルート@ mstear〜] $猫.hivehistory

8、ハイブ共通プロパティの設定

8.1ハイブデータウェアハウスの位置設定

  ほとんどのホームポジション(1)デフォルトのデータウェアハウスは、HDFS上にある:/ユーザー/ハイブの下に/倉庫パス。

  (2)リポジトリディレクトリに、デフォルトのデータベースのデフォルトのフォルダを作成しません。デフォルトのデータベーステーブルが属する場合には、データウェアハウスのカタログに直接フォルダを作成します。

  (3)(ハイブ-site.xmlをコンフィギュレーションファイルをコピーハイブ-default.xml.template以下)デフォルトのデータウェアハウスの元の位置を変更します。

<プロパティ>

<名前> hive.metastore.warehouse.dir </名前>

<値> /ユーザ/ハイブ/倉庫</値>

<説明>倉庫のデフォルトのデータベースの場所</説明>

</プロパティ>

  ユーザーの同じグループの設定実行権限を持っています

ビン/ HDFS DFS -chmod G + W /ユーザ/ハイブ/倉庫

8.2クエリ情報表示設定

  1)ハイブ-site.xml構成ファイルに次の情報を追加し、ヘッダ情報は、ディスプレイに現在のデータベースを達成し、ルックアップテーブル構成することができます。

<プロパティ>

<名前> hive.cli.print.header </名前>

<値>真</ value>の

</プロパティ>

 

<プロパティ>

<名前> hive.cli.print.current.db </名前>

<値>真</ value>の

</プロパティ>

  2)再起動ハイブ、比較設定の違いの前と後。

  (1)コンフィギュレーションの前に、図6-2に示すように

       

                                   図6-2の前に

  (2)設定後、図6-3に示します

 

        

                                    図6-3の構成

8.3ハイブ実行中のログ設定

1.Hive的log默认存放在/tmp/atguigu/hive.log目录下(当前用户名下)

2.修改hive的log存放日志到/opt/module/hive/logs

  (1)修改/opt/module/hive/conf/hive-log4j.properties.template文件名称为hive-log4j.properties

[root@master conf]$ pwd

/opt/module/hive/conf

[root@master conf]$ mv hive-log4j.properties.template hive-log4j.properties

  (2)在hive-log4j.properties文件中修改log存放位置

         hive.log.dir=/opt/module/hive/logs

8.4 参数配置方式

1.查看当前所有的配置信息

hive>set;

2.参数的配置三种方式

  (1)配置文件方式

默认配置文件:hive-default.xml

      用户自定义配置文件:hive-site.xml

      注意:用户自定义配置会覆盖默认配置。另外,Hive也会读入Hadoop的配置,因为Hive是作为Hadoop的客户端启动的,Hive的配置会覆盖Hadoop的配置。配置文件的设定对本机启动的所有Hive进程都有效。

  (2)命令行参数方式

      启动Hive时,可以在命令行添加-hiveconf param=value来设定参数

      例如:

[root@master hive]$ bin/hive -hiveconf mapred.reduce.tasks=10;

      注意:仅对本次hive启动有效

      查看参数设置:

hive (default)> set mapred.reduce.tasks;

  (3)参数声明方式

      可以在HQL中使用SET关键字设定参数

      例如:

hive (default)> set mapred.reduce.tasks=100;

      注意:仅对本次hive启动有效。

      查看参数设置

hive (default)> set mapred.reduce.tasks;

      上述三种设定方式的优先级依次递增。即配置文件<命令行参数<参数声明。注意某些系统级的参数,例如log4j相关的设定,必须用前两种方式设定,因为那些参数的读取在会话建立以前已经完成了。

 

 

おすすめ

転載: blog.csdn.net/qq_41544550/article/details/92003836