hive单机部署

hadoop,hbase,zookeeper安装好了,现在来安装hive

hadoop 版本:2.8.4

hbase 版本:2.1.3

hive 版本:2.3.4

zookeeper 版本:3.4.13

1.hive下载:http://mirrors.shu.edu.cn/apache/hive/

2.上传到linux解压

3.配置环境变量

vi /etc/profile

export HIVE_HOME=/hive

把$HIVE_HOME/bin:$PATH加到path中去

>hive --version  就能看到hive版本

安装成功

4.配置

进入/hive/conf目录

vi hive-site.xml  配置hive-site.xml文件,没有复制一份

在hive-site.xml中加以下配置,不然报错:java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:us

  <property>
    <name>system:java.io.tmpdir</name>
    <value>/tmp/hive/java</value>
  </property>
  <property>
    <name>system:user.name</name>
    <value>${user.name}</value>
  </property>  
  

将里面一些system....路径的value,全部改成/tmp/hive/iotmp

vi hive-env.xml,配置hive-env.xml,没有复制一份,加以下内容

export HADOOP_HOME=/hadoop/hadoop-2.8.4
export HIVE_CONF_DIR=/hive/conf

 

>hive 进入hive命令行

能进入hive命令行,但是提示版本不匹配

但网上别人也提示这个,可以正常使用

说是hive要有一个数据库来存储它的元数据,默认是使用derby,也有使用mysql,大多使用mysql,我也使用mysql配置

在/hive/conf/hive-site.xml文件中加以下内容:

<property>
        <name>javax.jdo.option.ConnectionUserName</name>   //用户名(这4是新添加的,记住删除配置文件原有的哦!)
        <value>root</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>  //密码
        <value>123456</value>
    </property>
   <property>
        <name>javax.jdo.option.ConnectionURL</name>        //mysql
        <value>jdbc:mysql://192.168.1.136:3306/hive</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>    //mysql驱动程序
        <value>com.mysql.jdbc.Driver</value>
    </property>

  

配置后,把mysql驱动包拷贝到/hive/lib/下

在/hive/bin下执行:

>  schematool -dbType mysql -initSchema   将hive元数据格式化一下

hive元数据保存在内嵌的 Derby 数据库中,只能允许一个会话连接,只适合简单的测试。为了支持多用户多会话,则需要一个独立的元数据库,我们使用 MySQL 作为元数据库,Hive 内部对 MySQL 提供了很好的支持,配置一个独立的元数据库需要增加以下几步骤:

1)安装mysql服务端和客户端,这个在我本机上安装好了

2)安装hive,也安装好了

3)为Hive建立相应的MySQL账户,并赋予足够的权限,执行命令如下:

发现hive-site.xml配置文件,原本有derby数据库的配置信息,没有删除掉,我们只是在上面加了mysql的配置,derby的配置没有注释掉,注释掉,再格式化

还是不行,

报错信息不一样了,使用的是我配置的mysql数据库

网上说是用户权限不足,继续:

我的mysql是安装在我本地windows机器上,cmd

> cd C:Program FilesMySQLMySQL Server 5.5in    进入mysql安装目录

> mysql -hlocalhost -uroot -p

>  select user,host from mysql.user where user='root';

 > grant all privileges on *.* to 'root'@'192.168.1.166' identified by '123456';  授权

> flush privileges;

> net stop mysql;  先关闭mysql

> net start mysql;  再重启mysql

再在/hive/bin 下执行格式化

成功了

 > show databases;

原文地址:https://www.cnblogs.com/ngy0217/p/10619837.html