zoukankan      html  css  js  c++  java
  • 吴超老师课程--Hive的介绍和安装

    1.Hive
    1.1在hadoop生态圈中属于数据仓库的角色。他能够管理hadoop中的数据,同时可以查询hadoop中的数据。
      本质上讲,hive是一个SQL解析引擎。Hive可以把SQL查询转换为MapReduce中的job来运行
      hive有一套映射工具,可以把SQL转换为MapReduce中的job,可以把SQL中的表、字段转换为HDFS中的文件(夹)以及文件中的列。
      这套映射工具称之为metastore,一般存放在derby、mysql中。


    1.2 hive在hdfs中的默认位置是/user/hive/warehouse,是由配置文件hive-conf.xml中属性hive.metastore.warehouse.dir决定的。


    2.hive的安装
      (1)解压缩、重命名、设置环境变量
      (2)在目录$HIVE_HOME/conf/下,执行命令mv hive-default.xml.template  hive-site.xml重命名
          在目录$HIVE_HOME/conf/下,执行命令mv hive-env.sh.template        hive-env.sh重命名

    1 cd  $HIVE_HOME
    2 mv  hive-env.sh.template  hive-env.sh
    3 mv  hive-default.xml.template  hive-site.xml

      (3)修改hadoop的配置文件hadoop-env.sh,修改内容如下:
         export HADOOP_CLASSPATH=.:$CLASSPATH:$HADOOP_CLASSPATH:$HADOOP_HOME/bin

    export HADOOP_CLASSPATH=.:$CLASSPATH:$HADOOP_CLASSPATH:$HADOOP_HOME/bin

      (4)在目录$HIVE_HOME/bin下面,修改文件hive-config.sh,增加以下内容:
         export JAVA_HOME=/usr/local/jdk
         export HIVE_HOME=/usr/local/hive
         export HADOOP_HOME=/usr/local/hadoop

    1 export JAVA_HOME=/usr/local/jdk
    2 export HIVE_HOME=/usr/local/hive
    3 export HADOOP_HOME=/usr/local/hadoop

    3.安装mysql
      (1)执行命令rpm -qa | grep mysql 检查是否已经安装MySQL软件。若已经安装则删除
          删除linux上已经安装的mysql相关库信息。rpm  -e  xxxxxxx   --nodeps
         执行命令rpm -qa | grep mysql 检查是否删除干净
      (2)安装mysql服务端执行命令  rpm -i   mysql-server-********     
      (3)启动mysql 服务端: 执行命令  mysqld_safe &
      (4)安装mysql客户端 : 执行命令  rpm -i   mysql-client-******** 
      (5)设置root用户密码:  执行命令mysql_secure_installation
       注:MySQL用户名:root
            MySQL密码:  465213a
       启动MySQL:mysql -uroot -p465213a  (注意是连接起来的,不是分开的)

    4. 使用mysql作为hive的metastore
      (1)把mysql的jdbc驱动软件放置到hive的lib目录下
      (2)修改hive-site.xml文件,修改内容如下:  
        <property>
            <name>javax.jdo.option.ConnectionURL</name>
            <value>jdbc:mysql://hadoop:3306/hive?createDatabaseIfNotExist=true</value>
        </property>
        <property>
            <name>javax.jdo.option.ConnectionDriverName</name>
            <value>com.mysql.jdbc.Driver</value>
        </property>
        <property>
            <name>javax.jdo.option.ConnectionUserName</name>
            <value>root</value>
        </property>
        <property>
            <name>javax.jdo.option.ConnectionPassword</name>
            <value>465213a</value>
        </property>

    修改$HIVE_HOME/conf/hive-site.xml
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://hadoop:3306/hive?createDatabaseIfNotExist=true</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>465213a</value>
    </property>


    为MySQL的远程连接进行设置:MySQL下执行语句:grant all on hive.* to "root" @"%" identitied by "465213a";

    这样就可以使用Windows下的MySQL软件连接虚拟机下的hive表:用户名:root,密码:465213a

    实现远程连接。

    配置MySQL的metastore
    1.上传mysql-connector-java-5.1.10.jar到$HIVE_HOME/lib
    2.登录MYSQL,创建数据库hive
    #mysql -uroot -padmin
    mysql>create database hive;
    mysql>GRANT all ON hive.* TO root@'%' IDENTIFIED BY '465213a';
    mysql>flush privileges;
    mysql>set global binlog_format='MIXED';
    3.把mysql的数据库字符类型改为latin1

    5.Hive的metastore
    metastore是hive元数据的集中存放地。metastore默认使用内嵌的derby数据库作为存储引擎
    Derby引擎的缺点:一次只能打开一个会话
    使用Mysql作为外置存储引擎,多用户同时访问


    6.Hive运行模式

    Hive的运行模式即任务的执行环境
    分为本地与集群两种
    我们可以通过mapred.job.tracker 来指明
    设置方式:
    hive > SET mapred.job.tracker=local;

    7,Hive的启动方式

    (1)、 hive 命令行模式,直接输入#/hive/bin/hive的执行程序,或者输入 #hive --service cli
    (2)、 hive web界面的 (端口号9999) 启动方式         #hive --service hwi &
                   用于通过浏览器来访问hive           #http://hadoop:9999/hwi/
    (3)、 hive 远程服务 (端口号10000) 启动方式   #hive --service hiveserver &

  • 相关阅读:
    使用pymysql模块进行封装,自动化不可或缺的数据库校验
    使用paramiko模块进行封装,远程操作linux主机
    提高开发效率的 Eclipse 实用操作
    遍历Map的四种方法
    key可以重复的Map集合:IdentityHashMap
    Java根据条件删除Map中元素
    用POI读取具有任意合并单元的excel数据
    【转载】说说JSON和JSONP,也许你会豁然开朗,含jQuery用例
    面向对象的基本原则
    forward和redirect的区别
  • 原文地址:https://www.cnblogs.com/hellochennan/p/5366303.html
Copyright © 2011-2022 走看看