zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    memcached
    Springboot配置类
    程序员中的长期主义者-webpack
    程序员中的长期主义者-css
    程序员中的长期主义者
    h5字体样式太小引入UI库字体也很小看不清
    NodeJs正则关键字查找目录文件
    普通二维码跳转微信小程序
    git版本回滚
    绕不过的就突破
  • 原文地址:https://www.cnblogs.com/andy6/p/7536958.html
Copyright © 2011-2022 走看看