• 在hadoop上搭建hive环境


    一、下载安装包并解压

    在官网下载最新版的hive包,apache-hive-3.1.3-bin.tar.gz,并进行解压

    tar -zvxf apache-hive-3.1.3-bin.tar.gz
    
    • 1

    二、配置环境变量

    加入环境变量

    #编辑文件,该文件是我们在hadoop中搭建是创建的,可以直接在里面添加
    vim /etc/profile.d/hadoop.sh
    
    export HIVE_HOME=/home/zxhy/hadoop-3.3.3/app/apache-hive-3.1.3-bin
    export PATH=$PATH:$HIVE_HOME/bin
    
    #刷新参数
    source /etc/profile
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    三、安装Mysql

    大家自行寻找教程安装就可以了,我是用docker安装的,分享一个dockerfile和compose的配置吧
    dockerfile文件

    # 基础镜像
    FROM mysql:5.7
    # author
    MAINTAINER zxhy
    # 修改时区
    RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    RUN echo 'Asia/Shanghai' >/etc/timezone
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    compose文件

    version : '3.8'
    services:
      zxhy-mysql:
        container_name: zxhy-mysql
        image: mysql:5.7
        build:
          context: ./mysql
        ports:
          - "3306:3306"
        logging:
          driver: json-file
          options:
            max-size: "20M"
            max-file: "5"
        volumes:
          - ./mysql/conf:/etc/mysql/conf.d
          - ./mysql/logs:/logs
          - ./mysql/data:/var/lib/mysql
        command: [
              'mysqld',
              '--innodb-buffer-pool-size=80M',
              '--character-set-server=utf8mb4',
              '--collation-server=utf8mb4_unicode_ci',
              '--default-time-zone=+8:00',
              '--lower-case-table-names=1'
            ]
        environment:
          MYSQL_DATABASE: 'zx-cloud'
          MYSQL_ROOT_PASSWORD: 111111
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    下载mysql的连接jar,复制到lib目录下/home/zxhy/hadoop-3.3.3/app/apache-hive-3.1.3-bin/lib/mysql-connector-java-8.0.27.jar

    四、配置hive-site.xml

    #进入配置目录
    cd /home/zxhy/hadoop-3.3.3/app/apache-hive-3.1.3-bin/conf
    #用默认模板复制一个配置文件
    cp hive-default.xml.template hive-site.xml
    #然后编辑文件
    vi hive-site.xml
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    修改hive-site.xml文件中主要的一些配置项。

    <configuration>
    	<property>
    		<name>hive.metastore.warehouse.dirname>
    	    <value>/home/zxhy/hadoop-3.3.3/data/hive/warehousevalue>
    	    <description>location of default database for the warehousedescription>
    	property>
    	<property>
    	    <name>javax.jdo.option.ConnectionURLname>
    	    <value>jdbc:mysql://192.168.1.253:3306/zx_hive?createDatabaseIfNotExist=truevalue>
    	    <description>JDBC connect string for a JDBC metastoredescription>
    	property>
    	<property>
    	    <name>javax.jdo.option.ConnectionDriverNamename>
    	    <value>com.mysql.cj.jdbc.Drivervalue>
    	    <description>Driver class name for a JDBC metastoredescription>
    	property>
    	<property>
    	    <name>javax.jdo.option.ConnectionUserNamename>
    	    <value>rootvalue>
    	    <description>Username to use against metastore databasedescription>
    	property>
    	<property>
    	    <name>javax.jdo.option.ConnectionPasswordname>
    	    <value>111111value>
    	    <description>password to use against metastore databasedescription>
    	property>
    	<property>
    	    <name>datanucleus.schema.autoCreateAllname>
    	    <value>truevalue>
    	    <description>Auto creates necessary schema on a startup if one doesn't exist. Set this to false, after creating it once.To enable auto create also set hive.metastore.schema.verification=false. Auto creation is not recommended for production use cases, run schematool command instead.description>
    	property>
    configuration>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    五、配置hive-env.sh

    #用默认模板复制一个配置文件
    cp hive-env.sh.template hive-env.sh
    #然后编辑文件
    vi hive-env.sh
    
    • 1
    • 2
    • 3
    • 4

    如果没在/etc/profile.d/hadoop.sh里面设置过JAVA_HOME、HIVE_HOME、HADOOP_HOME等环境变量,则在文件头加上下面的环境变量

    export JAVA_HOME=/opt/jdk1.8.0_202
    export HIVE_HOME=/home/zxhy/hadoop-3.3.3/app/apache-hive-3.1.3-bin
    export HADOOP_HOME=/home/zxhy/hadoop-3.3.3
    
    • 1
    • 2
    • 3

    六、初始化数据库并启动hive

    #初始化数据库
    schematool -dbType mysql -initSchema
    #启动hive
    nohup hiveserver2 -hiveconf hive.execution.engine=mr &
    #使用测试连接是否正常
    beeline -u jdbc:hive2://localhost:10000 -n root
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    七、问题记录

    1、注意数据库名称中最好不要包含特殊符号,比如"-"或者其他特别的符号,下划线是可以的。
    2、一定把连接数据库的mysql-connector-java-8.0.27.jar放入到lib中,不然连接数据库会报错。
    3、jar冲突问题,比如log4j的文件冲突报错,我们把hive/lib下面的删除掉就可以了。

    SLF4J: Found binding in [jar:file:/home/zxhy/hadoop-3.3.3/app/apache-hive-3.1.3-bin/lib/log4j-slf4j-impl-2.17.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J: Found binding in [jar:file:/home/zxhy/hadoop-3.3.3/share/hadoop/common/lib/slf4j-reload4j-1.7.36.jar!/org/slf4j/impl/StaticLoggerBinder.class]
    
    • 1
    • 2

    4、使用beeline -u jdbc:hive2://localhost:10000 -n root 报错:User: root is not allowed to impersonate root
    修改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>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    5、连接报错:Name node is in safe mode.
    运行命令关闭安全模式就好了

    hdfs dfsadmin -safemode leave
    
    • 1
  • 相关阅读:
    Gitlab: PHP项目CI/CD实践
    万恶的 eval() ?
    DP1332E高度集成的非接触读写芯片13.56MHz
    七甲川荧光染料标记酸,Cy7 酸,Cy7-acid,CAS 943298-08-6参数及特性解析
    Spring框架系列(4) - 深入浅出Spring核心之面向切面编程(AOP)
    【CEEMDAN-VMD-CNN-LSTM】双重分解+卷积神经网络+长短期记忆神经网络多变量回归预测,多变量输入模型
    .rancher-pipeline.yml
    IDEA插件开发(12)---Dependencies
    Matlab/Python教程系列 | 根据目录下的已有图片制作视频(动画)
    亚微米聚苯乙烯微球乳化剂β-环糊精/表面接枝β环糊精聚苯乙烯纤维的制备过程
  • 原文地址:https://blog.csdn.net/holybird0213/article/details/126030302