Hive chapter 2

1,628 views
1,444 views

Published on

Programming Hive book
Chapter 2

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,628
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
11
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Hive chapter 2

  1. 1. Programming Hive 2.Getting Started
  2. 2. この章についてこの章では、以下に関して説明します。 ● Hadoop・Hiveのインストール方法 ● Hadoop・Hiveの設定 ● Hiveの提供する機能 ● Hiveのコマンドに関して
  3. 3. 仮想マシンのインストール以下の4サイトで公開されている、仮想マシンを使えば、HadoopやHiveがインストールされていて、すぐに実行可能な環境が手に入る。● Cloudera● MapR● Hortonworks● Think Big Analytics
  4. 4. 個別インストール● Java ○ 1.6.X, 1.7.X ○ JREではなく、JDK● Hadoop ○ 0.20.2推奨(性能・互換性)● Hive ○ Hadoopのバージョンはあまり意識しなくても大丈夫
  5. 5. Hiveに同梱されているもの● CLI ○ 対話型のHiveコマンド実行ツール● Server ○ Thrift、JDBC、ODBCを利用して、リモートアクセスを可能とする コンポーネント● Metastore ○ デフォルトはDerbyだけど、シングルプロセス用 ○ MysqlなどのRDBを利用する事も可能● HWI ○ Hiveにリモートアクセウする為のシンプルなWebインターフェー ス
  6. 6. Hiveを始めるHiveコマンドを実行 $HIVE_HOME/bin/hiveはCLIを起動する為のShellScript このコマンドを実行する事で、対話型にHiveコマンドを実行する事ができる クエリは複数行にする事も可能 デフォルトのDerbyのmetastoreは、作業ディレクトリにサブディレクトリが作成され、そこに作成されるが、設定により場所変更は可能
  7. 7. Hiveの設定基本的な設定 個人的な設定は、$HOME/.hivercに記載 ○ hive.metastore.warehouse.dir Hiveテーブルの保存場所メタストア関連 DistributedModeで利用する場合は、JDBCのデータストアを利用を推奨 ※ メタストアの容量は小さいので、ハイスペックなサーバは不要   ただし、レプリケーションなどを利用してSPOFを作らない ○ javax.jdo.option.ConnectionURL 接続先DBのURL ○ javax.jdo.option.ConnectionDiriverName DBのドライバ名 ○ javax.jdo.option.ConnectionUserName 接続先DBのユーザ名 ○ javax.jdo.option.ConnectionPassword 接続先DBのパスワード
  8. 8. Hiveコマンドコマンドオプション --help でオプションの一覧を参照可能 --service name で指定のサービスを立ち上げる事が可能 「name」には、cli, hiveserver, hwi, jar, metasotore, rcfilecatが指定可能 --auxpath でUDFなどの入ったJARファイルやJARのあるディレクトリを指定する事が可能 --config でconfのディレクトリを変更可能
  9. 9. Command-Line interfaceコマンドオプション -d, --define でCLIで利用するKeyValueを設定 NameSpaceにより、KeyValueは分けて保存されるが、上記コマンドでは、hivevarというNameSpaceに保存される NameSpaceは、hivevar, hiveconf, system, envがある KeyValueはJavaのStringで保存され、クエリ処理前にHiveによって、置換される CLIでset を利用して、値の設定・参照を行う set に -v なしだと、全てのNameSpaceの設定値が表示される set に-v をつけると、HDFSやMapReduceの設定値が表示される
  10. 10. Command-Line interfaceNameSpaceの説明 hiveconf のNameSpaceには、ユーザが利用したい任意の値を保存する(--hivevar key=value も可能) hiveconf のNameSpaceには、Hiveの振る舞いに関する値が保存される(--hiveconf key=value も可能) system のNameSpaceには、Javaのsystem関連の値が保存される env のNameSpaceには、環境変数関連の値が保存される
  11. 11. Command-Line interfaceコマンドオプション -e でクエリを指定する事で、直接HiveQLを実行可能 -S で「OK」や「Time taken...」の表示を抑制可能 $ hive -S -e "set" | grep *****を利用すると、プロパティ名を探すのに便利 -f でファイルに記載されたHiveQLを実行 HiveShellに入ってから、sourceコマンドでも同様にファイルからHiveQLを実行できる "src"というテーブルを利用したサンプルを時々見かけるが、これは不適切 HiveのUnitTestでは、"src"を作成しており、いつでもある訳ではない。
  12. 12. Command-Line interfaceコマンドオプション -i filename 指定されたファイルのHiveコマンドを実行してから、CLIを起動 $HOME/.hivercは、自動で読み込まれる ※コマンドの末尾には必ずセミコロンを付ける
  13. 13. Command-Line interfaceその他の機能 Tabキーを押す事で、キーワードや関数名がオートコンプリートで表示される ↑↓キーで、ヒストリーを参照 ただし、セミコロンまでの1クエリという単位でなく、1行単位で保存される $HOME/.hivehistoryに履歴は保存される ! を行頭につけると、ShellCommandを実行可能 ただし、パイプやワイルドカードは利用できない
  14. 14. Command-Line interfaceその他の機能 dfs を行頭につけると、DFSコマンドを実行可能 -- を行頭につけると、その行はコメント扱い hive.cli.print.header=trueを設定すると、結果の1行目にカラム名表示

×