Linux centos7配置hive

1.准备环境

 1. jdk1.8(最好还是使用1.8版本的jdk)
 2. mysql5.6或者5.7也可以
 3. hadoop3.X版本

至于linux配置mysql,可以参考我的这篇博客。
Linux Centos7配置mysql

2.开始配置

  1. 下载apache-hive

    可以通过wget方式下载,为了方便傻瓜式配置文件路径尽量和我保持一直吧。

    [root@hadoop1 ~]#  mkdir /opt/hadoop
    
    [root@hadoop1 ~]#  cd /opt/hadoop
    
    [root@hadoop1 hadoop]#  wget -i -c https://ljy0427.online/install/apache-hive-3.1.2-bin.tar.gz
    

    #如果提示wget报错的话,那就试试这个命令

    [root@hadoop1 ~]# yum install wget -y
    

    #通过这种方式下载可能有点慢,毕竟是自己的小型服务器。

  2. 解压并重命名

    [root@hadoop1 hadoop]# tar -zxvf apache-hive-3.1.2-bin.tar.gz
    
    [root@hadoop1 hadoop]# mv apache-hive-3.1.2-bin hive
    
  3. 配置环境变量

    [root@hadoop1 hadoop]# vim /etc/profile
    
     1. 将以下东西添加到该/etc/profile文件中
     2. export  HIVE_HOME=/opt/hadoop/hive
    	export  PATH=$HIVE_HOME/bin:$PATH
    

    在这里插入图片描述

    之后使用下面这个命令重新刷新配置文件
    [root@hadoop1 hadoop]# source /etc/profile

  4. 查看配置是否成功

    [root@hadoop1 hadoop]# hive -version
    

    看到报错了吧,是不是慌得一批,其实我告诉你,莫慌,很正常,看看报错是不是和我一样吧,如果不一样,那再慌也不迟。
    在这里插入图片描述
    出现这个问题是因为hadoop中没有guava-27.0-jre.jar这个包,或者是hive和hadoop中的这个包的版本不一样,解决办法来啦,好好看好好学。

    [root@hadoop1 hadoop]# cd /opt/hadoop/hive/lib
    
    [root@hadoop1 lib]# wget -i -c https://ljy0427.online/install/guava-27.0-jre.jar
    

    注意,下载了之后查看当前文件夹里面是否存在低版本的guava包,如果有,放心大胆的删了吧,不删会出问题哦。

    [root@hadoop1 lib]# cp guava-27.0-jre.jar /opt/hadoop/hadoop-3.3.0/share/hadoop/common
    

    现在再试试 上面那个 hive -version命令,是不是不一样了。
    嗯,是不一样了,但又出新问题了,莫慌,看看和我一样不,如果一样的话,就是缺少mysql的jar包,给它导进去不就完了。
    在这里插入图片描述
    再在这个目录下面执行以下操作

    [root@hadoop1 lib]# wget -i -c https://ljy0427.online/install/mysql-connector-java-5.1.32.jar
    

    现在再来执行hive -version操作,看看效果吧,这个运行有点慢,慢慢等,可以先斗上把地主。
    看看是不是成了啊。
    这个时候有的同学可能还是报错,就会慌了,然后就挠了挠头,奇了怪了。不要慌,看看报错和这个一样不吧。
    在这里插入图片描述
    这个就是由于hadoop环境没有启动所导致的,看到这里,还不快去把配好的hadoop环境给启动了,还想再斗把地主再去??
    勾重点,重点来了,hive这个环境是要在hadoop的支持下才能运行,所以全程请保证hadoop环境正常哦。
    启动好hadoop环境之后再来试试这个hive -version这个命令吧。哇成功了,有点小激动。
    在这里插入图片描述
    来到这里说明成功一大半了,加油,这是退出hive。

    hive> exit;
    
  5. 配置hive
    1.进入/conf文件夹

    [root@hadoop1 lib]# cd ../conf
    

    2.复制配置文件(这里就不做过多的解释,想了解为什么,就看看hive-env.sh.template这个文件中的说明吧)

    [root@hadoop1 conf]# cp hive-env.sh.template hive-env.sh
    

    3.修改hive-env.sh文件

    [root@hadoop1 conf]# vim hive-env.sh
    
     HADOOP_HOME=/opt/hadoop/hadoop-3.3.0
     #注意这里的这个是你配置hadoop的地址
    

    在这里插入图片描述

6.添加配置模板

[root@hadoop1 conf]# vim hive-site.xml
#这里这个文件是直接生成,原来没有,原理不要思考了,然后添加如下配置内容

下面这里面需要修改javax.jdo.option.ConnectionURL中的hadoop1,修改成你自己打hadoop中NameNode的结点的主机名。javax.jdo.option.ConnectionUserName中的值修改成数据库的用户名,javax.jdo.option.ConnectionPassword修改成数据库密码

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
	<name>javax.jdo.option.ConnectionURL</name>
 	<value>jdbc:mysql://hadoop1:3306/hive?createDatabaseIfNotExist=true</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>root</value>
</property>
</configuration>

好了,现在初始化hive吧,再启动之前,记得把mysql服务开启

[root@hadoop1 conf]# systemctl enable mysqld.service

然后再初始化吧

[root@hadoop1 conf]# schematool -initSchema -dbType mysql

初始化之后,可能会出现成功或失败,如果运行结果如下图弹出一个schematool completed,那么恭喜,已经成功配置好hive了,如果和这个不一样,那么就是说明失败了,那就接着往下看吧。
在这里插入图片描述

使用下面这个命令看看报错的具体信息吧

[root@hadoop1 conf]# schematool -initSchema -dbType mysql -userName hive -passWord [PROTECTED] -verbose

在这里插入图片描述
如果和这个一样提示,那就说明mysql数据库的这个hive用户名的密码不对,这个时候,改一下hive,并且修改它的权限。

  1. 修改mysql中的用户权限
    1.进入mysql;

    [root@hadoop1 conf]# mysql -uroot -p
    

    2 查看数据库中的所有用户名

    mysql> use mysql;
    mysql> select host,user from user;
    

    果然没有hive这个用户,那就创建一个吧,如果你的有的话,最好还是删除了,重新新建一个吧。至于怎么删除

    mysql> delete host from user where user='hive';
    

    使用这个命令创建一个吧

    mysql> CREATE USER 'hive'@'root' IDENTIFIED BY 'root';
    #这个时候可能会有个错误提示:
    #ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
    #这个提示我还可以教你解决,看好了,执行下面两个命令。
    mysql> set global validate_password_policy=0;
    mysql> set global validate_password_length=1;
    

    然后再重新执行那个创建用户的命令吧。这就成功了吧,神奇吧,哈哈。
    再给hive这个用户授权

    mysql> grant all privileges on *.* to 'hive' @'hadoop1' identified by 'root' with grant option;
    

    授权成功之后,应该会有一个警告,可以忽略,这个时候再刷新一下数据库

    mysql> flush privileges;
    

    然后退出mysql就可以了

    mysql> exit;
    

    这个时候重启一下mysql服务吧。

    [root@hadoop1 conf]# systemctl restart mysqld.service
    

然后就再初始化hive吧,上面的那个问题也就差不多解决了。

[root@hadoop1 conf]# schematool -initSchema -dbType derby   
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值