• Hive之 hive-1.2.1 + hadoop 2.7.4 集群安装


    一、 相关概念

    Hive Metastore有三种配置方式,分别是:

    Embedded Metastore Database (Derby) 内嵌模式
    Local Metastore Server 本地元存储
    Remote Metastore Server 远程元存储
    1.1 Metadata、Metastore作用

    metadata即元数据。元数据包含用Hive创建的database、tabel等的元信息。
    元数据存储在关系型数据库中。如Derby、MySQL等。

    Metastore的作用是:客户端连接metastore服务,metastore再去连接MySQL数据库来存取元数据。有了metastore服务,就可以有多个客户端同时连接,而且这些客户端不需要知道MySQL数据库的用户名和密码,只需要连接metastore 服务即可。

    1.2三种配置方式区别

    内嵌模式使用的是内嵌的Derby数据库来存储元数据,也不需要额外起Metastore服务。这个是默认的,配置简单,但是一次只能一个客户端连接,适用于用来实验,不适用于生产环境。

    本地元存储和远程元存储都采用外部数据库来存储元数据,目前支持的数据库有:MySQL、Postgres、Oracle、MS SQL Server.在这里我们使用MySQL。

    本地元存储和远程元存储的区别是:本地元存储不需要单独起metastore服务,用的是跟hive在同一个进程里的metastore服务。远程元存储需要单独起metastore服务,然后每个客户端都在配置文件里配置连接到该metastore服务。远程元存储的metastore服务和hive运行在不同的进程里。

    在生产环境中,建议用远程元存储来配置Hive Metastore。

    前提: 已经安装好三个节点的 hadoop 集群,参考 http://blog.csdn.net/zhang123456456/article/details/77621487
    这里选用mySql作为元数据库,将mySql和Hive安装在master服务器上
    统一给放到/usr/local/hadoop

    1.下载安装文件,并解压:
    cd /usr/local/hadoop
    wget http://mirrors.cnnic.cn/apache/hive/hive-1.2.1/apache-hive-1.2.1-bin.tar.gz
    tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /usr/local/hadoop

    -- 如果 hive 有专属的用户,记得赋权
    sudo chown -R XXX:XXX /usr/local/hadoop/apache-hive-1.2.1-bin

    2.设置环境变量
    sudo vim /etc/profile
    在最后加上
    export HIVE_HOME=/usr/local/hadoop/apache-hive-1.2.1-bin(这儿是你的hive的解压路径)
    export PATH=$PATH:$HIVE_HOME/bin
    source /etc/profile ->使配置文件生效

    安装mysql , 参考 http://blog.csdn.net/zhang123456456/article/details/53608554 ,注意MySQL数据库不能设置为BINLOG_FORMAT = STATEMENT,否则报Cannot execute statement: impossible to write to binary log 。

    3. 在 mysql 数据库中创建 hive 专属数据库 与 用户
    mysql -u root -p ->输入之后会提示你输入之前你设置的root密码
    create database hiveDB; -> 建立数据库
    create user 'hive' identified by 'hive'; ->创建用户
    grant all privileges on hivedb.* to 'hive'@'%' identified by 'hive'; ->将允许从任意地点登陆的hive用户对hiveDB数据库的所有表执行增删查改四种操作
    flush privileges; -> 刷新系统权限表

    4.拷贝JDBC驱动包
    将mySql的JDBC驱动包复制到Hive的lib目录下
    cp mysql-connector-java-5.1.34-bin.jar  /usr/local/hadoop/apache-hive-1.2.1-bin/lib


    5.修改Hive配置文件:
    cd apache-hive-1.2.1-bin/conf/
    cp hive-default.xml.template hive-site.xml
    vi hive-site.xml  #修改相应配置

    hive.exec.scratchdir       ## 所有${system:java.io.tmpdir}和@{system:user.name}  都替换掉

    /usr/local/hadoop/apache-hive-1.2.1-bin/iotmp

    javax.jdo.option.ConnectionURL
    jdbc:mysql://HadoopMaster:3306/hivedb?useUnicode=true&characterEncoding=UTF-8&createDatabaseIfNotExist=true

    jdbc:mysql://hadp-master:3306/hivedb?useUnicode=true&createDatabaseIfNotExist=true

    javax.jdo.option.ConnectionDriverName
    com.mysql.jdbc.Driver

    javax.jdo.option.ConnectionUserName
    hive

    javax.jdo.option.ConnectionPassword
    hive

    hive.metastore.warehouse.dir
    /user/hive/warehouse
    location of default database for the warehouse


    说明:
    hive.exec.scratchdir->执行HIVE操作访问HDFS用于临时存储数据的目录。目录权限设置为733。我这儿用的是/tmp/hive目录。
    javax.jdo.option.ConnectionURL -> 设置hive通过JDBC链接MYSQL数据库存储metastore存放的数据库地址
    javax.jdo.option.ConnectionDriverName ->设置链接mysql的驱动名称。
    javax.jdo.option.ConnectionUserName -> 设置存储metastore内容的数据库用户名
    javax.jdo.option.ConnectionPassword -> 设置存储metastore内容的数据库用户名密码
    hive.metastore.warehouse.dir -> 设置用于存放hive元数据的目录位置,改配置有三种模式,内嵌模式,本地元数据,远程元数据。如果hive.metastore.uris是空,则是本地模式。否则则是远程模式。

    ②配置hive-env.sh,这个文件也是没有的,是hive-env.sh.template复制过来的

    sudo cp hive-env.sh.template hive-env.sh
    sudo vim hive-env.sh
    将jdk的路径和hadoop的家目录导入到这个文件中:
    export JAVA_HOME=/usr/local/jdk1.8.0_131
    export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.4/

    6.分发Hive分别到slave1,slave2上
    scp -r /usr/local/hadoop/apache-hive-1.2.1-bin hadp-node1:/usr/local/hadoop/
    scp -r /usr/local/hadoop/apache-hive-1.2.1-bin hadp-node2:/usr/local/hadoop/

    配置环境变量如同master。

    7.测试Hive

    进入到Hive的安装目录,命令行:
    cd $HIVE_HOME/bin
    ./hive --service metastore &
    ./hive --service hiveserver2 &
    ./hive

    hive> show tables;
    OK
    Time taken: 1.995 seconds

  • 相关阅读:
    tensorflow 2.0 学习 (十) 拟合与过拟合问题
    tensorflow 2.0 学习 (九) tensorboard可视化功能认识
    tensorflow 2.0 学习 (八) keras模块的认识
    tensorflow 2.0 学习 (七) 反向传播代码逐步实现
    tensorflow 2.0 学习 (六) Himmelblua函数求极值
    tensorflow 2.0 学习 (五)MPG全连接网络训练与测试
    arp协议简单介绍
    Pthread spinlock自旋锁
    线程和进程状态
    内核态(内核空间)和用户态(用户空间)的区别和联系·
  • 原文地址:https://www.cnblogs.com/andy6/p/7536958.html
Copyright © 2020-2023  润新知