Hive安装与配置

来源:互联网 发布:淘宝一键复制软件 编辑:程序博客网 时间:2024/05/16 14:56


Hive的安装配置

一、mysql的安装配置
1.官网下载
 http://dev.mysql.com/downloads/mysql/5.5.html#downloads 以下五个rpm包
 mysqlserver
 client
 devel
 shared
 shared-compat
 2.安装
rpm -iUvh MySQL-server-5.5.57-1.el7.x86_64.rpm
rpm -iUvh MySQL-client-5.5.57-1.el7.x86_64.rpm
rpm -iUvh MySQL-devel-5.5.57-1.el7.x86_64.rpm
rpm -iUvh MySQL-shared-5.5.57-1.el7.x86_64.rpm
rpm -iUvh MySQL-shared-compat-5.5.57-1.el7.x86_64.rpm
3.启动mysql
数据库目录  /var/lib/mysql/ 
配置文件    /usr/share/mysql(mysql.server命令及配置文件) 
启动脚本    /etc/rc.d/init.d/(启动脚本文件mysql的目录)  
相关命令    /usr/bin(mysqladmin mysqldump等命令) 

进入/etc/rc.d/init目录下启动服务:service mysql start
报错:Starting MySQL.. ERROR! The server quit without updating PID file (/var/lib/mysql/single.pid).
解决:改变数据目录的所有权:chown mysql:mysql -R mysql/

4.新建用户授权
新建用户
命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password';
如果允许任何远程主机登陆,将host改成通配符%
create user 'hive'@'%' identified by 'cxr';
授权
命令:GRANT privileges ON databasename.tablename TO 'username'@'host' ;
grant all privileges on *.* to 'hive'@'%' with grant option;
flush privileges;
用新用户登录
mysql -u hive -p
报错:Access denied for user 'hive'@'localhost' (using password: YES);

解决方法:删除空用户
mysql> delete from user where user='';
Query OK, 2 rows affected (0.00 sec)
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

为hive用户新建一个数据库:create database hivedb;

二、hive的安装配置
1.官网下载的文件包含bin和user两个文件,将bin文件解压
2.在conf目录下将两个默认配置文件
hive-default.xml.template
hive-env.sh.template
复制更名为
hive-site.xml
hive-env.sh

配置hive-site.xml
在文件中找到对应的字段更改
 <property>
      <name>javax.jdo.option.ConnectionURL</name>
      <value>jdbc:mysql://single:3306/hivedb?createDatabaseIfNotExist=true</value>
      <description>JDBC connect string for a JDBC metastore</description>
    </property>

    <property>
      <name>javax.jdo.option.ConnectionDriverName</name>
      <value>com.mysql.jdbc.Driver</value>
      <description>Driver class name for a JDBC metastore</description>
    </property>

    <property>
      <name>javax.jdo.option.ConnectionUserName</name>
      <value>hive</value>
      <description>username to use against metastore database</description>
    </property>

    <property>
      <name>javax.jdo.option.ConnectionPassword</name>
      <value>cxr</value>
      <description>password to use against metastore database</description>
    </property>

配置hive-env.sh
找到对应位置更改
# Set HADOOP_HOME to point to a specific hadoop install directory
 HADOOP_HOME=/usr/local/hadoop2.7.4

# Hive Configuration Directory can be controlled by:
 export HIVE_CONF_DIR=/usr/local/hadoop2.7.4/hive2.3.0/conf
 
例行配置环境变量

3.下载mysql驱动jar包,放入${HIVE_HOME}/lib下
下载地址:https://dev.mysql.com/downloads/connector/j/

4.运行hive
报错:
Exception in thread "main" java.lang.IllegalArgumentException: java.net.URISyntaxException:
Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D
看字面意思是此处应该使用的是绝对路径,但是参数值是相对路径
在配置文件hive-site.xml中找到
hive.exec.local.scratchdir
hive.downloaded.resources.dir
hive.querylog.location
将值全部改为${HIVE_HOME}/iotmp

更改后运行成功;

原创粉丝点击