Hive
hive 搭建三种模式:
- 内嵌模式
- 本地模式
- 远程模式
内嵌模式
Hadoop 和 Hive 整合
修改 hadoop/etc/下的 core-site.xml:
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
#上传并解压安装包
cd /opt/
tar zxvf apache-hive-3.1.3-bin.tar -C apps
# 修改简化名字
mv apache-hive-3.1.3-bin hive3.1
#解决hadoop、hive之间guawa版本差异
cd /opt/apps/hive
rm -rf lib/guava-19.0.jar
# 拷贝 hadoop 下的jar 到hive下
cp /opt/apps/hadoop-3.2.4/share/hadoop/common/lib/guava-27.0-jre.jar .
#修改hive环境变量文件 添加HADOOP_HOME
cd /opt/apps/hive3.1/conf/
# 修改文件名
mv hive-env.sh.template hive-env.sh
# 编辑文件
vim hive-env.sh
# 添加如下内容
export HADOOP_HOME=/opt/apps/hadoop-3.2.4
export HIVE_CONF_DIR=/opt/apps/hive3.1/conf
export HIVE_AUX_JARS_PATH=/opt/apps/hive3.1/lib
#初始化 metadata
cd /opt/apps/hive3.1
# 初始化 使用内嵌数据库 derby 注意:如果先配置了环境变量时,这里不用写bin/
bin/schematool -dbType derby -initSchema
#启动hive服务
bin/hive
为了方便任何目录下可以通过 hive 启动 Hive 服务,可以配置环境变量
[zhang@node1 hivetest]$ vim ~/.bashrc
# 添加如下配置
HIVE_HOME=/opt/apps/hive3.1
PATH=~/mybin:$JAVA_HOME/bin:$HIVE_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
添加完成后,就可以在任意位置启动了,但是注意!!!!!
注意:
使用内嵌模式时,任何目录启动时,都需要进行初始化操作,否则启动会抛出异常
Caused by: MetaException(message:Version information not found in metastore.)
常见错误
错误1
Caused by: java.net.ConnectException: Call From node1/192.168.184.11 to node1:9000 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
原因:没有启动 Hadoop 集群
错误2
Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V
at org.apache.hadoop.conf.Configuration.set(Configuration.java:1357)
原因:hadoop 和 Hive 的 jar 包版本冲突
解决办法:
删除 hive 目录下的: sudo rm guava-19.0.jar
拷贝 hadoop/share/hadoop/common/lib/ 下的 jar 包到 hive 下