Hadoop生态系统-Hive

安装

安装mysql

  • 1.卸载Linux自带的mysql(102)
  • 图示 在这里插入图片描述1)查自带的软件
    Centos6:mysql Centos7:mariadb
    rpm -qa | grep -i -E mysql|mariadb(-i忽略大小写,-E识别转义字符|:或者)
    2)结合查看命令卸载xargs作为参数传递,-n1结果作为参数一个一个传递,-e删除,–nodeps忽略依赖关系删除
    rpm -qa | grep -i -E mysql|mariadb | xargs -n1 sudo rpm -e --nodeps
  • 2.安装
    • 上传mysql的tar包,并解压到指定目录
      在这里插入图片描述
      在这里插入图片描述

    • 由于存在依赖关系,所以按照顺序执行rpm安装在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

sudo rpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-libs-compat-5.7.28-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpm
sudo yum install -y libaio
sudo rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm
    • 初始化并启动mysqld服务
      在这里插入图片描述
sudo mysqld --initialize --user=mysql
sudo systemctl start mysql
sudo systemctl status mysql
  • 查看mysql的root临时命令,并登录在这里插入图片描述
sudo cat /var/log/mysqld.log | grep password
mysql -root -p
  • 修改密码在这里插入图片描述
set password = password("123456")
  • 3.远程连接配置
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
update mysql.user set host='%' where user='root';
flush privileges;

在这里插入图片描述

安装hive

  • 1.上传安装包,并解压,并改名
  • 2.配置环境变量在这里插入图片描述
sudo vim /etc/profile.d/my_env.sh
#hive
export HIVE_HOME=/opt/module/hive
export PATH=$PATH:$HIVE_HOME/bin
  • 3.解决日志jar包冲突,删除hive的日志文件,到时候直接使用hadoop的
    在这里插入图片描述
cd /opt/module/hive/lib
ll | grep log4j-slf4j-impl-2.10.0.jar
rm -rf ./log4j-slf4j-impl-2.10.0.jar

配置hive

  • 配置Metastore到MySQL
    在这里插入图片描述
    useSSL=false和true的区别:
    SSL(Secure Sockets Layer 安全套接字协议),在mysql进行连接的时候,如果mysql的版本是5.7之后的版本必须要加上useSSL=false,mysql5.7以及之前的版本则不用进行添加useSSL=false,会默认为false,一般情况下都是使用useSSL=false,尤其是在将项目部署到linux上时,一定要使用useSSL=false!!!,useSSL=true是进行安全验证,一般通过证书或者令牌什么的,useSSL=false就是通过账号密码进行连接,通常使用useSSL=false!!!
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <!-- jdbc连接的URL -->
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://hadoop102:3306/metastore?useSSL=false</value>
</property>

    <!-- jdbc连接的Driver-->
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
</property>

    <!-- jdbc连接的username-->
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
    </property>

    <!-- jdbc连接的password -->
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>123456</value>
</property>

    <!-- Hive默认在HDFS的工作目录 -->
    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>/user/hive/warehouse</value>
    </property>
    
   <!-- Hive元数据存储的验证 -->
    <property>
        <name>hive.metastore.schema.verification</name>
        <value>false</value>
    </property>
   
    <!-- 元数据存储授权  -->
    <property>
        <name>hive.metastore.event.db.notification.api.auth</name>
        <value>false</value>
    </property>
    
        <!-- 指定hiveserver2连接的host -->
    <property>
        <name>hive.server2.thrift.bind.host</name>
        <value>hadoop102</value>
    </property>

    <!-- 指定hiveserver2连接的端口号 -->
    <property>
        <name>hive.server2.thrift.port</name>
        <value>10000</value>
    </property>
    
    <!-- 指定存储元数据要连接的地址,元数据服务(可选) -->
    <property>
        <name>hive.metastore.uris</name>
        <value>thrift://hadoop102:9083</value>
    </property>
 <!-- 默认hive方式连接客户端时,显示所在数据库和表头字段(可选) -->
    <property>
        <name>hive.cli.print.header</name>
        <value>true</value>
    </property>
    <property>
        <name>hive.cli.print.current.db</name>
        <value>true</value>
    </property>
</configuration>
  • jdbc配置
    在这里插入图片描述
    在这里插入图片描述
    将jdbc拷贝到hive的lib目录下

启动hive

  • 前提是启动hadoop集群
    由于之前将普通集群改为了高可用集群,所以要改回来。集群机器全部更改回原来的环境变量!!!在这里插入图片描述

  • 两种客户端启动hive

  1. 创建并初始化metastore库
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
create database metastore;
schematool -initSchema -dbType mysql -verbose
  1. hive(普通客户端,直接操作hive)
    在这里插入图片描述
    在这里插入图片描述
    退出exit或quit
  2. jdbc(通过jdbc协议的服务hiveserver2去间接操作hive)显示的格式更好看。退出:!quit
    • 配置hiveserver2(/opt/module/hive/conf/hive-site.xml)
    • 需要先启动hiveserver2服务,由它提供jdbc协议。启动此服务后此窗口会处于阻塞状态,关闭此窗口服务也会停止。所以另起窗口beeline连接hiveserver2服务
    • 在这里插入图片描述
      在这里插入图片描述
    <!-- 指定hiveserver2连接的host -->
    <property>
        <name>hive.server2.thrift.bind.host</name>
        <value>hadoop102</value>
    </property>
    <!-- 指定hiveserver2连接的端口号 -->
    <property>
        <name>hive.server2.thrift.port</name>
        <value>10000</value>
    </property>

配置元数据服务(可选,不建议)

配置此服务后,以后启动hive都要启动此服务,否则不能使用
但是启动此服务会阻塞窗口

在数仓Proset配置中,发现不用配置此服务直接启动它也可以使用(???),那就不必配置
nohup hive --service metastore >/dev/null 2>&1 &
netstat -nltp | grep 9083
通过端口号查出进程号kill掉就可以停止此服务
  • 如果配置后不启动此服务,虽然能连接到hive但是不能进行操作。此服务的启动也会阻塞窗口在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

交互命令

  • mysql中准备数据1和2在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 不用登录hive操作mysql,自动登录执行操作后退出hive -e在这里插入图片描述

  • 自动执行文件中的SQL语句后退出在这里插入图片描述

其他命令

  • 了解在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

属性配置

  • 默认连接方式,配置后查询语句会显示列名和在哪个数据库。了解,使用beeline多些,结构更加清晰在这里插入图片描述
  • 日志位置在这里插入图片描述在这里插入图片描述
  • 配置优先级。优先级越大,生效范围越小在这里插入图片描述
    文件配置,全局生效,后两种只针对当前客户端生效,但是优先级大于第一种
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值