zoukankan      html  css  js  c++  java
  • 在Hadoop-2.2.0集群上安装 Hive-0.13.1 with MySQL

      fesh个人实践,欢迎经验交流!本文Blog地址:http://www.cnblogs.com/fesh/p/3872872.html

    软件环境

    操作系统:Ubuntu14.04

    JDK版本:jdk1.7.0_51

    Hadoop版本:Hadoop-2.2.0

    Hive可以理解为在Hadoop和HDFS之上为用户封装一层便于用户使用的接口。Hive需要将元数据存储在RDBMS中,这对于Hive的运行是非常重要的。

    (1)安装Hadoop-2.2.0集群

    参见《Ubuntu12.04-x64编译Hadoop2.2.0和安装Hadoop2.2.0集群

    (2)下载Hive安装包

    stable版:apache-hive-0.13.1-bin.tar.gz

    tar -zxvf apache-hive-0.13.1-bin.tar.gz

    对于编译Hive0.13.1,使用命令

    mvn package -Pdist -DskipTests -Phadoop-2

    (3)配置环境变量

    在/etc/profile或者~/.bashrc中配置

    #Set Hive Environment
    export HIVE_HOME=/home/fesh/apache-hive-0.13.1-bin
    export PATH=$PATH:$HIVE_HOME/bin:$HIVE_HOME/conf

    并使配置生效

    source /etc/profile

    (4)修改Hive配置文档(不修改则使用默认配置文档

    创建hive-site.xml

    cd apache-hive-0.13.1-bin/conf
    cp hive-default.xml.template hive-site.xml

    配置hive-site.xml

    (4.1)参数hive-metastore.warehourse.dir 指定Hive的数据存储目录,指定的是HDFS上的位置,默认值为/usr/hive/warehouse

    (4.2)参数hive.exec.scratchdir 指定Hive的数据临时文件目录,默认位置为/tmp/hive-${user.name}

    (4.3)连接数据库配置

    在默认情况下,Hive已经配置好了Derby数据库的连接参数,并且集成了Derby数据库及数据库连接驱动jar包。

    参数javax.jdo.option.ConnectionURL指定Hive连接的数据库:jdbc:derby:;databaseName=metastore_db;create=true

    参数javax.jdo.option.ConnectionDriverName指定驱动的类入口名称:org.apache.derby.jdbc.EmbeddedDriver

    参数javax.jdo.option.ConnectionUserName指定数据库的用户名:APP

    参数javax.jdo.option.ConnectionPassword指定数据库的密码:mime

    Derby数据库驱动在目录$HIVE_HOME/lib/下,Hive-0.13.1默认提供的驱动包:derby-10.10.1.1.jar

    创建hive-env.sh (也可以不进行这个创建和修改,因为之前已经在/etc/profile中注册过了

    cp hive-env.sh.template hive-env.sh

    修改

    # Set HADOOP_HOME to point to a specific hadoop install directory
    export HADOOP_HOME=/home/fesh/hadoop-2.2.0
    
    # Hive Configuration Directory can be controlled by:
    export HIVE_CONF_DIR=/home/fesh/apache-hive-0.13.1-bin/conf

    (5)运行Hive

    由于Hive使用Hadoop,因此必须在/etc/profile中的PATH路径中设置了Hadoop目录,或者需要在Hive的conf目录hive-env.sh中添加路径  export HADOOP_HOME=<hadoop-install-dir> (这里可以不用管)

    另外,在Hive建表之前,(在默认配置文档下)创建 /tmp 和/user/hive/warehouse文件目录,并在HDFS中设置它们chmod g+w  (这一步可以不要,会自动新建

      $ $HADOOP_HOME/bin/hadoop fs -mkdir       /tmp
      $ $HADOOP_HOME/bin/hadoop fs -mkdir       /user/hive/warehouse
      $ $HADOOP_HOME/bin/hadoop fs -chmod g+w   /tmp
      $ $HADOOP_HOME/bin/hadoop fs -chmod g+w   /user/hive/warehouse

    必须先启动Hadoop集群

    启动连接Hive,在目录$HIVE_HOME下

    ./bin/hive

    退出Hive

    hive> exit;

    附-配置MySQL存储Hive元数据

    (6)Hive配置

    (6.1)修改$HIVE_HOME/conf/hive-site.xml,并配置连接字符串、驱动、数据库用户名、密码参数。修改参数

    <property>
      <name>javax.jdo.option.ConnectionURL</name>
      <value>jdbc:mysql://localhost:3306/hive?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>hive</value>
      <description>username to use against metastore database</description>
     </property>

     <property>
      <name>javax.jdo.option.ConnectionPassword</name>
      <value>hive</value>
      <description>password to use against metastore database</description>
     </property>

    (6.2)JDBC驱动包

    下载MySQL的JDBC驱动包,并将其复制到$HIVE_HOME/lib目录。这里是mysql-connector-java-5.1.22-bin.jar   链接: http://pan.baidu.com/s/1sj2lekX 提取密码: kr9b

    (7)MySQL配置

    (7.1)安装MySQL

    sudo apt-get install mysql-server

    在安装过程中,会弹出一个界面要求输入mysql的root的密码并确认,然后系统会自动安装mysql直到完成。

    通过netstat -tap|grep mysql来查看系统是否已经有了mysql服务

    说明安装mysql成功。

    (7.2)远程访问

    修改/etc/mysql/my.cnf文件,注释掉bind-address,该参数绑定本地用户访问。

    #bind-address        = 127.0.0.1

    (7.3)登陆

    登录数据库命令:mysql -u root -p 回车后,输入我们前面所设的密码,就可以登录成功。

    (7.4)创建Hive系统的用户权限

    MySQL安装完成后,只拥有root用户。下面创建Hive系统的用户权限(这里的用户需要和之前设置的用户相一致

    创建用户(这里用户名和密码都是 hive

    CREATE USER 'hive'@'%' IDENTIFIED BY 'hive';

    赋予权限

    GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%' WITH GRANT OPTION;

    强制写入

    flush privileges;

    (7.5)重启MySQL

    exit退出MySQL,并重启MySQL数据库

    sudo /etc/init.d/mysql restart

    (8)重新运行Hive,并测试是否成功

    在Hive中新建表,并查看

    查看HDFS

    查看MySQL

    至此,安装成功!

    参考:

    1、官网文档https://cwiki.apache.org/confluence/display/Hive/GettingStarted

    2、https://cwiki.apache.org/confluence/display/Hive/AdminManual+SettingUpHiveServer

    3、ubuntu下安装mysqlhttp://cycnet.blog.51cto.com/117809/812625/

  • 相关阅读:
    创建了对嵌入的互操作程序集间接引用,无法嵌入互操作类型
    演练:Office 编程(C# 和 Visual Basic)
    【MySQL案件】ERROR 1418
    Quartus II 11.0破发点(不同的是低版本号)
    Arduino 数码管LED驱动器 阵列方法
    HDU1312 Red and Black 解读
    UVA714- Copying Books(最大最小化)
    最大流量dinci模板
    Python 实现类似PHP的strip_tags功能,并能够定义他们自己的一套保留标记
    从源代码分析modelDriven拦截器和params拦截器和拦截器prepare 和paramsPrepareParamsStack拦截器栈(让你的Struts2代码更简洁——如何培养框架设计能力
  • 原文地址:https://www.cnblogs.com/fesh/p/3872872.html
Copyright © 2011-2022 走看看