Hive安装,
1.vi ~/.bashrc //添加环境变量
export HIVE_HOME=/usr/local/hadoop2.6.0/hive-2.0.1-bin
export PATH=${HIVE_HOME}/bin:
2.vi hive-env.sh
export HADOOP_HOME=/usr/local/hadoop2.6.0
export HIVE_CONF_DIR=/usr/local/hadoop2.6.0/hive-2.0.1-bin/conf
export HIVE_HOME=/usr/local/hadoop2.6.0/hive-2.0.1-bin
3.vi hive-site.xml
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&useSSL=false</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>
</configuration>
4.在命令行运行 hive 命令时必须保证 HDFS 已经启动。可以使用 start-dfs.sh 来启动 HDFS。
5.对hive元数据库进行赋权,开放远程连接,开放localhost连接
grant all privileges on . to root@”%” identified by “root” with grant option;
grant all privileges on . to root@”localhost” identified by “root” with grant option;
6.往lib中添加mysql-connector-java-5.1.38.jar
问题1:如果报错Terminal initialization failed; falling back to unsupported
将/export/servers/hive/lib 里面的jline2.12替换了hadoop 中/export/servers/hadoop/hadoop-2.6.1/share/hadoop/yarn/lib/jline-0.09*.jar
问题2:
WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL
connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
解决方法:在 hive-site.xml 配置文件中 javax.jdo.option.ConnectionURL 配置项的值上加上 useSSL=false。
结果如下:
<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false</value>
问题3:
Exception in thread "main" java.lang.RuntimeException: Hive metastore database is not initialized. Please use schematool (e.g. ./schematool -initSchema -dbType ...) to create the schema. If needed, don't forget to include the option to auto-create the underlying database in your JDBC connection string (e.g. ?createDatabaseIfNotExist=true for mysql)
解决方法:执行 schematool -initSchema -dbType mysql。即安装 Hive 后,在首次运行 hive 之前要执行以上命令。
参考:https://my.oschina.net/jackieyeah/blog/735424