centos 7 hive mysql_Centos7安装hive

本文介绍了如何在CentOS 7上安装Hive,并详细步骤配置连接MySQL数据库,包括环境变量设置、配置hive-site.xml、拷贝必需的jar包以及解决可能出现的编码和bin-log问题。
摘要由CSDN通过智能技术生成

所需软件及下载地址

1、mysql或mariadb

mysql下载地址

https://dev.mysql.com/downloads/mysql/5.5.html#downloads

或用mariadb也可以,直接yum安装

yum -y install mariadb-server

2、hive

http://mirrors.hust.edu.cn/apache/hive/

3、mysql-connector-java

https://dev.mysql.com/downloads/connector/j/

一、安装hadoop和mysql,这里略过

注意mysql编码要设置为Latin1,因为hive不支持utf8

在mysql中创建数据库和用户

create database hive;

grant all on hive.* to hive@'%' identified by 'hive';

grant all on hive.* to hive@'localhost' identified by 'hive';

flush privileges;

二、开始安装hive

1、解压

[root@master ~]# tar xf apache-hive-1.2.2-bin.tar.gz -C /opt/

2、修改环境变量

[root@master ]# vi /etc/profile

export HIVE_HOME=/opt/hive

export PATH=$PATH:$HIVE_HOME/bin

[root@master ]# source /etc/profile

3、修改hive-site配置,主要修改以下参数(注,\ 是转义符,因为<>显示不出)

[root@master ]# cd /opt/hive/conf

[root@master conf]# cp hive-default.xml.template hive-site.xml

[root@master conf]# vi hive-site.xml

javax.jdo.option.ConnectionURL

jdbc:mysql://localhost:3306/hive

javax.jdo.option.ConnectionDriverName

com.mysql.jdbc.Driver

javax.jdo.option.ConnectionPassword

hive

hive.hwi.listen.port

9999

This is the port the Hive Web Interface will listen on

datanucleus.autoCreateSchema

true

datanucleus.fixedDatastore

false

javax.jdo.option.ConnectionUserName

hive

Username to use against metastore database

hive.exec.local.scratchdir

/opt/hive/tmp

Local scratch space for Hive jobs

hive.downloaded.resources.dir

/opt/hive/tmp

Temporary local directory for added resources in the remote file system.

hive.querylog.location

/opt/hive/tmp

Location of Hive run time structured log file

4、拷贝mysql-connector-java-5.1.43-bin.jar 到hive 的lib下面

[root@master ~]# mv mysql-connector-java-5.1.43-bin.jar /opt/hive/lib/

5、把jline-2.12.jar拷贝到hadoop相应的目录下,否则启动会报错

[root@master ~]# cd /opt/hive/lib

[root@master lib]# cp jline-2.12.jar /opt/hadoop-2.8.1/share/hadoop/yarn/lib/

6、创建hive临时文件夹

mkdir /opt/hive/tmp

三、启动hive

1、启动hadoop后,执行hive命令

[root@master ~]#hive

2、测试

hive> show databases;

OK

default

Time taken: 0.907 seconds, Fetched: 1 row(s)

hive --service metastore

出现此提示说明安装成功

3、创建表

hive> CREATE TABLE csv_t1(index_code string,name string)

ROW FORMAT SERDE

'org.apache.hadoop.hive.serde2.OpenCSVSerde'

WITH SERDEPROPERTIES (

"separatorChar" = ",", #以逗号为分隔符

"quoteChar" = "'", #以单引号为分隔符

"escapeChar" = "\\") #以双斜杠为分隔符

STORED AS TEXTFILE;

4、导入数据

hive> load data local inpath "/usr/local/test.csv" into csv_t1;

四、报错

1、mysql编码不是latin1

FAILED: Execution Error, return code 1 from

org.apache.Hadoop.hive.ql.exec.DDLTask. MetaException

(message:javax.jdo.JDODataStoreException: An exception was

thrown while adding/validating class(es) : Specified key was too

long; max key length is 767 bytes

com.MySQL.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:

Specified key was too long; max key length is 767 bytes

解决办法

mysql > alter database hive character set latin1;

2、READ-COMMITTED需要把bin-log以mixed方式来记录

否则进入hive,会如下错误

FAILED: Error in metadata: javax.jdo.JDOException: Couldnt

obtain a new sequence (unique id) : Binary logging not possible.

Message: Transaction level 'READ-COMMITTED' in InnoDB is not

safe for binlog mode 'STATEMENT'

解决办法

mysql >set global binlog_format='MIXED';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值