Hive环境搭建
( 配置Hive之前需要搭建好mysq )
1 2 3
| # 环境变量 export $HIVE_HOME=/opt/bigdata/hive export $PATH=$PATH:$HIVE_HOME/bin
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| # hive-site.xml <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>hadoop</value> </property>
# 开启hive mateStore配置 <peoperty> <name>hive.matestore.local</name> <value>false</value> </peoperty> <peoperty> <name>hive.matestore.uris</name> <value>thrift://hadoop01:9083</value> </peoperty>
|
1 2 3
| # hive-env.sh export HADOOP_HOME=/opt/bigdata/hadoop export HIVE_CONF_HOME=/opt/bigdata/hive/conf
|
记得将mysql-connector-java的驱动移动到 $HIVE_HOME/lib
最后初始化 hive :
schematool -dbType mysql -initSchema
启动Hive需要先启动hadoop集群
选配
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| # Hive WebUI -- hive-site.xml中配置 <property> <name>hive.server2.webui.host</name> <value>localhost</value> </property> <property> <name>hive.server2.webui.port</name> <value>10002</value> </property>
# 查询时显示 标题内容 <property> <name>hive.cli.print.header</name> <value>true</value> </property>
|
可能出现的问题
org.apache.hadoop.hive.metastore.HiveMetaException: Failed to get schema version.
出现的原因:
- hive-site.xml 中的账号和密码错误
- mysql 账号没有开启远程连接
- mysql时区和系统自带的时区不同
java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected
出现的原因:
- hadoop下的jline jar包和hive 下的 jline jar包版本冲突( 不同 )
解决方法:
- 将hive lib 下的 jline包复制覆盖掉hadoop - share - hadoop - yarn - lib 下的 jline 包