irpas技术客

Hive安装超详细教程_笑看风云路_hive安装

irpas 3670

Hive3.1.2安装教程 前言初始准备安装Hive的具体步骤1、下载hive安装包2、解压3、添加Hive核心配置,选择远程MySQL模式4、下载连接MySQL的驱动包到hive的lib目录下5、在MySQL上创建Hive的元数据存储库6、执行Hive的初始化工作7、验证初始化是否成功8、使用hive9、使用beeline

前言

在上篇《Spark集群搭建超详细教程》提到了Hive安装,那么今天就带领大家进行Hive的安装,闲言少叙,撸起袖子加油干!

初始准备

还是需要准备3台虚拟机,并且还需要做如下准备工作:

需要安装好java 运行环境 JDK需要搭建配置好Hadoop集群并启动,如果有不熟悉Hadoop集群搭建的朋友,可以参考我的另一篇文章《Hadoop集群搭建配置教程》在hadoop1这个虚拟机节点上安装MySQL服务,可以参考《Ubuntu18.04 MySQL5.7 安装步骤详解》 安装Hive的具体步骤 1、下载hive安装包 cd /opt/module # 下载hive安装包 wget https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz 2、解压 tar -zxvf apache-hive-3.1.2-bin.tar.gz mv apache-hive-3.1.2-bin hive 3、添加Hive核心配置,选择远程MySQL模式 cd /opt/module/hive/conf vim hive-site.xml

添加如下内容:

<property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://hadoop1:3306/hivedb?createDatabaseIfNotExist=true&amp;characterEncoding=UTF-8&amp;useSSL=false&amp;serverTimezone=GMT</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.cj.jdbc.Driver</value> </property> <!-- 修改为你自己的Mysql账号 --> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> </property> <!-- 修改为你自己的Mysql密码 --> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>123456</value> </property> <!-- 忽略HIVE 元数据库版本的校验,如果非要校验就得进入MYSQL升级版本 --> <property> <name>hive.metastore.schema.verification</name> <value>false</value> </property> <property> <name>hive.cli.print.current.db</name> <value>true</value> </property> <property> <name>hive.cli.print.header</name> <value>true</value> </property> <!-- hiveserver2 --> <property> <name>hive.server2.thrift.port</name> <value>10000</value> </property> <property> <name>hive.server2.thrift.bind.host</name> <value>hadoop1</value> </property> 4、下载连接MySQL的驱动包到hive的lib目录下 cd /opt/module # 下载MySQL驱动包 wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.17/mysql-connector-java-8.0.17.jar 5、在MySQL上创建Hive的元数据存储库 create database hivedb; 6、执行Hive的初始化工作 cd /opt/module/hive/bin ./schematool -initSchema -dbType mysql 7、验证初始化是否成功

初始化完成后,在MySQL的hivedb数据库中查看是否初始化成功:

# 若展示多个数据表,即代表初始化成功 show tables; 8、使用hive # 启动hive cd /opt/module/hive/bin ./hive # 启动后 # 建表 create table student(id int, name string); # 插入数据 insert into table student(1, 'abc'); # 插入成功后,查询 select * from student; 9、使用beeline

首先启动hiveserver2服务:

nohup ./bin/hiveserver2>> hiveserver2.log 2>&1 &

hiveserver2服务启动后,使用beeline客户端访问hiveserver2服务:

cd /opt/module/hive # 进入beeline客户端 bin/beeline # 执行连接hiveserver2操作 beeline> !connect jdbc:hive2://hadoop1:10000/default # 或者 bin/beeline -u jdbc:hive2://hadoop1:10000/default -n root

注意:hive的默认引擎为MR!!!

至此,我们就完成了Hive的安装。

安装过程中,我们可能会遇到以下问题:

问题 1: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;) 错误原因:系统找不到这个类所在的jar包或者jar包的版本不一样系统不知道使用哪个。hive启动报错的原因是后者。 解决办法: 1)com.google.common.base.Preconditions.checkArgument这个类所在的jar包为:guava.jar 2)hadoop-3.1.3(路径:hadoop/share/hadoop/common/lib)中该jar包为 guava-27.0-jre.jar;而hive-3.1.2(路径:hive/lib)中该jar包为guava-19.0.jar 3)将jar包变成一致的版本:删除hive中低版本jar包,将hadoop中高版本的复制到hive的lib中。 再次启动问题得到解决!

问题2: Error: Could not open client transport with JDBC Uri: jdbc:hive2://hadoop1:10000/default: Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: root is not allowed to impersonate anonymous (state=08S01,code=0)

解决办法: 1)修改hadoop 配置文件 /opt/module/hadoop/etc/hadoop/core-site.xml 添加如下内容:

<property> <name>hadoop.proxyuser.root.hosts</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.root.groups</name> <value>*</value> </property>

然后将core-site.xml 分发到集群的其他节点。

2)重启hadoop集群

问题3:用beeline操作hive时,如何关闭打印的info日志信息? 解决办法: 1)在使用beeline时加入以下设置即可--hiveconf hive.server2.logging.operation.level=NONE

2)在hive-site.xml中修改如下配置也可以禁用在beeline中显示额外信息

<property> <name>hive.server2.logging.operation.level</name> <value>NONE</value> <description> Expects one of [none, execution, performance, verbose]. HS2 operation logging mode available to clients to be set at session level. For this to work, hive.server2.logging.operation.enabled should be set to true. NONE: Ignore any logging EXECUTION: Log completion of tasks PERFORMANCE: Execution + Performance logs VERBOSE: All logs </description> </property>

微信公众号:扫描下方二维码 或 搜索 笑看风云路 关注


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #hive安装