欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Hive安装部署

程序员文章站 2022-07-06 16:15:01
...

感性认知:

  • 数据库与数据仓库
    数据库:
    mysql、oracle、sqlserver、DB2、sqlite、MDB
    数据仓库:
    Hive,是MR的客户端,也就是说不必要每台机器都安装部署Hive

  • 本质是什么?
    理性认知:

  • Hive的特性
    1、操作接口是采用SQL语法,HQL
    2、避免了写MapReduce的繁琐过程

  • Hive体系结构
    1、Client
    ** 终端命令行
    ** JDBC -- 不常用,非常麻烦(相对于前者)
    2、metastore
    ** 原本的数据集和字段名称以及数据信息之间的双射关系。
    ** 我们目前是存储在Mysql中
    3、Server-Hadoop
    ** 在操作Hive的同时,需要将Hadoop的HDFS开启,YARN开启,MAPRED配置好

  • Hive的部署与安装
    1、解压Hive到安装目录
    mv hive-default.xml.template hive-site.xml
    su - root

    yum -y install mysql mysql-server mysql-devel

    wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

    rpm -ivh mysql-community-release-el7-5.noarch.rpm

    yum -y install mysql-community-server

    尖叫提示:如果使用离线绿色版本(免安装版本)需要手动初始化Mysql数据库
    5、配置Mysql
    ** 开启Mysql服务
    # systemctl start mysqld.service
    ** 设置root用户密码
    # mysqladmin -uroot password '123456'
    ** 为用户以及其他机器节点授权
    mysql> grant all on . to [email protected]'hadoop-senior01.itguigu.com' identified by '123456';
    grant all on . to [email protected]'hadoop104' identified by '000000';

      grant:授权
      all:所有权限
      *.*:数据库名称.表名称
      root:操作mysql的用户
      @'':主机名
      密码:123456
    

** hive-site.xml
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop-senior01.itguigu.com:3306/metastore?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</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>123456</value>
    <description>password to use against metastore database</description>
</property>

** hive-log4j.properties
hive.log.dir=/opt/modules/cdh/hive-0.13.1-cdh5.3.6/logs
** 拷贝数据库驱动包到Hive根目录下的lib文件夹
bin/hive
** 修改HDFS系统中关于Hive的一些目录权限
/opt/modules/cdh/hadoop-2.5.0-cdh5.3.6/bin/hadoop fs -chmod 777 /user/hive/warehouse
** 显示数据库名称以及字段名称

<property>
<name>hive.cli.print.header</name>
<value>true</value>
<description>Whether to print the names of the columns in query output.</description>
</property>

<!-- 是否在当前客户端中显示当前所在数据库名称 -->
<property>
    <name>hive.cli.print.current.db</name>
    <value>true</value>
    <description>Whether to include the current database in the Hive prompt.</description>
</property>

** 创建数据库
hive> create database staff;
** 创建表操作
hive> create table t1(eid int, name string, sex string) row format delimited fields terminated by '\t';
** 导入数据
*** 从本地导入
load data local inpath '文件路径' into table;
*** 从HDFS系统导入