对于做大数据开发的同学来说,掌握hive是必备的技能之一,hive基于hdfs之上的一款强大的数据分析框架,可以从海量的数据中做出高效的数据分析,而且迎合大多数有着sql使用习惯的各类技术人员
话不多说,我们先基于一个单机版的hdfs环境搭建起hive的使用环境吧
环境准备hdfs运行环境,关于搭建可以参考我之前的一篇文章mysql,提前安装好mysql,这里建议使用mysql 5.7版本hive安装包,本例使用3.12版本的安装版本,可以自行去官网下载 安装步骤
1、上传安装包到服务器指定目录下
2、移动到指定目录,并解压重命名解压包
tar -zxvf /opt/software/apache-hive-3.1.2-bin.tar.gz -C /opt/module/
重命名解压包
mv /opt/module/apache-hive-3.1.2-bin/ /opt/module/hive
3、配置环境变量
vi /etc/profile
然后执行 :source /etc/profile
4、初始化derby数据库
hive默认情况下,不做任何配置的话,其元数据存储在内置的一款称作derby数据库中,因此需要初始化一下元数据信息
bin/schematool -dbType derby -initSchema
看到这里,说明初始化成功,然后进入到 bin 目录下,执行 ./hive 命令即可进入到hive的客户端窗口
但是当我们执行hive客户端下面的命令时,将会出现一段异常日志
show databases;
FAILED: HiveException java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.me
原因在于 Hive 默认使用的元数据库为 derby,开启 Hive 之后就会占用元数据库,且不与
其他客户端共享数据,所以我们需要将 Hive 的元数据地址改为 MySQL
了解了报错的原因后,我们需要配置下hive的元数据连接信息存储在mysql中
5、配置mysql连接
进入hive的conf目录,新建一个hive-site.xml,拷贝如下的配置内容
javax.jdo.option.ConnectionURL jdbc:mysql://IP:3306/metastore?useSSL=false javax.jdo.option.ConnectionDriverName com.mysql.jdbc.Driver javax.jdo.option.ConnectionUserName root javax.jdo.option.ConnectionPassword root hive.metastore.schema.verification false hive.metastore.event.db.notification.api.auth false hive.metastore.warehouse.dir /user/hive/warehouse
配置完成后,最好给该文件授权,然后在mysql中创建一个名字为 “metastore”的数据库,用于保存hive的元数据信息
create database metastore;
6、再次执行元数据的初始化
进入bin目录,不过这一次是使用mysql了
schematool -initSchema -dbType mysql -verbose
7、再次启动hive
再次启动hive之前,确保hdfs服务是启动的
同时,注意启动hive时不要使用root账户,因为我们之前在配置单机的hdfs的时候也不是使用root账户而是自己创建的账户,hive *** 作是需要联通hdfs的,这里需要重点关注一下
然后就可以基于当前的命令窗口像 *** 作mysql那样执行hive的客户端命令了
创建完表之后,就可以在hdfs上面看到表的相关数据文件啦
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)