hive获取上季度第一天_如何搭建Hive 环境

Hive 是一个 Hadoop 平台的上的数据仓库工具,可以将结构化的的数据映射成一张表,并提供了类似 SQL 的查询的功能。

HIve 没有集群的概念,只需要将 Hive 部署在 Hadoop 平台上就可以使用。

本文来介绍一种搭建 Hive 环境的方式。

搭建 Hive 所需的软件和环境:

  • 搭建了 Hadoop 集群的环境

  • Hive-1.2.2

搭建 Hadoop 集群可以参照我之前的文章,本文继续在之前的环境中进行,具体的机器名称及 IP 以自己的实际环境为准。

软件安装

将 Hive 安装包解压到目标目录下:

$ tar -zxvf apache-hive-1.2.2-bin.tar.gz -C /opt/module/

然后将 hive 目录重命名:

$ mv apache-hive-1.2.2-bin/ hive-1.2.2

软件配置

需要配置 hive 的环境参数:

$ cd hive-1.2.2
$ cp conf/hive-env.sh.template conf/hive-env.sh

配置 hadoop 的位置:

$ vi conf/hive-env.sh
export HADOOP_HOME=/opt/module/hadoop-2.9.2
export HIVE_CONF_DIR=/opt/module/hive/conf

在启动 hive 之前,需要先启动 hdfs 和 yarn:

$ sbin/start-dfs.sh
$ sbin/start-yarn.sh

在 hdfs 上创建 hive 的根目录,并赋予权限:

$ bin/hadoop fs -mkdir /tmp
$ bin/hadoop fs -mkdir -p /user/hive/warehouse
$ bin/hadoop fs -chmod g+w /tmp
$ bin/hadoop fs -chmod g+w /user/hive/warehouse

然后就可以启动 hive了:

$ bin/hive

hive 到这里就可用了,但是 hive 在开始使用之后,会将创建的表的元数据存储在自带的本地数据库中,这样不安全,所以一般都会将这些数据单独存储到 MySQL中。

metastore 配置

在这里我介绍一种安装 MySQL 的方式,但这不是唯一的方式,可以根据自己的情况自行选择安装方式。

安装 mysql

$ wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
$ yum -y install mysql57-community-release-el7-10.noarch.rpm
$ yum -y install mysql-community-server

mysql 设置

$ systemctl start  mysqld.service

获取 MySQL 密码

$ grep "password" /var/log/mysqld.log
2020-07-08T14:43:58.666069Z 1 [Note] A temporary password is generated for root@localhost:SySy,a

然后就可以登录 MySQL:

$ mysql -uroot -p"SySy,a

修改密码,后续就可以使用 root进行登录了:

$ ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

Hive 连接 MySQL

Hive 连接MySQL 需要添加一个 mysql 的 connector,拷贝到 hive 的 lib 目录下:

$ cp mysql-connector-java-5.1.49-bin.jar /opt/module/hive-1.2.2/lib/

然后创建一个 hive-site.xml的配置文件:

$ touch conf/hive-site.xml
$ vi conf/hive-site.xml

在配置文件中填充以下内容,就是连接 MySQL 所需的配置:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
javax.jdo.option.ConnectionURLjdbc:mysql://localhost:3306/metastore?createDatabaseIfNotExist=trueJDBC connect string for a JDBC metastorejavax.jdo.option.ConnectionDriverNamecom.mysql.jdbc.DriverDriver class name for a JDBC metastorejavax.jdo.option.ConnectionUserNamerootusername to use against metastore databasejavax.jdo.option.ConnectionPasswordrootpassword to use against metastore database

然后重新启动 hive:

$ bin/hive

正常启动后可以发现 mysql 中多了一个 metastore 的数据库,这个数据库存储着 hive 的中数据表的元数据。

文 / Rayjun

c1f2582b2fdff324abc6f0409c8c4bbe.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值