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重命名

 cd  $HIVE_HOME
mv hive-env.sh.template hive-env.sh
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

 export JAVA_HOME=/usr/local/jdk
export HIVE_HOME=/usr/local/hive
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
.上传mysql-connector-java-5.1..jar到$HIVE_HOME/lib
.登录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';
.把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 &

吴超老师课程--Hive的介绍和安装的更多相关文章

  1. 吴超老师课程--Pig的介绍和安装

    1.Pig是基于hadoop的一个数据处理的框架.  MapReduce是使用java进行开发的,Pig有一套自己的数据处理语言,Pig的数据处理过程要转化为MR来运行. 2.Pig的数据处理语言是数 ...

  2. 吴超老师课程--Hive的执行语句

    为什么选择Hive? (1)基于Hadoop的大数据的计算/扩展能力(2)支持SQL like查询语言(3)统一的元数据管理(4)简单编程 一:Hive的数据类型(1)基本数据类型tinyint/sm ...

  3. 吴超老师课程---Hadoop的伪分布安装

    1.1 设置ip地址    执行命令    service network restart    验证:         ifconfig1.2 关闭防火墙    执行命令    service ip ...

  4. 吴超老师课程--HBASE的集群安装

    1.hbase的机群搭建过程(在原来的hadoop上的hbase伪分布基础上进行搭建)1.1 集群结构,主节点(hmaster)是hadoop,从节点(region server)是hadoop1和h ...

  5. 吴超老师课程--Sqoop的安装和介绍

    SQOOP是用于对数据进行导入导出的.    (1)把MySQL.Oracle等数据库中的数据导入到HDFS.Hive.HBase中    (2)把HDFS.Hive.HBase中的数据导出到MySQ ...

  6. 吴超老师课程--Hbase介绍和伪分布式安装

    1.HBase(NoSQL)的数据模型1.1 表(table),是存储管理数据的.1.2 行键(row key),类似于MySQL中的主键.     行键是HBase表天然自带的.1.3 列族(col ...

  7. 吴超老师课程---ZooKeeper介绍和集群安装

    1.ZooKeeper    1.1 zk可以用来保证数据在zk集群之间的数据的事务性一致.2.如何搭建ZooKeeper服务器集群    2.1 zk服务器集群规模不小于3个节点,要求各服务器之间系 ...

  8. 吴超老师课程--Flume的安装和介绍

    常用的分布式日志收集系统

  9. 吴超老师课程--Hbase Shell

    hbase提供了一个shell的终端给用户交互 名称 命令表达式 创建表 create '表名称', '列族名称1','列族名称2','列族名称N' 添加记录 put '表名称', '行名称', '列 ...

随机推荐

  1. VirtualBox错误ID: PAEmode解决

    今天在导入virtualbox的虚拟机ubuntu系统时,报错,无法打开虚拟机 报错内容如下: 错误 ID: PAEmode 严重: 致命错误 The guest is trying to switc ...

  2. 新版期货数据交换(FTD)协议报文分析

    因为需要开发模拟CTP后台服务,实现一键切换CTP,所以我们需要分析CTP报文.(基于FTD协议2004版改进)   网上公开的只能找到04年老版本,和现前报文格式出入较大.参考:http://www ...

  3. PHP——smarty模板(第二天)

    Test.php <?php //加载初始化文件 require "init.inc.php"; $smarty->assign("data",ar ...

  4. [原创]CI持续集成系统环境--Gitlab+Gerrit+Jenkins完整对接https://www.cnblogs.com/kevingrace/p/5651447.html

      近年来,由于开源项目.社区的活跃热度大增,进而引来持续集成(CI)系统的诞生,也越发的听到更多的人在说协同开发.敏捷开发.迭代开发.持续集成和单元测试这些拉风的术语.然而,大都是仅仅听到在说而已, ...

  5. Androidz之字符串国际化问题

    (1)字符串的国际化 在res下写两个values 注意:命名方式都是固定的 一个中文版:values-zh 一个英文版:values-en 可是<string name  要写成一样的,这样会 ...

  6. HTML特殊字符的html、js、css写法汇总

    ⇠ 箭头类 符号 UNICODE 符号 UNICODE HTML JS CSS HTML JS CSS ⇠ &#8672 \u21E0 \21E0 ⇢ &#8674 \u21E2 \2 ...

  7. java基础-集合笔记

    Iterator(foreach) 遍历时只能通过iterator去删除(添加)元素,不能直接通过集合对象删除或添加元素 Set HashSet底层是一个HashMap HashSet添加元素,先判断 ...

  8. JUnit小记

    一.参数测试 /** * 1.更改测试运行器为RunWith(Parameterized.class) * 2.声明变量用来存放预期值与结果值 * 3.为测试类声明一个带有参数的公共构造方法,并在其中 ...

  9. iOS-如何读取Plist文件

    解决办法: // 1) 找到Plist文件的路径 "path" NSString *path = [[NSBundle mainBundle]pathForResource:@&q ...

  10. HDU3533(Escape)

    不愧是kuangbin的搜索进阶,这题没灵感写起来好心酸 思路是预处理所有炮台射出的子弹,以此构造一个三维图(其中一维是时间) 预处理过程就相当于在图中增加了很多不可到达的墙,然后就是一个简单的bfs ...