• Hive安装与入门


    Hive安装

    下载地址
    https://dlcdn.apache.org/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz

    共需要以下三个包:
    apache-hive-3.1.2-bin.tar.gz
    mysql-5.7.35-1.el7.x86_64.rpm-bundle.tar
    mysql-connector-java-5.1.38.jar (用于hive连接mysql)

    解压到安装目录
    tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /opt/module/

    重命名
    mv apache-hive-3.1.2-bin hive

    配置环境变量
    vim /etc/profile.d/my_env.sh
    加入如下代码,再保存退出

    #HIVE_HOME
    export HIVE_HOME=/opt/module/hive
    export PATH=$PATH:$HIVE_HOME
    
    • 1
    • 2
    • 3

    重新生效
    source /etc/profile.d/my_env.sh

    解决日志包冲突
    mv $HIVE_HOME/lib/log4j-slf4j-impl-2.10.0.jar $HIVE_HOME/lib/log4j-slf4j-impl-2.10.0.bak

    初始化元数据库
    bin/schematool -dbType derby -initSchema
    报错请查看 https://blog.csdn.net/weixin_44371237/article/details/126228225

    启动hadoop集群
    /home/hadoop.sh start

    hadoop集群配置 https://blog.csdn.net/weixin_44371237/article/details/125907747
    hadoop集群启停脚本 https://blog.csdn.net/weixin_44371237/article/details/126040977

    登录hive
    bin/hive

    查看数据库
    show databases;

    查看表
    show tables;

    创建表
    create table test(id string);

    插入数据
    insert into test values(‘1001’);

    获取数据
    select * from test;

    Mysql安装

    复制mysql驱动
    mv /software/mysql-connector-java-5.1.38.jar $HIVE_HOME/lib/

    新建如下hive-site.xml,上传到/opt/module/hive/conf

    
    
    
        
        
            javax.jdo.option.ConnectionURL
            jdbc:mysql://hadoop100:3306/metastore?useSSL=false
        
    
        
        
            javax.jdo.option.ConnectionDriverName
            com.mysql.jdbc.Driver
        
    
        
        
            javax.jdo.option.ConnectionUserName
            root
        
    
        
        
            javax.jdo.option.ConnectionPassword
            root123456
        
    
        
        
            hive.metastore.schema.verification
            false
        
    
        
        
            hive.metastore.event.db.notification.api.auth
            false
        
    
        
        
            hive.metastore.warehouse.dir
            /user/hive/warehouse
        
    
    
    
    • 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
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46

    解压
    tar -xvf mysql-5.7.35-1.el7.x86_64.rpm-bundle.tar

    检查是否安装过
    rpm -qa | grep mysql
    rpm -qa | grep mariadb

    如果存在,卸载
    rpm -e --nodeps mariadb-libs
    rpm -e --nodeps mysql-xxxx

    安装5.7.35版本,需要如下安装包,按顺序安装,不然会提示报错

    rpm -ivh mysql-community-common-5.7.35-1.el7.x86_64.rpm
    rpm -ivh mysql-community-libs-5.7.35-1.el7.x86_64.rpm
    rpm -ivh mysql-community-libs-compat-5.7.35-1.el7.x86_64.rpm
    rpm -ivh mysql-community-client-5.7.35-1.el7.x86_64.rpm
    rpm -ivh mysql-community-server-5.7.35-1.el7.x86_64.rpm
    
    • 1
    • 2
    • 3
    • 4
    • 5

    报错请查看 https://blog.csdn.net/weixin_44371237/article/details/126242806

    启动服务
    systemctl start mysqld

    使用临时密码登录
    mysql -uroot -p’im/)1!je=Sod’

    进入mysql后,设置新密码
    set password for root@localhost = password(‘root123456’);
    错误请查看 https://blog.csdn.net/weixin_44371237/article/details/119966466

    修改 mysql 库下的 user 表中的 root 用户允许任意 ip 连接
    update mysql.user set host=‘%’ where user=‘root’;
    flush privileges;

    使用元数据服务的方式访问 Hive

    hive-site.xml新增如下

    
    
        hive.metastore.uris
        thrift://hadoop100:9083
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    配置上面后,必须先启动metastore,否则提示失败
    bin/hive --service metastore
    注意: 启动后窗口不能再操作,需打开一个新的 shell 窗口做别的操作
    在这里插入图片描述
    窗口被占用,再重新开一个窗口
    bin/hive

    使用 JDBC 方式访问 Hive

    hive-site.xml新增如下

    
    
        hive.server2.thrift.bind.host
        hadoop100
    
    
    
    
        hive.server2.thrift.port
        10000
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    先启动元服务,JDBC依赖元服务
    bin/hive --service metastore

    再重新开一个窗口,启动 hiveserver2
    bin/hive --service hiveserver2

    再重新开一个窗口,启动 beeline 客户端
    bin/beeline -u jdbc:hive2://hadoop100:10000 -n root

    Error: Could not open client transport with JDBC Uri: jdbc:hive2://hadoop100:10000: 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 root (state=08S01,code=0)
    
    • 1

    如上错误,修改 Hadoop配置文件/opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml

    
        hadoop.proxyuser.root.hosts
        *
    
    
        hadoop.proxyuser.root.groups
        *
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    报错原因

    hadoop.proxyuser.$superuser.hosts 配置该superUser允许通过代理访问的主机节点
    hadoop.proxyuser.$superuser.groups 配置该superUser允许代理的用户所属组
    hadoop.proxyuser.$superuser.users 配置该superUser允许代理的用户
    
    • 1
    • 2
    • 3

    后台启动

    nohup: 放在命令开头,表示不挂起,也就是关闭终端进程也继续保持运行状态

    /dev/null:是 Linux 文件系统中的一个文件,被称为黑洞,所有写入改文件的内容都会被自动丢弃

    2>&1 : 表示将错误重定向到标准输出上

    &: 放在命令结尾,表示后台运行

    一般会组合使用: nohup [xxx 命令操作]> file 2>&1 &,表示将 xxx 命令运行的结果输出到 file 中,并保持命令启动的进程在后台运行。

    [root@hadoop100 hive] nohup hive --service metastore 2>&1 & 
    [root@hadoop100 hive] nohup hive --service hiveserver2 2>&1 & 
    
    • 1
    • 2
  • 相关阅读:
    云计算-私有云-国产-华为-FusionCloud
    用HTML和CSS打造跨年烟花秀视觉盛宴
    【第54篇】知识蒸馏:Distilling the Knowledge in a Neural Network
    HTML、ASP.NET、XML、Javascript、DIV+CSS、JQuery、AJax的起源与简介
    windows下Redis-cluster集群搭建
    基于达梦数据库开发-C#篇
    计算机毕业设计Python+Django的学生作业管理系统(源码+系统+mysql数据库+Lw文档)
    刚开始学SpringCloud的Eureka带来的问题
    深入浅出PyTorch中的nn.CrossEntropyLoss
    ts泛型,映射,条件类型和类型提取infer和一些常用工具库的说明
  • 原文地址:https://blog.csdn.net/weixin_44371237/article/details/126226489