1、ハイブインストールアドレス
1。ハイブの公式ウェブサイトのアドレス
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相关的设定,必须用前两种方式设定,因为那些参数的读取在会话建立以前已经完成了。