Hadoop 之 Hive安装

一:Apache Hive 元数据

Hive Metadata

  • Hive Metadata即Hive的元数据。
  • 包含用Hive创建的database、table、表的位置、类型、属性、字段顺序类型等元数据。
  • 元数据存储在关系型数据库中。如hive内置的Derby、或者第三方如MySQL等。

Hive Metastore

  • Metastore即元数据服务。Metastore服务的作用是管理metadata元数据,对外暴露服务地址,让各种客户端通过连接metastore服务,由Metastore再去连接MySQL数据库来存取元数据。
  • 有了metastore服务,就可以有多个客户端同时连接,而且这些客户端不需要知道MySQL数据库的用户名和密码,只需要连接metastore服务即可。某种程度上也保证了hive元数据的安全。

Metastore远程模式

  •  在生产环境中,建议用远程模式来配置Hive Metastore。在这种情况下,其他依赖hive的软件都可以通过Metastore访问hive。由于还可以完全屏蔽数据库层,因此这也带来了更好的可管理性、安全性。

二:Apache Hive 部署实战

安装前准备

  • 由于Apache Hive 是一款基于Hadoop的数据仓库软件,通常部署运行在Linux系统之上。因此不管使用何种方式配置Hive Metastore,必须要先保证服务器的基础环境正常,Hadoop集群健康可用。
  • 服务器基础环境:集群时间同步、防护墙关闭、主机Host映射、免密登录、JDK安装。
  • Hadoop集群健康可用:启动Hive之前必须先启动Hadoop集群。特别要注意,需等待HDFS安全模式关闭之后再启动运行Hive。
  • Hive不是分布式安装运行的软件,其分布式的特性主要借由Hadoop完成。包括分布式存储、分布式计算。

Hadoop与Hive整合

  • 因为Hive需要把数据存储在HDFS上,并且通过MapReduce作为执行引擎处理数据。
  • 因此需要在Hadoop中添加相关配置属性,以满足Hive在Hadoop上运行。
  • 修改Hadoop中core-site.xml,并且Hadoop集群同步配置文件,重启生效。
    <!-- 整合Hive -->
    <property>
    	<name>hadoop.proxyuser.root.hosts</name>
    	<value>*</value>
    </property>
    
    <property>
    	<name>hadoop.proxyuser.root.groups</name>
    	<value>*</value>
    </property>
    

Mysql 安装

  • 注意mysql只需要在一台机器安装并且需要授权远程访问。
  • 卸载Centos7自带的mariadb
    rpm -qa|grep mariadb
    rpm -e mariadb-libs-5.5.64-1.el7.x86_64 --nodeps
    
  • 安装mysql

    Mysql 下载地址 MySQL :: Download MySQL Community Server

    选择 Red Hat Enterprise Linux / Oracle Linux 

            Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86, 64-bit)

    上传至服务器任意目录并解压
    执行安装:yum -y  install libaio
    执行:rpm -ivh mysql-community-common-5.7.41-1.el7.x86_64.rpm mysql-community-libs-5.7.41-1.el7.x86_64.rpm mysql-community-client-5.7.41-1.el7.x86_64.rpm mysql-community-server-5.7.41-1.el7.x86_64.rpm
  • mysql初始化设置
    #初始化
    mysqld --initialize
    
    #变更所属组
    chown mysql:mysql /var/lib/mysql -R
    
    #启动mysql
    systemctl start mysqld.service
    
    #查看生成的临时root密码
    cat /var/log/mysqld.log
    [Note] A temporary password is generated for root@localhost:o+TU+KDOm004
    
  • 修改root密码 授权远程访问 设置开机自启动

  • 上传解压Hive安装包(node1安装即可)

    Hive 下载地址 :Index of /apache/hive

    解压:tar -zxf apache-hive-3.1.3-bin.tar.gz
    mv apache-hive-3.1.3-bin  /usr/local/apache-hive-3.1.3-bin
    cd /usr/local/apache-hive-3.1.3-bin/lib
    rm -f guava-19.0.jar
    cp /usr/local/hadoop-3.3.4/share/hadoop/common/lib/guava-27.0-jre.jar  ./
  • 修改配置文件

    hive-env.sh
    
    cd /usr/local/apache-hive-3.1.3-bin/conf/
    mv hive-env.sh.template  hive-env.sh
    
    vim hive-env.sh
    底部插入:
    export HADOOP_HOME=/usr/local/hadoop-3.3.4
    export HIVE_CONF_DIR=/usr/local/apache-hive-3.1.3-bin/conf
    export HIVE_AUX_JARS_PATH=/usr/local/apache-hive-3.1.3-bin/lib
    
    hive-site.sh
    
    <configuration>
    <!-- 存储元数据mysql相关配置-->
    <property>
    	<name>javax.jdo.option.ConnectionURL</name>
    	<value>jdbc:mysql://node1:3306/hive3?createDatabaseIfNotExist=true&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8</value>
    </property>
    
    <property>
    	<name>javax.jdo.option.ConnectionDriverName</name>
    	<value>com.mysql.jdbc.Driver</value>
    </property>
    
    <property>
    	<name>javax.jdo.option.ConnectionUserName</name>
    	<value>root</value>
    </property>
    
    <property>
    	<name>javax.jdo.option.ConnectionPassword</name>
    	<value>111111</value>
    </property>
    
    <!-- H2S运行绑定host-->
    <property>
    	<name>hive.server2.thrift.bind.host</name>
    	<value>node1</value>
    </property>
    
    <!-- 远程模式部署metastore metastore地址-->
    <property>
    	<name>hive.metastore.uris</name>
    	<value>thrift://node1:9083</value>
    </property>
    
    <!-- 关闭元数据存储授权-->
    <property>
    	<name>hive.metastore.event.db.notification.api.auth</name>
    	<value>false</value>
    </property>
    </configuration>
    
  • 上传mysql jdbc驱动到hive安装包lib下

    Mysql驱动包下载 https://downloads.mysql.com/archives/c-j/
    
    下载:
    mysql-connector-java-5.1.49.tar.gz
    

  • 初始化元数据

    cd /usr/local/apache-hive-3.1.3-bin/bin
    
    ./schematool -initSchema -dbType mysql -verbos
    #初始化成功会在mysql中创建74张表

  • 在hdfs创建hive存储目录

    hadoop fs -mkdir /tmp
    hadoop fs -mkdir -p /user/hive/warehouse
    hadoop fs -chmod g+w /tmp
    hadoop fs -chmod g+w /user/hive/warehouse

  • 启动hive

    1.启动metastore服务
    
    #前台启动 关闭ctrl+c
    /usr/local/apache-hive-3.1.3-bin/bin/hive --service metastore
    
    #前台启动开启debug日志
    /usr/local/apache-hive-3.1.3-bin/bin/hive --service metastore --hiveconf hive.root.logger=DEBUG,console
    
    #后台启动 进程挂起  关闭使用jps+kill -9 
    nohup /usr/local/apache-hive-3.1.3-bin/bin/hive --service metastore &
    
    2.启动hiveserver2服务
    
    nohup /usr/local/apache-hive-3.1.3-bin/bin/hive --service hiveserver2 &
    #注意 启动hiveserver2需要一定时间 不要启动之后立即beeline连接 可能连接不上
    
    3.beeline 客户端连接
    >拷贝node1安装包到beeline客户端机器上(node3)
    scp -r /usr/local/apache-hive-3.1.3-bin/ root@node3:/usr/local/
    >连接访问
    /usr/local/apache-hive-3.1.3-bin/bin/beeline
    beeline> ! connect jdbc:hive2://node1:10000
    beeline> root
    beeline> 直接回车不要密码

三:Apache Hive 客户端使用

<1>Hive自带客户端

 

 

 

 

 

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值