Hadoop生态圈,Hive详细部署流程

一站式大数据平台XSailboat简介--Hadoop、Hive、Flink、DataStudio、数据服务、API网关、认证中心、数据可视化、离线分析、实时计算、应用引擎等_OkGogooXSailboat的博客-CSDN博客

场景

        在一个由XCloud150、XCloud151、XCloud152、XCloud153、XCloud154 ,合计5台服务器搭建的hadoop生态圈中,部署Hive。

1、简介

        Hive:计算框架,本质是将HQL转化为MapReduce程序,是一个基于Hadoop数据仓库工具,可以将结构化的数据映射为一张表,提供类sql查询功能。

        hive的安装运行模式有3种,分别是内嵌模式、本地模式、远程模式。

  1. 内嵌模式:默认的情况下是内嵌模式,即数据库使用自带的derby数据库。derby方式一般没人用,因为它是单用户模式。
  2. 本地模式: 使用mysql作为元数据库,且mysql安装在hive的机器上。
  3. 远程模式:使用mysql作为元数据库,且mysql与hive不在相同的机器上,hive需远程连接mysql。

        本文档的安装说明以远程模式为例。

        hive仅仅是一个客户端工具,不存在集群概念,因此安装的时候无需每台机器安装,哪个节点需要使用,就安装在哪个节点上。多个节点安装的时候,mysql的元数据库一定要相同(即要在同一个mysql同一个库上),否则各个客户端获取的数据不一致。

2、安装准备

  • 保证 hadoop 正常运行

        安装hive前,要先安装hadoop集群,hive只需要在hadoop集群的namenode节点安装即可(需要再所有namenode上安装),可以不在datanode节点上安装。

        修改hive配置文件时,不需要把hadoop运行起来,但因为用到了hadoop命令,且启动hive的前提也需要hadoop正常运行,所以还是提前把hadoop运行起来。

  • 保证 mysql 正常运行

3、hive安装

        3.1 下载安装包

        下载地址:http://mirror.bit.edu.cn/apache/hive/

        下载到/xcloud 目录下。命令:

cd /xcloud

wget http://mirror.bit.edu.cn/apache/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz 

        也可在windows上下载好,再拷贝到Linux系统。

        3.2 解压

        命令:

 tar -zxvf  apache-hive-3.1.3-bin.tar.gz 

        为方便使用,将解压后的目录重命名,命令:

mv apache-hive-3.1.3-bin hive

        3.3 配置环境变量

        切换root用户,配置环境变量并生效,命令:

su

vi /etc/profile

source /etc/profile

        添加配置内容如下:

        3.4 创建hive-site.xml配置文件

        在hive的conf目录下,复制"hive-default.xml.template",命名为hive-site.xml。 命令:

cd /xcloud/hive/conf

cp hive-default.xml.template hive-site.xml

vim hive-site.xml

        配置文件有九处要修改:

        1)hive元数据存放目录

        搜索hive.metastore.warehouse.dir,其value值就是hive元数据在hdfs(分布式文件系统)中的存放目录。这里有两种配置方案。

        方案一:可以依据配置文件中的默认配置,在hdfs(分布式文件系统)中创建相应的目录;方案二:提前在hdfs(分布式文件系统)中创建好目录,然后写入配置文件中。

        这里采用方案一,配置文件中的默认配置如下:

<name>hive.metastore.warehouse.dir</name>

<value>/user/hive/warehouse</value>

        依据默认配置,在hdfs(分布式文件系统)中创建相应的目录,命令如下:

hadoop fs -ls /user                               -- 查看/user目录       

hadoop fs -mkdir /user/hive                        -- 创建/user/hive目录

hadoop fs -mkdir /user/hive/warehouse               -- 创建/user/hive/warehouse目录

hadoop fs -chmod 777 /user/hive/warehouse          -- 授权 

hadoop fs -ls /user/hive                            -- 查看验证

        输出:

https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/a/RjmmPonl4iOAXDMB/31493e2c8ec54942bec2265ea8f178f41723.png

          2)MR输出目录

        搜索hive.exec.scratchdir,其value指定的目录,是hive用来存储查询的不同map / reduce阶段的计划,以及存储这些阶段的中间输出。这里有两种配置方案。

        方案一:依据配置文件中的默认配置,在hdfs(分布式文件系统)中创建相应的目录;方案二:提前在hdfs(分布式文件系统)中创建好目录,然后写入配置文件中。

        这里采用方案一,配置文件中的默认配置如下:

<name>hive.exec.scratchdir</name>

<value>/tmp/hive</value>

        依据默认配置,在hdfs(分布式文件系统)中创建相应的目录,命令如下:

hadoop fs -ls /tmp                               -- 查看/tmp目录       

hadoop fs -mkdir /tmp/hive                        -- 创建/tmp/hive目录

hadoop fs -chmod 777 /tmp/hive                   -- 授权

        3)临时本地目录

        搜索${system:java.io.tmpdir},将其替换为hive的临时目录,这里的临时目录是“/xcloud/hive/tmp”。

        注意:“/xcloud/hive/tmp”目录需手动创建。

        预期替换4处,前后对比示例:

修改前

<name>hive.downloaded.resources.dir</name>

<value>${system:java.io.tmpdir}/${hive.session.id}_resources</value>

修改后

<name>hive.downloaded.resources.dir</name>

<value>/xcloud/hive/tmp/${hive.session.id}_resources</value>

        4)用户

        搜索${system:user.name},将其全部替换为root。预期替换3处,前后对比:

修改前

<name>hive.exec.local.scratchdir</name>

<value>/xcloud/hive/tmp/${system:user.name}</value>

修改后

<name>hive.exec.local.scratchdir</name>

<value>/xcloud/hive/tmp/root</value>

        5)数据库地址

        搜索javax.jdo.option.ConnectionURL,将该name对应的value修改为远程MySQL数据库的地址,前后对比:

修改前

<name>javax.jdo.option.ConnectionURL</name>

<value>jdbc:derby:;databaseName=metastore_db;create=true</value>

修改后

<name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://192.168.0.218:3306/hive_schema?createDatabaseIfNotExist=true&amp;serverTimezone=GMT</value>

        6)数据库驱动

        搜索javax.jdo.option.ConnectionDriverName,将该name对应的value修改为MySQL驱动类路径,前后对比:

修改前

<name>javax.jdo.option.ConnectionDriverName</name>

<value>org.apache.derby.jdbc.EmbeddedDriver</value>

修改后

<name>javax.jdo.option.ConnectionDriverName</name>

<value>com.mysql.jdbc.Driver</value>

        7)数据库登录名

        搜索javax.jdo.option.ConnectionUserName,将对应的value修改为MySQL数据库登录y用户名,前后对比:

修改前

<name>javax.jdo.option.ConnectionUserName</name>

<value>APP</value>

修改后

<name>javax.jdo.option.ConnectionUserName</name>

<value>hive_schema</value>

        8)数据库登录密码

        搜索javax.jdo.option.ConnectionPassword,将对应的value修改为MySQL数据库的登录密码,前后对比:

修改前

<name>javax.jdo.option.ConnectionPassword</name>

<value>mine</value>

修改后

<name>javax.jdo.option.ConnectionPassword</name>

<value>#######</value>

        9)模式验证

        搜索hive.metastore.schema.verification,将对应的value修改为false,前后对比:

修改前

<name>hive.metastore.schema.verification</name>

<value>true</value>

修改后

<name>hive.metastore.schema.verification</name>

<value>false</value>

        10)hive-3.1.1版本执行

        搜索hive.stats.autogather,将对应的value修改为false,前后对比:

修改前

<name>hive.stats.autogather</name>

<value>true</value>

修改后

<name>hive.stats.autogather</name>

<value>false</value>

        3.5 创建hive-env.sh配置文件

        添加内容:

export HADOOP_HOME=/xcloud/hadoop

export HIVE_CONF_DIR=/xcloud/hive/conf

export HIVE_AUX_JARS_PATH=/xcloud/hive/lib

        修改后:

https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/a/RjmmPonl4iOAXDMB/c93d99fefb5b4b56a21e73523a66cd111723.png

         ​​​​​​​3.6 添加驱动包

        将mysql的驱动包放在hive安装的lib目录下。

        备注:如果不添加驱动包的话,下面执行初始化的时候会抛出      Underlying cause: java.lang.ClassNotFoundException : com.mysql.jdbc.Driver 异常。

        1)下载mysql驱动jar包

        jar包下载:https://mvnrepository.com/artifact/mysql/mysql-connector-java/8.0.22

https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/a/RjmmPonl4iOAXDMB/4a18f9df27b74f71927dff9bfd38306f1723.png

        2)上传jar包到hive的lib目录下 

        3.7 初始化元数据库

        进入到hive的bin目录下,初始化元数据库。

        前提:1)使用hadoop的guava-27.0-jre.jar替换hive的guava-19.0.jar;2)hive-site.xml文件中的特殊字符(#)已删除;3)hive-site.xml文件中,配置的数据库及用户已创建。(详情可查看问题记录中的1~3)

        命令:

cd /xcloud/hive/bin 

schematool -dbType mysql -initSchema

        输出:

https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/a/RjmmPonl4iOAXDMB/69c0c282bdc744d8953d7ada1c35054b1723.png

 

3.8 启动hive

        当安装模式是本地模式时,直接进入hive命令行shell,后台会自动启动metastore与hive服务,而且这两个服务还是在同一个进程中,不用手工启动,这点和远程模式是不同的。

        当安装模式是远程模式时,首先需要到运行metastore的主机上启动metastore服务;其次在运行hive shell的主机上启动shell时,会同时启动hiveserver进程。

        远程模式:首先启动metastore,命令“hive --service metastore &”,输出如下:

https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/a/RjmmPonl4iOAXDMB/07dac0cde3134b75aa6747d7ad2139791723.png

         启动metastore后,再启动hive,命令“hive”,输出:

https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/a/RjmmPonl4iOAXDMB/8dc74481f7484cae9df65289c1cc6a991723.png

3.9 测试

        测试命令:

create database test;                          -- 创建test数据库

use test;                                    -- 进入test数据库

create table tt(id int);                          -- 创建表

show tables;                                 -- 查看当前数据库中的所有表

​​​​​​​4、hiveServer2配置

​​​​​​​4.1 配置hive-site.xml

        在hive的conf目录下,修改hive-site.xml配置。添加如下内容:

<property>

    <!-- hiveserver2用户名 -->

    <name>beeline.hs2.connection.user</name>

    <value>hadoop</value>

  </property>

  <property>

    <!-- hiveserver2密码 -->

    <name>beeline.hs2.connection.password</name>

    <value>######</value>

  </property>

  <property>

     <!-- hiveserver2端口 -->

    <name>beeline.hs2.connection.hosts</name>

    <value>localhost:10000</value>

  </property>

        修改hive.metastore.uris,添加值“thrift://XCloud150:9083”,如图:

https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/PQ35O8V5gkJgn9Vb/img/cbb3520c-74b8-4d82-a0bc-760e3e8abd60.png

4.2 配置core-site.xml

        修改hadoop的core-site.xml(本文中的绝对路径是/xcloud/hadoop/etc/hadoop)文件。在文件的配置内容后,添加如下配置:

<property>

       <name>hadoop.proxyuser.hadoop.hosts</name>

       <value>*</value>

</property>

<property>

       <name>hadoop.proxyuser.hadoop.groups</name>

       <value>*</value>

</property>

        截图示例:

https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/a/RjmmPonl4iOAXDMB/10684cd7f11747189679f03b4cb007ab1723.png

        注意:1)红色框的地方,应该为hive所在主机的系统用户。2)hadoop集群,所有的节点都需要改。

​​​​​​​4.3 配置hive-env.sh

        在hive-env.sh文件的最后加上:

export HADOOP_OPTS="$HADOOP_OPTS -Dfile.encoding=UTF-8"

​​​​​​​4.4 启动hiveserver2

        hiveserver2启动命令:

hiveserver2

        beeline命令:

beeline                                                           # 打开beeline命令行

!connect jdbc:hive2://192.168.0.150:10000      # 连接hive2数据库

!exit                                                                # 退出beeline

​​​​​​​4.5 后台启动、停止命令

        1)后台启动命令

        nohup hive --service metastore &

        nohup hive

        nohup hiveserver2 (如果起不来,执行nohup hive --service hiveserver2 &)

        beeline

        2)停止hive

        查看端口(配置中,hive、hive2默认端口9083、10000)进程:

        netstat -lnp|grep 9083

        netstat -lnp|grep 10000

        杀死进程:

        kill -9 44175

        输出:

https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/a/RjmmPonl4iOAXDMB/fb40d283257748f3a1098a95e24dd0881723.png

5、更换tez引擎

​​​​​​​5.1 下载并解压

        下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/tez/0.10.0/

        下载tez的安装包后,拷贝到linux服务器,执行如下命令解压:

tar -zxvf apache-tez-0.10.0-bin.tar.gz

mv apache-tez-0.10.0-bin tez-0.10.0

​​​​​​​5.2 配置hive-env.sh

        配置方案一(验证无误):

        在hive的hive-env.sh(/xcloud/hive/conf下)中配置tez。配置内容如下:

export TEZ_HOME=/xcloud/tez-0.10.0

export TEZ_JARS=/xcloud/tez-0.10.0

export HIVE_AUX_JARS_PATH=$TEZ_JARS

        注意:安装hive的时候,配置了“HIVE_AUX_JARS_PATH=/xcloud/hive/lib”,此时改为了“export HIVE_AUX_JARS_PATH=$TEZ_JARS

        配置方案二(未验证):

        不修改配置文件,直接将tez的jar和tez/lib下的jar,拷贝到$HIVE_HOME/lib(本文中的绝对路径即是/xcloud/hive/lib)下。

​​​​​​​5.3 配置hive-site.xml

        在hive的hive-site.xml配置中,搜索hive.execution.engine,将其value修改为tez。前后对比示例:

修改前

<name>hive.execution.engine</name>

<value>mr</value>

修改后

<name>hive.execution.engine</name>

<value>tez</value>

        升级到tez-0.10.0,必须修改hive.tez的size (改为512)及vcores (改为1)。

https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/a/RjmmPonl4iOAXDMB/b531a8867cd9474387a448ac373dd2b11723.png

5.4 配置tez-site.xml

        在hive的conf(本文中的绝对路径即是/xcloud/hive/conf)目录下,创建tez-site.xml文件,配置内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<?xml-stylesheet  type="text/xsl" href="configuration.xsl"?>

<configuration>

<property>

   <!--指定tez的在hdfs中的目录,jar的目录-->

   <name>tez.lib.uris</name>

   <value>${fs.defaultFS}/tez/tez-0.10.0,${fs.defaultFS}/tez/tez-0.10.0/lib</value>

</property>   

<property>

   <!--指定tez的在hdfs中的目录,jar的目录-->

    <name>tez.lib.uris.classpath</name>                  

<value>${fs.defaultFS}/tez/tez-0.10.0,${fs.defaultFS}/tez/tez-0.10.0/lib</value>

</property>

<!--  tez是否使用hadoop的lib,本文中对应的hadoop版本是3.2.2,若是其它版本,jar的版本可能不匹配 -->

<property>

     <name>tez.use.cluster.hadoop-libs</name>

     <value>true</value>

</property>

<property>

  <name>tez.history.logging.service.class</name>

 <value>org.apache.tez.dag.history.logging.ats.ATSHistoryLoggingService</value>

</property>

</configuration>

​​​​​​​​​​​​​​5.5 修改hadoop配置

        将/xcloud/hive/conf下的tez-site.xml文件,复制到/xcloud/hadoop/etc/hadoop下(hadoop集群的每个主节都需要配置),并添加如下配置内容:

<!-- am分配的内存大小,默认1024 -->

        <property>

                <name>tez.am.resource.memory.mb</name>

                <value>1024</value>

        </property>

        <!-- am分配的cpu个数,默认1 -->

        <property>

                <name>tez.am.resource.cpu.vcores</name>

                <value>1</value>

        </property>

        <!-- 基于yarn提供的内存,分配给java进程的百分比,默认是0.8,具体大小取决于mapreduce.reduce.memory.mb和mapreduce.map.memory.mb。一般不用变即可 -->

        <property>

                <name>tez.container.max.java.heap.fraction</name>

                <value>0.4</value>

        </property>

        <!-- 分配的内存,默认1024 ,出现内存不够时候,设置更大点 -->

        <property>

                <name>tez.task.resource.memory.mb</name>

                <value>1024</value>

        </property>

        <!-- 分配的vcores 默认是1  ,一般不需要改 -->

        <property>

                <name>tez.task.resource.cpu.vcores</name>

                <value>1</value>

        </property>

​​​​​​​5.6 上传tez到hdfs

        将tez上传到hdfs。命令如下:

hadoop fs -mkdir /tez                      -- 在hdfs的根路径下,创建tez目录

hadoop fs -put /xcloud/tez-0.10.0 /tez          -- 将本地的tez上传到hdfs的/tez目录下

hadoop fs -ls /tez                          -- 查看验证 

输出:

https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/a/RjmmPonl4iOAXDMB/c159eb706ac34873a6ab9c54ea3d48be1723.png

 ​​​​​​​5.7 替换jar

        在...hive/lib目录下,将guava-19.0.jar替换为guava-27.0-jre.jar(在Hadoop中)。

​​​​​​​5.8 解决日志jar冲突

        删除slf4j-log4j12-1.7.10.jar

        输出:

https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/a/RjmmPonl4iOAXDMB/946078c5838942e4a4b8d060eb2443011723.png

6、Tez UI设置

6.1 修改tez-site.xml

        在hadoop/etc/hadoop目录下,配置tez-site.xml内容如下:

<!-- 允许Tez使用Timeline服务器进行历史记录  -->

<property>

<name>tez.history.logging.service.class</name>

<value>org.apache.tez.dag.history.logging.ats.ATSHistoryLoggingService</value>

</property>

<property>

<name>tez.tez-ui.history-url.template</name>

<value>__HISTORY_URL_BASE__?viewPath=/#/tez-app/__APPLICATION_ID__</value>

</property>

<!-- Tez UI的web地址,端口即是web服务器的端口,如tomcat默认为8080 -->

<property>

<!-- 托管tez-ui的主机访问地址,可以是集群之外的主机 -->

<name>tez.tez-ui.history-url.base</name>

<value>http://192.168.0.150:8080/tez-ui/</value>

</property>

<property>

<name>tez.allow.disabled.timeline-domains</name>

<value>true</value>

</property>

6.2 获取tez-ui.war

        获取的方式有三种:

  1. 从tez安装包中获取。地址:Apache Tez – Apache TEZ® Releases
  2. Index of /repositories/releases/org/apache/tez/tez-ui/0.10.2
  3. 从Maven仓库中获取(推荐)。Maven仓库地址:Index of /repositories/releases/org/apache/tez/tez-ui
  4. 从源代码本身构建tez-ui.war。

6.3 配置timeLineService和resourceManager的UI地址。

        tez-ui会默认连接当前主机上的timeLineService和resourceManager。

        如果托管tez-ui的主机,与运行timeLineService和resourceManager的主机不同。那么就需要手动配置timeLineService和resourceManager的UI地址。

        配置方法:解压tez-ui.war,修改config/configs.env文件。去掉timeline和rm配置的注释(‘//’),并按实际情况填写地址。

        修改前:

https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/a/RjmmPonl4iOAXDMB/6adc3334a2cd43be878eccb77940b78a1723.png

修改后:

https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/a/RjmmPonl4iOAXDMB/deea658bcdfd4e9d955c4d2ad250a05f1723.png

  6.4 在tomcat中托管tez-ui

  1. 下载tomcat,并解压到安装目录。
  2. 删除tomcat/webapps下的所有文件。
  3. 将解压后的tez-ui.war拷贝到tomcat/webapps下。如…tomcat/webapps/tez-ui。
  4. 按需修改config/configs.env文件,即步骤3。
  5. 重启Yarn,启动tomcat。

6.5 验证

        打开tez-ui页面,如图:

https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/a/RjmmPonl4iOAXDMB/aac44a5f796844a990f12b770d4af40f1723.png

7、Hive开启JMX

        参考文档:Hive1.2.1开启Jmx - 灰信网(软件开发博客聚合)

        按照参考文档,在 hive 安装目录的 ...hive/conf 路径下,修改 hive-env.sh 配置文件,修改结果如下:

修改前

export HADOOP_OPTS="$HADOOP_OPTS -Dfile.encoding=UTF-8"

修改后

export HADOOP_OPTS="$HADOOP_OPTS -Dfile.encoding=UTF-8 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false  -Dcom.sun.management.jmxremote.port=9093"

        修改后,启动 metastore 成功,启动 hiveserver2 报错。如图:

https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/a/RjmmPonl4iOAXDMB/4a57dc2bf38a468487c6d577f0b454281723.png

        这是因为在启动 metastore 时,已经占用了指定端口(9093)。

        解决方案:

        鉴于以上错误,改为单独为 hiveserver2 开启 jmx。具体做法是,撤消上述 hive-env.sh 配置文件的修改,在 hive 安装目录的 .../hive/bin目录下,修改 hive 脚本。添加内容如下:

if [[ "$SERVICE" == "hiveserver2" ]] ; then

  export HADOOP_CLIENT_OPTS="$HADOOP_OPTS  -Dfile.encoding=UTF-8 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=9093 "

fi

        截图:

https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/a/RjmmPonl4iOAXDMB/2538ab07c0314b69b412bcb6494206b11723.png

        添加后,启动 metastore、hiveserver2成功。

        验证:

        在jdk安装目录的 .../jdk/bin 目录下,运行 jvisualvm.exe。打开相应界面后,在页面左侧的“远程”下,添加远程主机。如:

https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/a/RjmmPonl4iOAXDMB/493bda718314457ca553c6d7bb373cc31723.png

         然后在远程主机下,添加jmx连接,如:

https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/a/RjmmPonl4iOAXDMB/67beb9ac401848b8b4ff71f728c983b81723.png

         添加后,双击jmx连接,即可打开相应的监控页面,如:

https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/a/RjmmPonl4iOAXDMB/0394f48f4db449668aef46a3525b42431723.png

8、内存优化

https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/a/RjmmPonl4iOAXDMB/d38009a2b76b4d1c8c4e09d971d22a041723.png

        优化原则:

        hiverserver2的安全最大内存配置=250M*引擎的最大并发度,-Xmx设置成它的60%到100%都是可以的,根据部署机器的内存是否充裕,决定-Xmx的数值。我们引擎的最大并发度随集群配置的增长而增长。

        测试演示的非正式上线系统:hiveserver2的内存 -Xms512m -Xmx1g。

        正式上线系统:hiveserver2 的内存配置 -Xms1g -Xmx4g;metadatastore 内存配置 -Xms256m -Xmx512m。

        配置流程:

        在hive安装目录的 ...hive/bin目录下,修改 hive 脚本。在开启JMX的配置中,添加内存配置,如:

https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/a/RjmmPonl4iOAXDMB/2e9d21baeea149b4a035d8d0272546571723.png

        同理开启 metadatastore 的 jmx,以及配置内存。(待验证)

​​​​​​​9、hiveserver2 日志配置

        在.../hive/conf目录下,修改 hive-log4j2.properties 配置,修改日志文件的存放位置。命令:

cd /xcloud/hive/conf

cp hive-log4j2.properties.template hive-log4j2.properties

vim hive-log4j2.properties

原配置:

https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/PQ35O8V5gkJgn9Vb/img/400b9ef3-e90e-480a-a9dc-71cf8b3125c3.png

 修改后:

https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/PQ35O8V5gkJgn9Vb/img/28e8413a-840d-4818-b185-fa10c1d73751.png

10、hive升级

        小版本升级,如从3.1.2升级到3.1.3,只需要将hive服务停掉,然后重新安装hive即可。因为hive的元数据已存在,所以省去了初始化的步骤,按原有配置,配好后,直接启动即可。

        大版本升级,如从3.0.0升级到3.1.0,因为大版本在元数据的存储上存在差异,所以不能够按小版本的方式升级。重新安装高版本的hive后,还需要对元数据进行升级,元数据的升级脚本位于/xcloud/hive/scripts/metastore/upgrade目录下,依据元数据存储的数据库接着向下找,如

https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/PQ35O8V5gkJgn9Vb/img/9ce59859-dc6d-4bae-8fdf-5200d662d46a.png

11、问题记录

        1)hive初始化元数据库报错:

https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/a/RjmmPonl4iOAXDMB/0806c030d71b44eda8015196797381661723.png

        解决方案:hadoop与hive的jar包版本不一致,使用hadoop的guava-27.0-jre.jar替换hive的guava-19.0.jar

https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/a/RjmmPonl4iOAXDMB/846f48a7daa443cfae9a759611453e771723.png

        2)初始化报错,hive-site.xml中有特殊字符。

https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/PQ35O8V5gkJgn9Vb/img/11901a3b-ab72-4fb4-bc05-aa3e5f7733e0.png

https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/PQ35O8V5gkJgn9Vb/img/41ad86db-2b75-40ff-b342-571b40aad1b5.png

        删除上图中的特殊字符即可

        3)初始化报错,无法连接到数据库

https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/PQ35O8V5gkJgn9Vb/img/8f566075-97be-4fde-867f-30a32374103e.png

        确认hive-site.xml配置文件中,配置的数据库、数据库用户是否存在。不存在的话,先建数据库及用户

一站式大数据平台XSailboat简介--Hadoop、Hive、Flink、DataStudio、数据服务、API网关、认证中心、数据可视化、离线分析、实时计算、应用引擎等_OkGogooXSailboat的博客-CSDN博客

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值