hive 单机安装
下载hive
安装jdk:jdk1.8.0_161
hadoop 版本:hadoop-3.2.1
mysql 版本:mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz
安装目录:/usr/local/mysql,mysql 配置文件/etc/my.cnf
hive 版本是:apache-hive-2.3.9-bin
配置
tar -zxvf apache-hive-2.3.9-bin.tar.gz
包目录:/home/apache-hive-2.3.9-bin
复制hive-env.sh 和hive-default.xml
[root@master conf]# cp hive-env.sh.template hive-env.sh
[root@master conf]# cp hive-default.xml.template hive-site.xml
hive-env.sh 配置
HADOOP_HOME=/home/hadoop-3.2.1
JAVA_HOME=/home/jdk1.8.0_161
hive-site.xml配置
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://master:3306/hive?characterEncoding=utf-8</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>123456</value>
</property>
jdbc驱动配置
cp /home/mysql-connector-java-5.1.49.jar lib/
-rw-r–r–. 1 root root 1006904 Sep 5 00:15 mysql-connector-java-5.1.49.jar
初始化mysql
systemctl start mysql 启动mysql
bin/mysql -uroot -p 登陆mysql
初始化mysql
bin/schematool -dbType mysql -initSchema
初始化报错
原因:hive guava-14.0.1.jar 版本和hadoop 版本不一致
提换掉 guava-14.0.1.jar 为hadoop 版本,用高版本guava包
cp /home/hadoop-3.2.1/share/hadoop/common/lib/guava-27.0-jre.jar /home/apache-hive-2.3.9-bin/lib
报错要先建hive库
再次初始化执行成功!!
启动
bin/hive
show databases;
报错1:
出现很多告警,是连接jdbc配置问题
jdbc:mysql://master:3306/hive?characterEncoding=utf-8&useSSL=false
报错2:
在XML文档中的所有文本都会被解析器解析,非法的 XML 字符必须被替换为实体引用(entity reference),&提换成&
再次启动执行成功!
测试
create database test;
use test;
create table students(
id bigint comment '学生id',
name string comment '学生姓名',
age int comment '学生年龄',
gender string comment '学生性别',
clazz string comment '学生班级'
) comment '学生信息表'
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';
desc students;
报错1:中文乱码
show create table COLUMNS_V2;
显示latin1 ,中文编码和解码utf-8不一致
数据表columns_v2 一样显示乱码
修改:
1、修改字段注释字符集
alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;
2、修改表注释字符集
alter table TABLE_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
3、修改分区表参数,以支持分区键能够用中文表示
alter table PARTITION_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
alter table PARTITION_KEYS modify column PKEY_COMMENT varchar(4000) character set utf8;
重新建表,可以正常显示成功!
参照:
https://www.cnblogs.com/yy-yang/p/14679012.html