基于Hadoop不同版本搭建hive集群附配置文件

79次阅读

共计 1716 个字符,预计需要花费 5 分钟才能阅读完成。

本教程采用了两种方案

一种是 hive-1.21 版本,hadoop 版本为 hadoop2.6.5

还有一种是主要讲基于 hadoop3.x hive 的搭建

关注公众号:Java 架构师联盟,每日更新技术好文

先来第一种

一、本地方式(内嵌 derby)

步骤

这种存储方式需要在本地运行一个 mysql 服务器,并作如下配置

解压

修改安装包内 conf 文件夹下的hive-default.xml.template,并重命名为hite-site.xml

<configuration> 

 将 hive/lib 目录下的 jline jar 包拷贝到 hadoop 的 yarn lib 下,并将原 jar 包删除或改名令其失效。否则会报版本不匹配的错误 问题

使用 derby 存储方式时,运行 hive 会在当前目录生成一个 derby 文件和一个 metastore_db 目录。这种存储方式的弊端是在同一个目录下同时只能有一个 hive 客户端能使用数据库,多个用户登录时会报错。(这是由于 derby 数据库的局限性造成的)

二、Local 模式(mysql)

这种存储方式需要在本地运行一个 mysql 服务器,并作如下配置

步骤

安装一个 mysql 数据库

yum  install mysql-server -y

拷贝 mysql 驱动包到 $HIVE_HOME\lib 目录下

修改hive-site,xml

<configuration> 

启动 sql 服务

service mysqld start

设置开机启动

chkconfig mysqld on

修改 root 用户权限

(1)登录 mysql       

mysql -uroot

(2)修改权限

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123' WITH GRANT OPTION;

(3)刷新

flush privileges;

创建 hive_meta 数据库

create database hive_meta;

添加用户并修改权限

(1)创建 hive 用户和密码

CREATE USER 'hive'@'%' IDENTIFIED BY '123';

(2)赋予权限

grant all privileges on hive_meta.* to hive@"%" identified by '123';

删除多余权限

1. 进入 mysql 数据库

use mysql;

2. 查看用户

select host,user,password from user;

3. 删除多余会对权限造成影响的数据

delete from user where password = '';

将 hive/lib 目录下的 jline jar 包拷贝到 hadoop 的 yarn lib 下

配置 HIVE_HOME,hive 启动

三、远程(remote)模式

当有多个客户端使用 hive 时,若使用各自本地的 hive 和 mysql,会导致各端元数据不一致,不易于管理,可能会出现各种问题。在一个基于本地 mysql 数据库的 hive 作为服务端,启动一个 metastore 服务,其他客户端通过 thrift 协议连接 metastore 使用服务端 hive,从而使用同一份 mysql 内的元数据。

步骤

在一个搭建好基于 mysql 的 hive 的节点启动 metastore 服务作为服务端

hive –service metastore 

在客户端解压安装包并修改 hive-site.xml

<configuration> 

注:metastore 的启动会一直启动在前台,可利用如下方法解决

hive --service metastore >> meta.log 2>&1 &

将日志打印到 meta.log 错误日志 (2) 重定向到正常日志(1)

& 表示后台执行

这种方式服务端只提供元数据,客户端运行自己的 hiv


再来第二种

本篇主要描述 hive3.x 与历史版本搭建的不同之处。本地模式用的较少就不复赘述,直接从 local 模式开始,远程模式与历史版本无异,本篇也不再赘述。

一、local 模式

1. 修改 hive-site.xml

<configuration>  

2. 修改 hive-env.sh

3. 将 hadoop/share/hadoop/common/lib 下的 guava-xx.jar 复制到 hive/lib 下 将 hive 的 guava-xx.jar 删除

4. 大功告成了,赶快试试吧!

正文完
 0