ハイブについて
ハイブは、構造化データファイルをマッピングするためのツールを倉庫のHadoopベースのデータの種類、データベースのテーブルであり、SQLに似たクエリを提供します。
環境情報
次のように環境情報に対応する、本明細書です。
- CentOSのLinuxのリリース1804年7月5日
- JDK:1.8.0_191
- Hadoopの:2.7.7
- ハイブ:1.2.2
Hadoopの展開と開始
- Hadoopの環境の導入と立ち上げを参照「Linuxの展開hadoop2.7.7クラスター」。
- 注:環境変数を持っていることを確認してくださいHADOOP_HOMEの設定を、
MySQLののインストールと設定(5.7.27バージョン)
- MySQLのは、メタデータを格納するために使用され、私は操作を簡単にするためにここにいますがドッキングウィンドウ環境で展開され、1行のコマンドを実行します。
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=888888 -idt mysql:5.7.27
- コンテナへのMySQLの:
docker exec -it mysql /bin/bash
- コンテナは、接続されたmysqlのある入力後、パスワードは888888:
mysql -h127.0.0.1 -uroot -p
- 新と呼ばれるハイブ MySQLアカウントを:
CREATE USER 'hive' IDENTIFIED BY '888888';
- (とhvieも他のアカウントを承認する権限を持つアカウント)のアカウントにアクセスすることを許可ハイブに:
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%' WITH GRANT OPTION;
- リフレッシュデータへのアクセス権:
flush privileges;
- ターミナルホストでMySQLサービスを再起動するには、次のコマンドを実行します。
docker exec mysql service mysql restart
- ハイブアカウントのログインmysqlのように再び容器にMySQLの、:
mysql -uhive -p
- 名前のファイルを作成ハイブデータベースを:
CREATE DATABASE hive;
インストールのハイブ
- ダウンロードへのハイブの公式サイトに、アドレスは次のとおりです。http://mirror.bit.edu.cn/apache/hive/、以下のように、適切なバージョンを選択します。
注:次のアカウントは、ルートを動作させるために使用されていませんが、根 - ホームディレクトリのHadoopにダウンロードしたアカウントだけで解凍しapacheの-ハイブ-1.2.2-bin.tar.gzファイルの名前はapacheの-ハイブ-1.2.2-のbinディレクトリ。
- 編集Hadoopのアカウントを.bash_profileのファイル、環境変数を追加し、それからだけ抽出することであるのapache-ハイブ-1.2.2-binのフォルダへのフルパス:
export HIVE_HOME=/home/hadoop/apache-hive-1.2.2-bin
- 修正後は、SSH接続を再オープンし、または実行〜/ .bash_profileのソースをので、環境変数をすぐに有効にすること。
- ディレクトリを入力しますアパッチ・ハイブ-1.2.2-binに/ confに/、テンプレートファイルと設定ファイルをコピーします。
cp hive-default.xml.template hive-default.xml
- この中でという名前のディレクトリを作成ハイブ-のsite.xml次のように、ファイルを:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://127.0.0.1:3306/hive?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>888888</value>
</property>
</configuration>
- このディレクトリ内のmysql JDBCパッケージを:/home/hadoop/apache-hive-1.2.2-bin/lib/、ここで私は使用のmysql-コネクタ- Javaベース5.1.47.jarあなたがダウンロードすることができ、します。https://download.csdn.net/download/boling_cavalry/11834367
設定作業が完了した、次のステップは、起動して初期化することです。
初期化とハイブ開始
- ディレクトリを入力しますアパッチ・ハイブ-1.2.2-binに/ binに初期化するには、次のコマンドを実行し、:
./schematool -initSchema -dbType mysql
操作が成功した後、コンソールプロンプト:
[hadoop@node0 bin]$ ./schematool -initSchema -dbType mysql
Metastore connection URL: jdbc:mysql://127.0.0.1:3306/hive?createDatabaseIfNotExist=true
Metastore Connection Driver : com.mysql.jdbc.Driver
Metastore connection User: hive
Starting metastore schema initialization to 1.2.0
Initialization script hive-schema-1.2.0.mysql.sql
Initialization script completed
schemaTool completed
- mysqlのについて話では、データベースhvieで複数のテーブルを構築しました:
mysql> show tables;
+---------------------------+
| Tables_in_hive |
+---------------------------+
| BUCKETING_COLS |
| CDS |
| COLUMNS_V2 |
| COMPACTION_QUEUE |
| COMPLETED_TXN_COMPONENTS |
| DATABASE_PARAMS |
| DBS |
| DB_PRIVS |
| DELEGATION_TOKENS |
| FUNCS |
| FUNC_RU |
| GLOBAL_PRIVS |
| HIVE_LOCKS |
| IDXS |
| INDEX_PARAMS |
| MASTER_KEYS |
| NEXT_COMPACTION_QUEUE_ID |
| NEXT_LOCK_ID |
| NEXT_TXN_ID |
| NOTIFICATION_LOG |
| NOTIFICATION_SEQUENCE |
| NUCLEUS_TABLES |
| PARTITIONS |
| PARTITION_EVENTS |
| PARTITION_KEYS |
| PARTITION_KEY_VALS |
| PARTITION_PARAMS |
| PART_COL_PRIVS |
| PART_COL_STATS |
| PART_PRIVS |
| ROLES |
| ROLE_MAP |
| SDS |
| SD_PARAMS |
| SEQUENCE_TABLE |
| SERDES |
| SERDE_PARAMS |
| SKEWED_COL_NAMES |
| SKEWED_COL_VALUE_LOC_MAP |
| SKEWED_STRING_LIST |
| SKEWED_STRING_LIST_VALUES |
| SKEWED_VALUES |
| SORT_COLS |
| TABLE_PARAMS |
| TAB_COL_STATS |
| TBLS |
| TBL_COL_PRIVS |
| TBL_PRIVS |
| TXNS |
| TXN_COMPONENTS |
| TYPES |
| TYPE_FIELDS |
| VERSION |
+---------------------------+
53 rows in set (0.00 sec)
- カタログでは/home/hadoop/apache-hive-1.2.2-bin/binコマンドの実行./hiveを開始します。
初期化と起動は、次の検証ハイブを完了しました。
検証
- フロントは実行./hive後に、名前の作成するには、次のコマンドを入力し、会話モードに入ったtest001のデータベースを:
CREATE database test001;
- データベースを選択します。
use test001;
- のTEST_TABLEという名前のテーブルを作成します。
create table test_table(
id INT,
word STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
STORED AS TEXTFILE;
- 新しいSSH接続を作成し、名前のファイルを作成hive_test.txt次のようにテキストファイルを、読み取ります。
1 aaa
2 bbb
3 ccc
4 ddd
5 eee
6 fff
- ハイブ対話とコンソールモードに戻るには、test001.test_tableテーブルにテキストファイルの内容をインポートするには、次のコマンドを入力します。
LOAD DATA LOCAL INPATH '/home/hadoop/hive_test.txt' INTO TABLE test001.test_table;
コンソールプロンプト次のように:
hive> LOAD DATA LOCAL INPATH '/home/hadoop/hive_test.txt' INTO TABLE test001.test_table;
Loading data to table test001.test_table
Table test001.test_table stats: [numFiles=1, totalSize=36]
OK
Time taken: 0.264 seconds
- 操作を選択して、あなたはすべてのデータがストレージに置かれている見ることができます。
hive> select * from test_table;
OK
1 aaa
2 bbb
3 ccc
4 ddd
5 eee
6 fff
Time taken: 0.453 seconds, Fetched: 6 row(s)
- クエリによって実行グループ:
select word,count(word) from test_table GROUP BY word;
この時点で、問い合わせの完了にジョブを開始し、次のようにコンソール出力は次のようになります。
hive> select word,count(word) from test_table GROUP BY word;
Query ID = hadoop_20191007190528_3bd50401-267b-4d75-8b08-17ead5f0d790
Total jobs = 1
Launching Job 1 out of 1
Number of reduce tasks not specified. Estimated from input data size: 1
In order to change the average load for a reducer (in bytes):
set hive.exec.reducers.bytes.per.reducer=<number>
In order to limit the maximum number of reducers:
set hive.exec.reducers.max=<number>
In order to set a constant number of reducers:
set mapreduce.job.reduces=<number>
Starting Job = job_1570427946161_0002, Tracking URL = http://node0:8088/proxy/application_1570427946161_0002/
Kill Command = /home/hadoop/hadoop-2.7.7/bin/hadoop job -kill job_1570427946161_0002
Hadoop job information for Stage-1: number of mappers: 1; number of reducers: 1
2019-10-07 19:05:34,812 Stage-1 map = 0%, reduce = 0%
2019-10-07 19:05:39,991 Stage-1 map = 100%, reduce = 0%, Cumulative CPU 1.29 sec
2019-10-07 19:05:46,201 Stage-1 map = 100%, reduce = 100%, Cumulative CPU 3.23 sec
MapReduce Total cumulative CPU time: 3 seconds 230 msec
Ended Job = job_1570427946161_0002
MapReduce Jobs Launched:
Stage-Stage-1: Map: 1 Reduce: 1 Cumulative CPU: 3.23 sec HDFS Read: 7000 HDFS Write: 36 SUCCESS
Total MapReduce CPU Time Spent: 3 seconds 230 msec
OK
aaa 1
bbb 1
ccc 1
ddd 1
eee 1
fff 1
Time taken: 18.614 seconds, Fetched: 6 row(s)
この時点で、ハイブインストールが完了し、実際の戦闘経験で、私は、これは、読者が一緒に学ぶいくつかの参照をハイブ与えることを願っています。