Hadoop 3.1.3伪分布式环境安装Hive 3.1.2的异常总结

  背景:hadoop版本为3.1.3, 且以伪分布式形式安装,hive版本为3.1.2,hive为hadoop的一个客户端。

1. 安装简要步骤

(1) 官网下载apache-hive-3.1.2-bin.tar.gz,并解压缩

(2) 进入conf配置文件夹,将hive-env.sh.template重命名为hive-env.sh,并在其中增加如下配置

a. hadoop安装目录:export HADOOP_HOME=/home/ws/module/hadoop

b. hive配置目录:export HIVE_CONF_DIR=/home/ws/module/hive/conf

c. hive依赖包:export HIVE_AUX_JARS_PATH=/home/ws/module/hive/lib

(3) 将hive-default.xml.template重命名为hive-site.xml

1) 如果想使用默认的derby数据库,可以修改如下地方:

a. 将配置文件中如下文本中for和transactional的非法字符删除或替换

Ensures commands with OVERWRITE (such as INSERT OVERWRITE) acquire Exclusive locks fortransactional tables. This ensures that inserts (w/o overwrite) running concurrently are not hidden by the INSERT OVERWRITE.

防止报异常:Hive throws: WstxParsingException: Illegal character entity: expansion character (code 0x8)

b. 将配置文件中所有的${system:java.io.tmpdir}/${system:user.name}修改为绝对路径如/tmp/scratchdir,同理将${system:java.io.tmpdir}/${hive.session.id}_resources中的${system:java.io.tmpdir}也替换为一个绝对路径,否则会报异常:Caused by: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D**

c. 在javax.jdo.option.ConnectionURL属性中增加derby的路径,如下所示:

jdbc:derby:/home/ws/module/hive/metastore_db;databaseName=metastore_db;create=true

d. 配置好之后需要创建metada schema: schematool -initSchema -dbType derby

e. 然后执行hive即可对hive命令行进行测试

2) 因为derby数据库默认同时只允许一个用户连接,因此通常hive会使用mysql数据库,具体配置如下:

a. 由于需要链接mysql,因此需要将mysql的jar包(博主采用mysql-connector-java-5.1.47.jar)放置在hive安装目录的lib文件夹下

b. 可以不使用默认的hive-site.xml,而是直接在hive-site.xml只需要录入需要的属性配置信息:

<configuration>
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://localhost:3306/metastore?createDatabaseIfNotExist=true&amp;useUnicode=true&amp;characterEncoding=UTF-8&amp;useSSL=false</value>
    <description>
      JDBC connect string for a JDBC metastore.
      To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL.
      For example, jdbc:postgresql://myhost/db?ssl=true for postgres database.
    </description>
  </property>

  <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
    <description>Driver class name for a JDBC metastore</description>
  </property>

  <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
    <description>Username to use against metastore database</description>
  </property>

  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>111</value>
    <description>password to use against metastore database</description>
  </property>

  <property>
    <name>hive.metastore.schema.verification</name>
    <value>false</value>
  </property>

        <property>
                <name>datanucleus.readOnlyDatastore</name>
                <value>false</value>
        </property>
        <property>
                <name>datanucleus.fixedDatastore</name>
                <value>false</value>
        </property>
        <property>
                <name>datanucleus.autoCreateSchema</name>
                <value>true</value>
        </property>
        <property>
                <name>datanucleus.schema.autoCreateAll</name>
                <value>true</value>
        </property>
        <property>
                <name>datanucleus.autoCreateTables</name>
                <value>true</value>
        </property>
<property>
                <name>datanucleus.autoCreateColumns</name>
                <value>true</value>
        </property>
        <property>
                <name>hive.metastore.local</name>
                <value>true</value>
        </property>
        <!-- 显示表的列名 -->
        <property>
                <name>hive.cli.print.header</name>
                <value>true</value>
        </property>
        <!-- 显示数据库名称 -->
        <property>
                <name>hive.cli.print.current.db</name>
                <value>true</value>
        </property>
</configuration>

c. 创建metada schema: schematool -initSchema -dbType mysql

d. 然后执行hive即可对hive命令行进行测试

2. 异常汇总

(1) 部分遇到的异常,已在如上安装步骤中列出

(2) 异常FAILED: HiveException java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

解决方案:需要创建metada schema:schematool -initSchema -dbType derby/mysql

3. 参考

(1) https://askubuntu.com/questions/1073035/failed-hiveexception-java-lang-runtimeexception-unable-to-instantiate-org-apac

(2) https://stackoverflow.com/questions/52783323/hive-throws-wstxparsingexception-illegal-character-entity-expansion-character

(3) hive3.1.2安装

如有问题,留言联系!

原文地址:https://www.cnblogs.com/mengrennwpu/p/11892306.html

时间: 2024-11-14 09:22:13

Hadoop 3.1.3伪分布式环境安装Hive 3.1.2的异常总结的相关文章

Hadoop YARN 安装-单机伪分布式环境

本文是根据Hadoop官网安装教程写的Hadoop YARN在单机伪分布式环境下的安装报告,仅供参考. 1. 安装环境如下: 操作系统:Ubuntu14.04 Hadoop版本:hadoop-2.5.0 Java版本:openjdk-1.7.0_55 2. 下载Hadoop-2.5.0,下载地址 http://mirrors.cnnic.cn/apache/hadoop/common/hadoop-2.5.0/hadoop-2.5.0.tar.gz 本文的$HADOOP_HOME为:/home/

Hadoop伪分布式环境配置

Step1:关闭防火墙   service iptables stop[status]  service iptables status  chkconfig --list |grep iptables  chkconfig iptables offStep2:修改IP   (重启网卡:service network restart)Step3:修改hostname  /etc/hostsStep4:SSH免密码登陆  产生密钥(~/.ssh中)ssh-keygen -t rsa   cd ~/

Hadoop初体验:快速搭建Hadoop伪分布式环境

0.前言 本文旨在使用一个全新安装好的Linux系统从0开始进行Hadoop伪分布式环境的搭建,以达到快速搭建的目的,从而体验Hadoop的魅力所在,为后面的继续学习提供基础环境. 对使用的系统环境作如下说明: 操作系统:CentOS 6.5 64位 主机IP地址:10.0.0.131/24 主机名:leaf 用户名:root hadoop版本:2.6.5 jdk版本:1.7 可以看到,这里直接使用root用户,而不是按照大多数的教程创建一个hadoop用户来进行操作,就是为了达到快速搭建Had

Hadoop:Hadoop单机伪分布式的安装和配置

http://blog.csdn.net/pipisorry/article/details/51623195 因为lz的linux系统已经安装好了很多开发环境,可能下面的步骤有遗漏. 之前是在docker中配置的hadoop单机伪分布式[Hadoop:Hadoop单机伪分布式的安装和配置 ],并且在docker只有root用户,所有没有权限问题存在. 这里直接在linux下配置,主要是为了能用netbeans ide调试hadoop程序,并且使用的用户就是开机时登录的用户pika. 本教程配置

构建Hadoop伪分布式环境

构建Hadoop伪分布式环境 这篇文章介绍Hadoop伪分布式环境的搭建过程与原理,是个人的学习总结,以纪念在各个步骤中遇到的麻烦.踩过的坑! 这篇笔记包含这样几个内容: 配置伪分布式环境 运行一个简单的作业 可能遇到的问题及解决办法 配置伪分布式环境 本文中的内容基于Hadoop2,即MapReduce作业运行在Yarn平台之上. 打通SSH,实现无密码登陆 由于Hadoop控制脚本需要登陆到集群中的Slave节点执行操作(比如,启动守护进程),如果每一次登录都输入密码,显然不是个好办法.集群

《OD大数据实战》hadoop伪分布式环境搭建

一.安装并配置Linux 8. 使用当前root用户创建文件夹,并给/opt/下的所有文件夹及文件赋予775权限,修改用户组为当前用户 mkdir -p /opt/modules mkdir -p /opt/software mkdir -p /opt/datas mkdir -p /opt/tools chmod 775 /opt/* chown beifeng:beifeng /opt/* 最终效果如下: [[email protected]02 opt]$ pwd /opt [[email

【Hadoop】伪分布式环境搭建、验证

Hadoop伪分布式环境搭建: 自动部署脚本: #!/bin/bash set -eux export APP_PATH=/opt/applications export APP_NAME=Ares # 安装apt依赖包 apt-get update -y && apt-get install supervisor -y && apt-get install python-dev python-pip libmysqlclient-dev -y # 安装pip.python

阿里云服务器centos7.3下搭建hadoop伪分布式环境

一.软硬件环境 CentOS 7.2 64位 OpenJDK-1.8.0 Hadoop-2.7 二.安装SSH客户端 安装ssh: yum install openssh-clients openssh-server 安装完成后,使用以下命令测试: ssh localhost输入 root 账户的密码,如果可以正常登录,则说明SSH安装没有问题. 配置SSH免key登陆 hadoop是一个分布式系统,节点间通过ssh通信,为了避免在连接过程中人工输入密码,需要进行ssh免key登陆的配置,由于本

一、Hadoop伪分布式环境搭建

Hadoop 2.x伪分布式环境搭建步骤: 1.修改hadoop-env.sh.yarn-env.sh.mapred-env.sh 方法:使用notepad++(beifeng用户)代开这三个文件 添加代码:export JAVA_HOME=/opt/modules/jdk1.7.0_67 2.修改core-site.xml.hdfs-site.xml.yarn-site.xml.mapred-site.xml配置文件 1)修改core-site.xml <configuration> <