1. 解壓 hive 安裝包java
sudo tar -zxvf apache-hive-2.1.1-bin.tar.gz
2. 安裝 mysql node
sudo yum install mysql-server
3. 安裝 mysql-connectormysql
sudo yum install mysql-connector-java
4. 創建 mysql-connector 連接sql
ln -s /usr/share/java/mysql-connector-java.jar /opt/apache-hive-2.1.1-bin/lib/mysql-connector-java.jar
5. 啓動 mysql數據庫
sudo service mysqld start
驗證 mysql 服務 是否啓動成功express
ps aux | grep mysql
6. 修改 mysql 數據庫的 root 用戶的密碼apache
# 使用mysql的root用戶登陸,root用戶的初始密碼爲空字符串 [bigdata@bigdata ~]$ mysql -u root # 使用mysql數據庫 mysql> use mysql # 修改root用戶的密碼爲newPassword mysql> update user set password = password('root') where user = 'newPassword'; # 刷新權限使新密碼當即生效 mysql> flush privileges; # 設置容許root用戶經過任意機器訪問mysql mysql> grant all privileges on *.* to 'root'@'%' identified by 'newPassword' with grant option; # 刷新權限 mysql> flush privileges;
7. 配置 Hive 環境變量bash
export HIVE_HOME=/opt/apache-hive-2.1.1-bin # 在下面這行末尾添加 :$HIVE_HOME/bin export PATH=$HOME/bin:$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$FLUME_HOME/bin:$HIVE_HOME/bin
source ~/.bash_profile
8. 配置 /opt/apache-hive-2.1.1-bin/conf/hive-site.xmlapp
- hive.metastore.uris中的 bigdata 含義爲 metastore 所在的機器
- javax.jdo.option.ConnectionURL中的 bigdata 爲 mysql 安裝機器的 hostname
- javax.jdo.option.ConnectionUserName 和 javax.jdo.option.ConnectionPassword 分別爲mysql 的訪問用戶和密碼,可經過如下命令驗證是否有效(期中bigdata爲javax.jdo.option.ConnectionURL中配置的地址,xxx爲mysql用戶名):mysql –h bigdata-u xxx –p
- fs.defaultFS 爲HDFS的 namenode 啓動的機器地址
- beeline.hs2.connection.user 和 beeline.hs2.connection.password 是beeline方式訪問的用戶名和密碼,可任意指定,但在beeline訪問時要寫入你指定的這個
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. See accompanying LICENSE file. --> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>hive.metastore.uris</name> <value>thrift://bigdata:9083</value> </property> <property> <name>hive.server2.thrift.port</name> <value>10000</value> </property> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://bigdata/metastore?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>root</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>root</value> </property> <property> <name>hive.metastore.schema.verification</name> <value>false</value> </property> <property> <name>hive.metastore.warehouse.dir</name> <value>/warehouse</value> </property> <property> <name>fs.defaultFS</name> <value>hdfs://bigdata:9000</value> </property> <property> <name>datanucleus.autoCreateSchema</name> <value>true</value> </property> <property> <name>datanucleus.autoStartMechanism</name> <value>SchemaTable</value> </property> <property> <name>datanucleus.schema.autoCreateTables</name> <value>true</value> </property> <property> <name>beeline.hs2.connection.user</name> <value>bigdata</value> </property> <property> <name>beeline.hs2.connection.password</name> <value>bigdata</value> </property> </configuration>
9. 啓動 metestore,啓動 hive serverless
# 啓動 metastore nohup hive --service metastore >> /opt/apache-hive-2.1.1-bin/metastore.log 2>&1 & # 啓動 hive server nohup hive --service hiveserver2 >> /opt/apache-hive-2.1.1-bin/hiveserver.log 2>&1 & # 查看hive metastore 和 hiveserver2 是否啓動成功 ps aux | grep hive
10. Hive 的兩種訪問方式
# 第一種訪問方式 hive # 第二種訪問方式 # 其中 bigdata 和 bigdata 分別是在 hive-site.xml 配置文件中由 beeline.hs2.connection.user 和 beeline.hs2.connection.password 設置的。 beeline !connect jdbc:hive2://bigdata:10000/default bigdata bigdata
注1:若是要使用beeline或JDBC鏈接hive時,遇到報錯:org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: xxx is not allowed to impersonate xxx ,需在hadoop的配置文件core-site.xml中加入如下配置(其中紅色標誌的「bigdata」提出你設置的beeline.hs2.connection.user),並重啓hiveserver2:
<property>
<name>hadoop.proxyuser.bigdata.groups</name>
<value>*</value>
</property><property>
<name>hadoop.proxyuser.bigdata.hosts</name>
<value>*</value>
</property>注2:若是在刪除數據庫的時候出現 Table 'metastore.TXN_COMPONENTS' doesn't exist錯誤,說明Mysql中的metaStore數據庫沒有初始化成功,須要中止metastore/hiveserver2以後,刪除mysql中的metastore數據庫,而後使用下面的命令去從新初始化metastore:
schematool -dbType mysql -initSchema注3:啓動Beeline的時候,若是出現ls: cannot access /home/bigdata/apache-hive-2.1.0-bin/lib/hive-jdbc-*-standalone.jar: No such file or directory錯誤,執行下面的命令消除錯誤:
cp jdbc/hive-jdbc-2.1.0-standalone.jar lib/
固然,若是不執行該命令,也沒有關係,不影響實際命令的執行。
啓動 HIVE 過程總結:
1. 啓動 hdfs
/opt/hadoop-2.7.4/sbin/start-dfs.sh2. 啓動 yarn
/opt/hadoop-2.7.4/sbin/start-yarn.sh3. 啓動 historyserver
/opt/hadoop-2.7.4/sbin/mr-jobhistory-daemon.sh start historyserver4. 啓動 mysql
sudo service mysqld start5. 啓動 hive 的 metastore 和 hiveserver2
# 啓動 metastore nohup hive --service metastore >> /opt/apache-hive-2.1.1-bin/metastore.log 2>&1 & # 啓動 hive server nohup hive --service hiveserver2 >> /opt/apache-hive-2.1.1-bin/hiveserver.log 2>&1 &備註: yarn 配置 https://my.oschina.net/u/1411151/blog/1609057