解壓縮hive安裝包
tar zxvf apache-hive-2.1.1-bin.tar.gz
安裝mysql
sudo yum install mysql-server
安裝 mysql connector
sudo yum install mysql-connector-java
該命令會在/usr/share/java/下產生mysql-connector-java.jar
建立鏈接
ln -s /usr/share/java/mysql-connector-java.jar /home/orco/resources/apache-hive-2.1.1-bin/lib/mysql-connector-java.jar
該命令在hive安裝目錄的lib目錄下建立軟鏈接,指向/usr/share/java/mysql-connector-java.jar
啟動mysql
sudo service mysqld start
可通過以下命令驗證mysql啟動成功(顯示mysql進程):
ps aux | grep mysql
修改mysql密碼
修改mysql密碼(改為newpass,請根據需要自行替換newpass)
mysql -u root
mysql> use mysql;
mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';
mysql> FLUSH PRIVILEGES;
允許用戶root通過任意機器訪問mysql:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'newpass' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
配置環境變量
/home/orco/.bash_profile
export HIVE_HOME=/home/orco/resources/apache-hive-2.1.1-bin
export PATH=$HIVE_HOME/bin:$PATH
運行source生效:
source ~/.bash_profile
配置hive,conf/hive-site.xml
<?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://node1:9083</value> </property> <property> <name>hive.server2.thrift.port</name> <value>10000</value> </property> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://node1/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://node1: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>root</value> </property> <property> <name>beeline.hs2.connection.password</name> <value>root</value> </property> </configuration>
注意:
hive.metastore.uris中的“node1“含義為metastore所在的機器(啟動metastore的方法見下面)
javax.jdo.option.ConnectionURL中的“node1”為mysql安裝機器的hostname
javax.jdo.option.ConnectionUserName和javax.jdo.option.ConnectionPassword分別為mysql的訪問用戶和密碼
fs.defaultFS為HDFS的namenode啟動的機器地址
beeline.hs2.connection.user和beeline.hs2.connection.password是beeline方式訪問的用戶名和密碼,可任意指定,但在beeline訪問時要寫入你指定的這個(具體參考最后面)
啟動metastore,可以配在任意節點上
nohup hive --service metastore >> /home/orco/resources/apache-hive-2.1.1-bin/metastore.log 2>&1 &
啟動hive server,用來將sql翻譯成mr,運行在集群上
nohup hive --service hiveserver2 >> /home/orco/resources/apache-hive-2.1.1-bin/hiveserver.log 2>&1 &
最后,通過輸入hive命令,進入hive吧
或者通過beeline進入,方式:
!connect jdbc:hive2://node1:10000/default root root
最后的最后,這些東西在一個節點上(比如自己機器)部署就可以了,metastore和hive server這兩個服務必須啟動,如果要防止單點故障,則在另一台機器上部一下即可,不需要要集群化,Hive是單機的,只不過他借助hadoop或者hdfs實現分布式