hive-07.0オフィシャル《GettingStartd》メモ
ダウンロード
wgethttp://mirror.bjtu.edu.cn/apache/hive/hive-0.7.0/hive-0.7.0.tar.gz
tar-zxf hive-0.7.0.tar.gz
cd hive-0.7.0
vi~/.bashrc
export HIVE_HOME={youhivegame here}
export PATH=$HIVE_HOME/bin:$PATH
HFSパスを初期化する
HIVEの設定
hiveプロファイルのパスは、hive-0.7.0/conf/hive-default.xmlです。
hiveコマンド実行時にプロファイルのプロパティを上書きすることができます。 bin/hive -hiveconf x 1=y 1 -hiveconf x 2=y 2
hiveにhadoopの属性を設定できます。SET mapred.job.tracker=myhost.mycompany.com:50030;
0.7バージョンからhiveはlocal運転モードをサポートします。コマンド:
0.7バージョンからhiveは自動map reduce job local動作モードをサポートします。コマンド:
以下のような場合、自動的にlocal map reduce jobを起動します。 jobのすべての入力は「hive.exc.mode.local.aut.inputbytes.max」より小さいです(デフォルト128 MB) mapタスクの数は、「hive.exec.mode.local.aut.task.max」(デフォルトは4) より小さいです。 reduceタスクの数は“1”または“0” である。
hiveのデフォルトのlogパスは、hive.log.dir=/tmp/$
以下は常用語句です。
hiveはデフォルトでは埋め込まれたderbyデータベースを使ってmetadataデータを記憶していますが、デフォルトの格納経路は「hive-0.70/bin/metastoreudb」です。埋め込まれた方式では複数のユーザが同時にhiveコマンドを操作することは許されません。二人が同時にhiveを操作すれば、二人目の人はエラーが発生します。
メタダはJDOでサポートされているデータベースに保存できます。
javax.jdo.options.onnection URL
javax.jdo.options.onnection DriverName
この2つの属性は指定されています。初期化されたデータベースのschemaは、「hive-0.7.0/src/metastore/src/model/package.jdo」ファイルです。
提案:hive-default.xmlファイルを修正する「javax.jdo.optionononnection URL」の属性はjdbc:derby:;databaseName=/where_あなたwantpath/metastore_db;create=trueこのように、どこでもhiveを実行すれば、metaデータが見つけられます。そうでないと、新しいパスごとにhiveを実行すると、metastoreを作成します。dbフォルダ
DMM操作
LOAD DATA LOCAL INPATH'/examples/files/kv 3.txt'OVERWRITE INTO TABLE invites PATION(ds='2008-08-08')
LOCAL:このパラメータは、導入するファイルのパスがローカルパスであることを示しています。このパラメータがないと、HFSパスを指定する必要があります。
INPATH:後のパラメータがpathであれば、フォルダのすべてのファイルをインポートします。
OVERWRITE:既存のファイル(そのcopyuxファイルを含む)を削除してからLOADの新しいファイルを作成します。このパラメータを削除すると、同じファイルがあったらhdfsを導入します。copy_1 exist File_copy_2
PART TION :現在のデータをパーティションに格納することを指定します。パーティションは大きなデータjobを分解するのに役立ちます。より良いクラスタの多マシンを使用する利点があります。
SQL操作
exampleファイルパス:hive-0.7.0/src/ql/Src/test/queries/positive/
SQL実行が完了したら結果をconsoneに表示しますが、結果は保存されません。PARTTIONのテーブルを含め、where文にはPARTTIONフィールドの限定が含まれていなければなりません。
SELECT a.foo FROM invites a WHERE a.ds='2008-08-15'
INSERT OVERWRITE DIRECTORY'/tmp/hdfs_out'SELECT a.*FROM invites a WHERE a.ds='2008-08-15';
INSERT OVERWRITE LOCAL DIRECTORY'/tmp/local_out'SELECT a.*FROM pokes a;
INSERT OVERWRITE TABLE events SELECT a.*FROM profiles a; DIRECTORY:結果をhdfs に保存します。 LOCAL DIRECTORY:結果はローカルファイルに保存されます。 TABLE:結果は他のテーブルフォルダに保存されます。
テーブルの作成と同時に指定します。
フィールドの区切り記号
:
CREATE TABLE u_ダタ
userid INT、
movieind INT
rating INT、
unixtime STRING)
ROW FOREMAT DELIMITED
FIEDS TEMINATED BY'\t'
STORED AS TEXTFILE
インストール中に問題が発生しました。
Q:java.lang.NoSuchMethodError:org.apphe.com mmons.lang.StringUtils.ends With(Ljava/lang/String;Ljava/lang/String;)Z
問題はhadoopのlibの下にあるcommon-langのjarとhiveのlibの中のcommon-langが衝突しました。hadoopの中のjarを落とします。
wgethttp://mirror.bjtu.edu.cn/apache/hive/hive-0.7.0/hive-0.7.0.tar.gz
tar-zxf hive-0.7.0.tar.gz
cd hive-0.7.0
vi~/.bashrc
export HIVE_HOME={youhivegame here}
export PATH=$HIVE_HOME/bin:$PATH
HFSパスを初期化する
hadoop fs -mkdir /tmp
hadoop fs -mkdir /user/hive/warehouse
hadoop fs -chmod g+w /tmp
hadoop fs -chmod g+w /user/hive/warehouse
HIVEの設定
hiveプロファイルのパスは、hive-0.7.0/conf/hive-default.xmlです。
hiveコマンド実行時にプロファイルのプロパティを上書きすることができます。 bin/hive -hiveconf x 1=y 1 -hiveconf x 2=y 2
hiveにhadoopの属性を設定できます。SET mapred.job.tracker=myhost.mycompany.com:50030;
0.7バージョンからhiveはlocal運転モードをサポートします。コマンド:
SET mapred.job.tracker=local;
0.7バージョンからhiveは自動map reduce job local動作モードをサポートします。コマンド:
hive> SET hive.exec.mode.local.auto=true;
以下のような場合、自動的にlocal map reduce jobを起動します。
hiveのデフォルトのlogパスは、hive.log.dir=/tmp/$
以下は常用語句です。
CREATE TABLE pokes (foo INT, bar STRING);
CREATE TABLE invites (foo INT, bar STRING) PARTITIONED BY (ds
STRING);
SHOW TABLES;
SHOW TABLES '.*s';
DESCRIBE invites;
ALTER TABLE pokes ADD COLUMNS (new_col INT);
ALTER TABLE invites ADD COLUMNS (new_col2 INT COMMENT 'a comment');
ALTER TABLE events RENAME TO 3koobecaf;
DROP TABLE pokes;
メタダファイル記憶hiveはデフォルトでは埋め込まれたderbyデータベースを使ってmetadataデータを記憶していますが、デフォルトの格納経路は「hive-0.70/bin/metastoreudb」です。埋め込まれた方式では複数のユーザが同時にhiveコマンドを操作することは許されません。二人が同時にhiveを操作すれば、二人目の人はエラーが発生します。
メタダはJDOでサポートされているデータベースに保存できます。
javax.jdo.options.onnection URL
javax.jdo.options.onnection DriverName
この2つの属性は指定されています。初期化されたデータベースのschemaは、「hive-0.7.0/src/metastore/src/model/package.jdo」ファイルです。
提案:hive-default.xmlファイルを修正する「javax.jdo.optionononnection URL」の属性はjdbc:derby:;databaseName=/where_あなたwantpath/metastore_db;create=trueこのように、どこでもhiveを実行すれば、metaデータが見つけられます。そうでないと、新しいパスごとにhiveを実行すると、metastoreを作成します。dbフォルダ
DMM操作
LOAD DATA LOCAL INPATH'/examples/files/kv 3.txt'OVERWRITE INTO TABLE invites PATION(ds='2008-08-08')
LOCAL:このパラメータは、導入するファイルのパスがローカルパスであることを示しています。このパラメータがないと、HFSパスを指定する必要があります。
INPATH:後のパラメータがpathであれば、フォルダのすべてのファイルをインポートします。
OVERWRITE:既存のファイル(そのcopyuxファイルを含む)を削除してからLOADの新しいファイルを作成します。このパラメータを削除すると、同じファイルがあったらhdfsを導入します。copy_1 exist File_copy_2
PART TION :現在のデータをパーティションに格納することを指定します。パーティションは大きなデータjobを分解するのに役立ちます。より良いクラスタの多マシンを使用する利点があります。
SQL操作
exampleファイルパス:hive-0.7.0/src/ql/Src/test/queries/positive/
SQL実行が完了したら結果をconsoneに表示しますが、結果は保存されません。PARTTIONのテーブルを含め、where文にはPARTTIONフィールドの限定が含まれていなければなりません。
SELECT a.foo FROM invites a WHERE a.ds='2008-08-15'
INSERT OVERWRITE DIRECTORY'/tmp/hdfs_out'SELECT a.*FROM invites a WHERE a.ds='2008-08-15';
INSERT OVERWRITE LOCAL DIRECTORY'/tmp/local_out'SELECT a.*FROM pokes a;
INSERT OVERWRITE TABLE events SELECT a.*FROM profiles a;
テーブルの作成と同時に指定します。
フィールドの区切り記号
:
CREATE TABLE u_ダタ
userid INT、
movieind INT
rating INT、
unixtime STRING)
ROW FOREMAT DELIMITED
FIEDS TEMINATED BY'\t'
STORED AS TEXTFILE
インストール中に問題が発生しました。
Q:java.lang.NoSuchMethodError:org.apphe.com mmons.lang.StringUtils.ends With(Ljava/lang/String;Ljava/lang/String;)Z
問題はhadoopのlibの下にあるcommon-langのjarとhiveのlibの中のcommon-langが衝突しました。hadoopの中のjarを落とします。