hive3.1.2的下载及安装

一、hive的安装

hive3.1.2的连接地址 http://archive.apache.org/dist/hive/hive-3.1.2/

1、下载后上传到/opt/apps下

2、解压

tar -zxvf apache-hive-3.1.2-bin.tar.gz 

3、重命名

 mv apache-hive-3.1.2-bin hive-3.1.2 

4、执行以下命令,修改hive-site.xml

 cd /opt/apps/hive-3.1.2/conf 
 mv hive-default.xml.template hive-default.xml 

5、执行以下命令,新建一个hive-site.xml配置文件

vim hive-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <!-- jdbc连接的URL -->
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://centos04:3306/hive?useSSL=false</value>
</property>
 
    <!-- jdbc连接的Driver-->
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
</property>
 
	<!-- jdbc连接的username-->
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
    </property>
 
    <!-- jdbc连接的password -->
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>123456</value>
</property>
 
    <!-- Hive默认在HDFS的工作目录 -->
    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>/user/hive/warehouse</value>
    </property>
    
   <!-- Hive元数据存储的验证 -->
    <property>
        <name>hive.metastore.schema.verification</name>
        <value>false</value>
    </property>
   
    <!-- 元数据存储授权  -->
    <property>
        <name>hive.metastore.event.db.notification.api.auth</name>
        <value>false</value>
    </property>
    <!-- 指定存储元数据要连接的地址 -->
    <property>
        <name>hive.metastore.uris</name>
        <value>thrift://centos04:9083</value>
    </property>
    <!-- 指定hiveserver2连接的host -->
    <property>
        <name>hive.server2.thrift.bind.host</name>
        <value>centos04</value>
    </property>
 
    <!-- 指定hiveserver2连接的端口号 -->
    <property>
        <name>hive.server2.thrift.port</name>
        <value>10000</value>
    </property>
 
</configuration>

二、配置Mysql

1.首先下载mysql jdbc包

2.把它复制到hive/lib目录下。

3.启动并登陆mysql

4.将hive数据库下的所有表的所有权限赋给root用户,并配置123456为hive-site.xml中的连接密码,然后刷新系统权限关系表

mysql> create database hive; 
mysql> CREATE USER  'root'@'%'  IDENTIFIED BY '123456';

mysql> GRANT ALL PRIVILEGES ON  *.* TO 'root'@'%' WITH GRANT OPTION;


mysql> flush privileges;


# 配置环境变量
vim /etc/profile
export HIVE_HOME=/opt/apps/hive-3.1.2
export  PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$FLINK_HOME/bin:$HIVE_HOME/bin
# 配置文件生效
source /etc/profile



-- 初始化Hive元数据库
[root@centos04 conf]# schematool -initSchema -dbType mysql -verbose

# 启动Hive

[root@centos04 conf]# nohup hive --service metastore & 

[root@centos04 conf]# netstat -nltp | grep 9083
tcp6       0      0 :::9083                 :::*                    LISTEN      10282/java  

启动hive

1)先启动hadoop集群
start-dfs.sh

# 启动hadoop集群后,要等hdfs退出安全模式之后再启动hive。
[root@centos04 conf]# hive



# 启动远程连接(配置了HA模式需要先启动zookeeper)
hiveserver2  &
netstat -nltp | grep  10000
netstat -nltp | grep  10002
bin/beeline
!connect jdbc:hive2://centos04:10000
输入用户名  root 
输入密码  回车

三、安装中的错误

(1)hive连接提示 root is not allowed to impersonate root (state=08S01,code=0)

解决:在hadoop 的core-site.xml添加如下内容,然后重启

<property> 
<name>hadoop.proxyuser.root.groups</name> 
<value>root</value>
<description>Allow the superuser oozie to impersonate any members of the group group1 and group2</description> 
</property>


<property> 
<name>hadoop.proxyuser.root.hosts</name> 
<value>*</value> 
<description>The superuser can connect only from host1 and host2 to impersonate a user</description> 
</property>

(2)Exception in thread "main" java.lang.NoSuchMethodError:com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;) at org.apache.hadoop.conf.Configuration.set(Configuration.java:1380)

原因:hive内依赖的guava.jar和hadoop内版本不一致导致
解决方法:

  • 查看hadoop安装目录下的guava.jar版本和hive安装目录下的guava.jar是否一致
  • 如果两者不一致,则删除低版本的,把高版本的复制过去
  • 例如:hadoop3.1.3的guava版本是27,而hive3.1.2版本是19
    • hadoop路径:(opt/apps/hadoop3.1.3/share/common/lib)
    • hive路径:(opt/apps/hive-3.1.2/lib)

(3) Failed to load driver

没有com.mysql.jdbc.Driver mysql驱动,上传mysql-connector-java-5.1.47.jar到hive的lib目录下

(4) is not allowed to connect to this mysql server 本地电脑的navicat链接不上mysql
解决:

  1. mysql -u root -p 登录到mysql中。

  2. use mysql;

  3. select host from user where user='root';

  4. 修改帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入MySQL后,更改 “mysql”
    数据库里的 “user” 表里的 “host” 项,从"localhost"改称"%"

update user set host = '%' where user ='root'; flush privileges;

(5) Your password does not satisfy the current policy requirements)
解决办法:

1、查看 mysql 初始的密码策略,
输入语句 “SHOW VARIABLES LIKE ‘validate_password%’; ” 进行查看,

2、首先需要设置密码的验证强度等级,设置 validate_password_policy 的全局参数为 LOW 即可,
输入设值语句 “ set global validate_password_policy=LOW; ” 进行设值,

3、当前密码长度为 8 ,如果不介意的话就不用修改了,按照通用的来讲,设置为 6 位的密码,设置 validate_password_length 的全局参数为 6 即可,
输入设值语句 “ set global validate_password_length=6; ” 进行设值,

4、现在可以为 mysql 设置简单密码了,只要满足六位的长度即可,
输入修改语句 “ ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘123456’; ” 可以看到修改成功,表示密码策略修改成功了!!!

注:在默认密码的长度最小值为 4 ,由 大/小写字母各一个 + 阿拉伯数字一个 + 特殊字符一个,
只要设置密码的长度小于 3 ,都将自动设值为 4 ,

关于 mysql 密码策略相关参数;
1)、validate_password_length 固定密码的总长度;
2)、validate_password_dictionary_file 指定密码验证的文件路径;
3)、validate_password_mixed_case_count 整个密码中至少要包含大/小写字母的总个数;
4)、validate_password_number_count 整个密码中至少要包含阿拉伯数字的个数;
5)、validate_password_policy 指定密码的强度验证等级,默认为 MEDIUM;

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值