IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    基于Hadoop集群搭建Hive开发环境

    李阳发表于 2015-07-12 12:32:33
    love 0

    首先了解下Hive,Hive在大数据处理中是一个必不可少的工具, 它是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。本质上就是将SQL语句转换为MapReduce程序,一些简单的MapReduce完全没必要去写,直接使用Hive一条SQL就搞定,而且这也给一些不会Java的程序猿带来极大的方便,好了,废话不多说,开始搭建Hive开发环境。

    Hive的开发环境必须搭建在Hadoop的集群基础之上,如果还没有Hadoop集群,请参考:

    如何搭建一个高可用的Hadoop集群

    选择一台datanode的机器作为Hive的安装机器,还需要准备一台机器作为MySql安装的机器,当然两个装在一个机器上也可以,下载Hive的安装包 apache-hive-1.2.0-bin.tar.gz,解压,进行配置。别看配置文件一大堆,其实只需要修改部分即可。

    cp hive-default.xml.template hive-site.xml

    修改hive-site.xml(删除所有内容,只留一个<property></property>)

    添加如下内容:

    <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://node4: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>root</value>
    <description>username to use against metastore database</description>
    </property>
    
    <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>1234</value>
    <description>password to use against metastore database</description>
    </property>

    配置完成后,下载mysql-connector-java-5.1.34-bin.jar这个jar包,并扔到Hive的lib目录下面。

    在另一台机器(node4)上安装mysql,使用yum安装即可,不会的面壁去,安装后开启mysql服务

    service mysqld start

    在加入到开机启动

    chkconfig mysqld on

    执行命令

    mysql_secure_installation

    设置数据库用户名密码分别为root、1234并支持外部访问。

    进入mysql,输入命令

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123123' WITH GRANT OPTION;
    FLUSH PRIVILEGES;

    不懂grant命令的看以参考:

    MySQL的Grant命令

    OK,mysql这边也搞定,启动Hadoop集群,然后进入node3(Hive安装的机器)配置环境变量后,执行hive命令,进入HiveShell。

    其实不实用Mysql也可以,但是这样的话hive命令在同一个目录的情况下只能被一个人执行,而且新建的表也是保存在本地,不会被共享,如果使用mysql来保存元数据,那么可以实现多人同时访问hive并且数据共享。

    未经允许不得转载:李阳博客 » 基于Hadoop集群搭建Hive开发环境



沪ICP备19023445号-2号
友情链接