美文网首页
hive搭建

hive搭建

作者: 后知不觉1 | 来源:发表于2022-03-24 13:32 被阅读0次
安装组件
  • mysql
  • metastore
  • hiveserver2
    这里搭建是使用的metastore的远程模式

1、mysql安装

参照mysql安装

2、安装

2.1、下载安装包

  wget   http://dlcdn.apache.org/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz
  tar -xvf apache-hive-3.1.2-bin.tar.gz

2.2、配置

2.2.1、进入hive下的conf目录,复制一份hive-env.sh
  cp hive-env.sh.template hive-env.sh
2.2.2、 hive-env.sh
HADOOP_HOME=/usr/local/src/hadoop
export HIVE_CONF_DIR=/usr/local/src/apache-hive-3.1.2-bin/conf  
2.2.3、hive-site.xml

默认配置在hive-default.xml.template 有说明
vim $HIVE_CONF_DIR/conf/hive-site.xml

<property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://bigdata3:3306/hive?createDatabaseIfNotExist=true</value>
</property>
<property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
</property>
<property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
</property>
<property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>123456</value>
</property>
<property>
    <name>datanucleus.schema.autoCreateAll</name>
    <value>true</value>
</property>
<property>
    <name>hive.metastore.schema.verification</name>
    <value>false</value>
</property>
<property>
    <name>hive.server2.thrift.bind.host</name>
    <value>bigdata3</value>
</property>
<property>
    <name>hive.metastore.uris</name>
    <value>thrift://bigdata3:9083</value>
</property>
2.2.4、分开配置目录
  cp  apache-hive-3.1.2-bin hiveserver2   #用来启动hiveserver2
  cp  apache-hive-3.1.2-bin hive-metastore     #用来启动metastore

区分配置的原因:
在搭建hive metastore代理(拆分hive集群自己开发的服务)时,无法共用配置。共用配置也可以的

3、mysql库

3.1、上传connect jar

wget http://r98hqakjo.hn-bkt.clouddn.com/mysql-connector-java-5.1.39.jar?e=1648103087&token=266QXNOMpolsjVaAbedGSo5SlBF_aI6oqrUPonGU:3xcxXgOt0RsV3TZz9HZs02O3umw=  -P  $path
 mv mysql-connector-java-5.1.39.jar?e=1648103087  mysql-connector-java-5.1.39.jar

3.1、创建元数据库

    mysql -uroot -proot 
    create  database hive;  #可以叫其他名字,配置修改好即可

3.2、初始化元数据库

cd apache-hive-3.1.2-bin/
bin/schematool -dbType mysql -initSchema

4、hadoop配置代理用户

<property>
    <name>hadoop.proxyuser.root.hosts</name>
    <!-- root是指hive的启动用户,注意替换,不然会报hadoop不响应 -->
    <value>*</value>
</property>
<property>
    <name>hadoop.proxyuser.root.groups</name>
    <!-- root是指hive的启动用户,注意替换,不然会报hadoop不响应 -->
    <value>*</value>
</property>

4、启动

后台启动metastore
nohup bin/hive --service metastore 2>&1 >> /var/metastore.log &

首先需要启动hiveserver2前台启动:bin/hive --service hiveserver2
后台启动:nohup bin/hive --service hiveserver2 2>&1 >> /var/hive2.log &

bin/beeline 连接hiveserver2 (如果beeline报错参考下面这个博客即可)

troubleshooting

1、日志调试

前台启动

bin/hive --service hiveserver2  --hiveconf hive.root.logger=DEBUG,console  #如果不生效可以直接修复$HIVE_HOME/conf/hive-log4j.properties文件

2、元数据初始化问题

问题背景:mysql 库用存储过程将大小表名改为小写表名后,在insert into语句报错

ERROR [pool-6-thread-132] DataNucleus.Datastore: Error thrown executing CREATE TABLE `SEQUENCE_TABLE`
(
`SEQUENCE_NAME` VARCHAR(255) BINARY NOT NULL,
`NEXT_VAL` BIGINT NOT NULL,
CONSTRAINT `SEQUENCE_TABLE_PK` PRIMARY KEY (`SEQUENCE_NAME`)
) ENGINE=INNODB : Table 'sequence_table' already exists
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'sequence_table' already exists

解决:怀疑是初始化元数据有问题库,备份元数据信息,重新执行元数据初始化脚本解决

    bin/schematool -dbType mysql -initSchema

附: 解决字段描述中文乱码问题

   ALTER TABLE `COLUMNS_V2` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

3、select count(*) 卡在 Killcommand xxx job

问题背景 select count(*) 卡在 Killcommand xxx job ,手动执行mapreduce能够间隙性成功

Application application_1649846876537_0002 failed 2 times due to Error launching appattempt_1649846876537_0002_000002. Got exception: org.apache.hadoop.net.ConnectTimeoutException 链接不上

解决: 根据报错发现label下面绑定了两台机器,一台调整了安全组,一台未调整导致。重新调整安全组后成功

另外再资源不够情况下也会出现这种情况,需要调整队列资源

4、hiveserver启动卡住

修改日志等级,排查发现卡在链接hdfs阶段。重启hdfs解决

5、hive client修改参数失败报错

报错
It is not in list of params that are allowed to be modified at runtime
原因

hive开启鉴权后,不允许设置在session

6、hive索引参数导致的问题

hive.optimize.index.filter设置为true时,hive会开启自动创建索引模式,内部修改hive代码没有兼容这一逻辑,记录下

7、hive分割符问题

7.1、背景:

正常建表,采用默认的分隔符:hive 默认的字段分隔符为ascii码的控制符\001,建表的时候用fields terminated by '\001',如果要测试的话,造数据在vi 打开文件里面,用ctrl+v然后再ctrl+a可以输入这个控制符\001。按顺序,\002的输入方式为ctrl+v,ctrl+b。导致无法导入textfile文件

7.2、解决

指定特定的特殊符号作为分隔符:

 #指定字段使用空格分割,行有换行符分割
 CREATE TABLE test(id int, name string ,tel string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\ ' LINES TERMINATED BY '\n'  STORED AS TEXTFILE;

8、强制删除hive库

 drop database $dbname cascade;

相关文章

  • 21.1Hive复习

    Hive hive是数据仓库,用途:分析,决策类影响hive搭建 注意,搭建是按照元数据的存储和管理进行搭建的 搭...

  • 07_hive_搭建_启动_使用

    [TOC] 1. 搭建hive 1.1 上传hive安装包 上传apache-hive-1.2.1-bin.tar...

  • Hive安装与简单使用并集成SparkSQL

    Hive环境搭建 hive下载:http://archive-primary.cloudera.com/cdh5/...

  • Hive搭建

    Hive搭建 系统环境: Ubuntu 16 Java 8 Hadoop 2.7 Hive 1.2 MySQL 按...

  • Spark SQL:使用数据源之使用Hive Table

    一.使用Hive Table(把Hive中的数据,读取到Spark SQL 中) 1.首先,搭建Hive的环境(分...

  • 搭建单机hive环境

    搭建单机hive环境 本文假设搭建的路径在/opt/sh路径,并已经下载hive安装包及hadoop安装包 htt...

  • [hive]FAILED: SemanticException

    hive的注意事项 ------------------ 如果配置hadoop HA之前,搭建了Hive的话,在H...

  • Hive安装部署

    一、简介 Hive官网[https://hive.apache.org] 二、搭建 准备 Hadoop集群(必须搭...

  • Hive架构及搭建方式

    Hive架构及搭建方式 [TOC] 前言 本文档基于hive 3.1.2编写 hive的基础知识 基本架构 整个h...

  • Hive环境搭建

    基于三节点的Hadoop集群搭建Hive 安装中前的准备 先要搭建好hadoop集群 安装中用到的软件: hive...

网友评论

      本文标题:hive搭建

      本文链接:https://www.haomeiwen.com/subject/pffsdrtx.html