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