hive的安装
hive的最新版本3.1
hive2.3.2版本
下载包:
http://mirrors.hust.edu.cn/apache/hive/
http://mirrors.shu.edu.cn/apache/hive/
http://mirrors.tuna.tsinghua.edu.cn/apache/hive/
如果懒得找,可以去我的百度盘下2.3.2版本的hive
百度云链接: https://pan.baidu.com/s/1MbRM8PyxubQ3wnjW_ZKiaw 密码: 0861
安装模式:
只需要任意选择一台hadoop的节点进行安装就可以了
准备:
hadoop正常的
jdk安装好的
按照元数据库分:
1)使用自带的元数据库--derby(关系型数据库)
步骤:
1)上传
2)解压
tar -xvzf apache-hive-2.3.2-bin.tar.gz
3)配置环境变量
export HIVE_HOME=/home/hadoop/apps/apache-hive-2.3.2-bin
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin
source /etc/profile
4)初始化元数据库
schematool -dbType derby -initSchema
初始完成标志:
Initialization script completed
schemaTool completed
初始化完成,在初始化目录下:
derby.log 元数据库日志文件
metastore_db:元数据信息
5)启动
必须保证hadoop启动
hive
hive>
验证:
show databases;
报错:hive的元数据报错 元数据库的实例化报错
FAILED: SemanticException
org.apache.hadoop.hive.ql.metadata.HiveException:
java.lang.RuntimeException: Unable to
instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
安装完成
切换目录:
报错:
FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException:
Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
原因:启动hive的时候如果使用的是默认的derby的话,默认加载启动目录下的元数据库
启动目录下没有元数据库 就会报错
重新初始化:
启动的时候 发现可以正常启动的
不同目录启动的 加载的是不同目录下的元数据信息 访问的结果是不一样的
缺陷:
只适合单用户 不适合多用户
2)元数据库使用自己安装的mysql
步骤:
1)上传
2)解压
tar -xvzf apache-hive-2.3.2-bin.tar.gz
3)配置环境变量
export HIVE_HOME=/home/hadoop/apps/apache-hive-2.3.2-bin
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin
让配置生效
source /etc/profile
4)安装mysql
参见文档
5)修改hive的配置文件
新建配置文件
touch hive-site.xml
修改:
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/myhive?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</description>
<!-- 如果 mysql 和 hive 在同一个服务器节点,那么为 localhost
注意,该节点名字是你mysql安装所在的节点-->
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>添加mysql的驱动</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>hive的元数据库mysql的用户名</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
<description>hive的元数据库mysql连接的密码</description>
</property>
</configuration>
6)将mysql的驱动包加到hive的lib下
7)初始化元数据库
schematool -dbType mysql -initSchema
8)启动hive 保证hadoop启动
hive
9)测试
show databases;
create database test;
use test;
create table test01(id int,name string);
insert into table test01 values(1,'zs');
select * from test01;