Hiveの——Hive 2.3.4設置と配置
転載は出典を明記してください。https://blog.csdn.net/l1028386804/article/details/88014099
HiveはHadoopベースのデータ倉庫です。構造化されたデータファイルをテーブルにマッピングして、クラスsqlクエリ機能を提供します。Hive下の階でsql文をMapReduceタスクに変換して実行します。Hive 2.3.4からmaste rの/home/dc 2-userをダウンロードして解凍します。
以下の内容を編集/etc/profileファイルに追加します。
以下の設定ファイルの名前を変更します。
属性に対応するvalueの値を変更します。
Hive Metastoreは、Hiveテーブルとパーティションのメタデータを取得するために使用され、このようなメタデータは、本例ではmaridbを使用して記憶される。mysql-connector-java-51.40-bin.jarをHIVE_に入れます。HOME/libで、hive-site.xmlでMySQLデータベース接続情報を設定します。
この例で使われているのはマリアードbです。
Hiveを実行する前に、HFSが起動したことを保証しなければなりません。start-dfs.shを使って起動してもいいです。もし以前にHadoopをインストールしたなら、次のステップは省略できます。Hive 2.1バージョンからHiveを起動する前にschematolコマンドを実行して初期化操作を実行します。
Hiveでテーブルを作成します。
HiveはHadoopベースのデータ倉庫です。構造化されたデータファイルをテーブルにマッピングして、クラスsqlクエリ機能を提供します。Hive下の階でsql文をMapReduceタスクに変換して実行します。Hive 2.3.4からmaste rの/home/dc 2-userをダウンロードして解凍します。
wget http://mirror.bit.edu.cn/apache/hive/hive-2.3.4/apache-hive-2.3.4-bin.tar.gz
tar zxvf apache-hive-2.3.4-bin.tar.gz
Hive環境変数を設定します。以下の内容を編集/etc/profileファイルに追加します。
sudo vi /etc/profile
export HIVE_HOME=/home/dc2-user/apache-hive-2.3.4-bin
export PATH=$PATH:$HIVE_HOME/bin
環境変数を有効にする:source /etc/profile
Hiveを設定以下の設定ファイルの名前を変更します。
cd apache-hive-2.3.4-bin/conf/
cp hive-env.sh.template hive-env.sh
cp hive-default.xml.template hive-site.xml
cp hive-log4j2.properties.template hive-log4j2.properties
cp hive-exec-log4j2.properties.template hive-exec-log4j2.properties
hive-env.shを変更:export JAVA_HOME=/home/dc2-user/java/jdk1.8.0_191 ##Java
export HADOOP_HOME=/home/dc2-user/hadoop-2.7.7 ##Hadoop
export HIVE_HOME=/home/dc2-user/apache-hive-2.3.4-bin ##Hive
export HIVE_CONF_DIR=$HIVE_HOME/conf ##Hive
hive-site.xmlを修正します。属性に対応するvalueの値を変更します。
vi hive-site.xml
hive.exec.scratchdir
/tmp/hive-${user.name}
HDFS root scratch dir for Hive jobs which gets created with write all (733) permission. For each connecting user, an HDFS scratch dir: ${hive.exec.scratchdir}/ is created, with ${hive.scratch.dir.permission}.
hive.exec.local.scratchdir
/tmp/${user.name}
Local scratch space for Hive jobs
hive.downloaded.resources.dir
/tmp/hive/resources
Temporary local directory for added resources in the remote file system.
hive.querylog.location
/tmp/${user.name}
Location of Hive run time structured log file
hive.server2.logging.operation.log.location
/tmp/${user.name}/operation_logs
Top level directory where operation logs are stored if logging functionality is enabled
Hive Metastoreの設定Hive Metastoreは、Hiveテーブルとパーティションのメタデータを取得するために使用され、このようなメタデータは、本例ではmaridbを使用して記憶される。mysql-connector-java-51.40-bin.jarをHIVE_に入れます。HOME/libで、hive-site.xmlでMySQLデータベース接続情報を設定します。
javax.jdo.option.ConnectionURL
jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&characterEncoding=UTF-8&useSSL=false
javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver
javax.jdo.option.ConnectionUserName
hive
javax.jdo.option.ConnectionPassword
hive
HiveのためにHFSディレクトリを作成します。start-dfs.s # hadoop ,
hdfs dfs -mkdir /tmp
hdfs dfs -mkdir -p /usr/hive/warehouse
hdfs dfs -chmod g+w /tmp
hdfs dfs -chmod g+w /usr/hive/warehouse
mysqlをインストールしますこの例で使われているのはマリアードbです。
sudo yum install -y mariadb-server
sudo systemctl start mariadb
mysqlを登録して、初期はパスワードがなくて、Hveユーザーを創建してそしてパスワードを設定します。mysql -uroot
MariaDB [(none)]> create user'hive'@'localhost' identified by 'hive';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> grant all privileges on *.* to hive@localhost identified by 'hive';
Query OK, 0 rows affected (0.00 sec)
Hiveを実行Hiveを実行する前に、HFSが起動したことを保証しなければなりません。start-dfs.shを使って起動してもいいです。もし以前にHadoopをインストールしたなら、次のステップは省略できます。Hive 2.1バージョンからHiveを起動する前にschematolコマンドを実行して初期化操作を実行します。
schematool -dbType mysql -initSchema
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/dc2-user/apache-hive-2.3.4-bin/lib/log4j-slf4j-impl-2.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/dc2-user/hadoop-2.7.7/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
Metastore connection URL: jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true
Metastore Connection Driver : com.mysql.jdbc.Driver
Metastore connection User: hive
Starting metastore schema initialization to 2.3.0
Initialization script hive-schema-2.3.0.mysql.sql
Initialization script completed schemaTool completed
Hiveを起動し、コマンドHiveを入力します。hive
which: no hbase in (/home/dc2-user/java/jdk1.8.0_191/bin:/home/dc2-user/hadoop-2.7.7/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/usr/local/bin:/home/dc2-user/apache-hive-2.3.4-bin/bin:/home/dc2-user/.local/bin:/home/dc2-user/bin)
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/dc2-user/apache-hive-2.3.4-bin/lib/log4j-slf4j-impl-2.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/dc2-user/hadoop-2.7.7/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
Logging initialized using configuration in file:/home/dc2-user/apache-hive-2.3.4-bin/conf/hive-log4j2.properties Async: true Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
hive>
テストHiveHiveでテーブルを作成します。
hive> create table test_hive(id int, name string)
> row format delimited fields terminated by '\t' # tab
> stored as textfile; # , TEXTFILE, , [STORED AS TEXTFILE], HDFS ,hive
OK
Time taken: 10.857 seconds
hive> show tables;
OK test_hive
Time taken: 0.396 seconds, Fetched: 1 row(s)
テーブルが作成されました。quitを入力してください。Hiveを終了して、次にテキスト形式でデータを作成します。vi test_tb.txt
101 aa
102 bb
103 cc
Hiveに入り、データをインポートします。hive> load data local inpath '/home/dc2-user/test_db.txt' into table test_hive;
Loading data to table default.test_hive
OK
Time taken: 6.679 seconds
hive> select * from test_hive;
101 aa
102 bb
103 cc
Time taken: 2.814 seconds, Fetched: 3 row(s)
データの挿入に成功し、正常に確認できます。