zoukankan      html  css  js  c++  java
  • Hadoop 之 Hive 安装与配置

    Hive 作为基于Hadoop的一个数据仓库工具,可将sql语句转换为MapReduce任务进行运行。 通过类SQL语句快速实现简单的MapReduce统计,不用开发专门的MapReduce应用

    适合数据仓库的统计分析。基本上Hadoop应用时,都有Hive的影子,下面说下基本Hadoop如何安装配置Hive

    一、准备工作

    安装Hive之前,需要有环境与相应软件的支持,首先需要安装好Hadoop

    (参考上篇博文),接下来我们需要安装Mysql 数据库,为什么要装Mysql,

    Hive有几种模式,内嵌模式是将将元数据保存在本地内嵌的 Derby 数据库中,这种方式缺点是内嵌的 Derby 数据库每次只能访问一个数据文件,即不支持多会话连接。所以一般

    我们采用将元数据保存在Mysql数据库中,可以放在本地hive server上或远程某一台server上,这里我们在本地创建Mysql数据库

    Mysql一般在linux系统中默认自带,我们只需安装启动相应服务就可以,当然也可以自己下载相应的安装包,这里我们用centos自带的mysql版本,

    启动服务

    mysql默认密码是空即没有密码,可自己修改

    1、可以用以下命令给root用户设置密码:
    mysql_secure_installation

    2、根据提示先输入原来的密码,直接回车,输入2次新密码,就设置成功了。
    注意,在设置过程中,会提示删除是否anonymous用户,是否拒绝root的远程访问,是否删除测试用的数据库,是否重新使设置生效,根据实际情况选择y 或 n即可,

    改完后重启mysql: /etc/init.d/mysqld restart

    二、下载安装Hive

    1、  下载hive安装包

    http://archive.apache.org/dist/hive/hive-2.1.1/ apache-hive-2.1.1-bin.tar.gz

    上传到服务器,指定目录

    2、安装hive

    tar –zxvf apache-hive-2.1.1-bin.tar.gz

    三、设置配置项

    1、更改环境变量

    Vi  /etc/profile

    使变量立即生效

    source /etc/profile

    2、  配置hive-env.sh

    Hive目录下的/conf/hive-env.sh 文件,该文件默认也不存在,同样是拷贝它的模版来修改:

    [hadoop@kencentos01 conf]$ cp hive-env.sh.template hive-env.sh

    配置相关变量

    export HADOOP_HOME=/home/hadoop/hadoop-2.7.3
    export HIVE_HOME=/usr/hive/apache-hive-2.1.1-bin
    export HIVE_CONF_DIR=/usr/hive/apache-hive-2.1.1-bin/conf 
    export JAVA_HOME=/usr/java/jdk1.7.0_80

     3、修改 Hive 配置文件

    Hive工程的配置文件为 hive-site.xml,默认情况下,该文件并不存在,需要拷贝它的模版来实现,此配置文件非常重要,若有一项配置错误,则hive将运行不了

    [hadoop@kencentos01 conf]$ cp hive-default.xml.template hive-site.xml  

    复制模版文件生成hive-site.xml

    <property>
          <name>hive.metastore.warehouse.dir</name>
          <value>/user/hive/warehouse</value>
          <description>数据存储目录,默认位置在 HDFS 上面的 /user/hive/warehouse 路径下
    </description>
    </property>
    ..
    <property>
           <name>hive.exec.scratchdir</name>
           <value>/tmp/hive</value>
           <description>数据临时文件目录,默认位置为 HDFS 上面的 /tmp/hive 路径下</description> </property>
       //配置 jdbc
      <property>
        <name>javax.jdo.option.ConnectionURL</name>
       <value>jdbc:mysql://192.168.52.128:3306/hive?createDatabaseIfNotExist=true&amp;
    characterEncoding=UTF-8&amp;useSSL=false</value>
        <description>
          //Jdbc 方式连接数据库
        </description>
      </property>
      <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
        <description>Driver class name for a JDBC metastore 指定jdo驱动相关类</description>
      </property>
      <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
        <description>访问数据库的用户名</description>
      </property>
      <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>123456</value>
        <description>连接hive数据库对应用户的密码</description>
      </property>

    检查下面目录是否存在(hadoop系统中),创建如下目录

    [hadoop@kencentos01 bin]$ hdfs dfs -mkdir -p /user/hive/warehouse
    [hadoop@kencentos01 bin]$ hdfs dfs -mkdir /tmp/hive
    [hadoop@kencentos01 bin]$ hdfs dfs -chmod 777 /user/hive/warehouse
    [hadoop@kencentos01 bin]$ hdfs dfs -chmod 777 /tmp/hive

    4、配置jdbc驱动包

    下载mysql的jdbc驱动包mysql-connector-java-5.1.6-bin.jar

    (mysql官网或http://download.csdn.net/download/happy516/1753230)

    放入hive的lib目录下$HIVE_HOME/lib

    5、所有${system:Java.io.tmpdir} 改为绝对路径

      如/opt/hive/apache-hive-2.1.1.bin/iotmp (可自己定义)

    四、启动Hive服务

    1、启动hive 服务

    [hadoop@kencentos01 bin]$ nohup hive -service metastore &
    
    [hadoop@kencentos01 bin]$ nohup hive --service hiveserver2 &

     2、运行hive

      可能会遇到如下问题

      Error:

     Caused by: MetaException(message:Version information not found in metastore…

    将hive-site.xml中hive.metastore.schema.verification的值true 改为 false

    防止架构版本不兼容时的 Metastore 操作。考虑将此设置为“True”,以减少 Metastore 操作期间发生架构损坏的可能性

    Error:

    MetaException(message:Hive metastore database is not initialized. Please use schematool…

    改变为自动创建

    Datanucleus.schema.autoCreateAll设置为true

    Error:

    Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D …

    这个错误说明java.io.tmpdir需要配置,即将hive-site.xml中所有${system:java.io.tmpdir}都改为绝对目录,如/opt/hive/apache-hive-2.1.1-bin/iotmp

    启动hive

    $hive

    本机装了几台虚机,性能较差 :)  

  • 相关阅读:
    OO第三单元总结
    OO第二单元总结
    OO第一单元总结
    OO第四单元总结
    OO第三单元总结
    OO第二单元总结
    OO第一单元总结
    BUAA_OO_2020_Total_Summary
    BUAA_OO_2020_Unit3_Summary
    BUAA_OO_2020_Unit2_Summary
  • 原文地址:https://www.cnblogs.com/kcen/p/8116957.html
Copyright © 2011-2022 走看看