hive是什么: hive是一个数据仓库,hive不是一个数据库,hive 不没有自己的数据,hive的数据存在hdfs 中,hive 依赖一个关系型数据库来存储 自己在 hdfs 中的数据的映射关系。

hive用来干什么:用来把 sql 翻译成 mapreduce java 代码,并且提交到 hadoop 中运行的工具。 hive类似  数据库的视图。hive 的本质是 为了不写  mapreduce java代码的 人提供的一种 简单的可以 操作 mapreduce 的 一种翻译工具。

hive 的安装:

    使用内嵌的数据库:

      1 解压 hive

      2 修改conf 目录下面的: cp hive-env.sh.template  hive-env.sh ,然后 配置 HADOOP_HOME,

        备注:或者把 HADOOP_HOME 写入环境变量(和第2 步 2 选一。都做也可以)。

    使用独立的数据库:

      

    cp hive-default.xml.template hive-site.xml 下面的修改都在这里面

      1.修改 数据库相关属性    

        修改 数据库连接。用户名,密码。驱动类,分别修改下面的几个配置:

A、修改javax.jdo.option.ConnectionURL属性。

<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost/hive?useSSL=false</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
B、修改javax.jdo.option.ConnectionDriverName属性。 <property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
C、修改javax.jdo.option.ConnectionUserName属性。即数据库用户名。 <property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>Username to use against metastore database</description>
</property>
D、修改javax.jdo.option.ConnectionPassword属性。即数据库密码。 <property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
<description>password to use against metastore database</description>
</property>

  备注1:使用什么数据库 需要把 对应数据库驱动 jar 到复制到 lib  目录下面。 

  备注2: mysql 的 搞版本需要  useSSL=false 指定或略安全套接字。

   2 修改一些文件目录:

E、添加如下属性hive.metastore.local:

<property>
<name>hive.metastore.local</name>
<value>true</value>
<description>controls whether to connect to remove metastore server or open a new metastore server in Hive Client JVM</description>
</property>
F、修改hive.server2.logging.operation.log.location属性 <property>
<name>hive.server2.logging.operation.log.location</name>
<value>/tmp/hive/operation_logs</value>
<description>Top level directory where operation logs are stored if logging functionality is enabled</descripti on>
</property>
G、修改hive.exec.local.scratchdir属性。 <property>
<name>hive.exec.local.scratchdir</name>
<value>/tmp/hive</value>
<description>Local scratch space for Hive jobs</description>
</property>
H、修改hive.downloaded.resources.dir属性。 <property>
<name>hive.downloaded.resources.dir</name>
<value>/tmp/hive/resources</value>
<description>Temporary local directory for added resources in the remote file system.</description>
</property>
I、修改属性hive.querylog.location属性。 <property>
<name>hive.querylog.location</name>
<value>/tmp/hive/querylog</value>
<description>Location of Hive run time structured log file</description>
</property>

  

  备注:如果 不是测试的换 上面的 目录最好不要指定到/tmp 里面。测试无所谓。

  3 修改日志配置: 好像可以不做(日志冲突也能运行)

  cp hive-log4j.properties.template hive-log4j.properties

  如果出现  日志冲突:
  cp /home/install/hive-1.2.1/lib/jline-2.12.jar /home/install/hadoop-2.5.1/share/hadoop/yarn/lib/   
  rm -rf /home/install/hadoop-2.5.1/share/hadoop/yarn/lib/jline-0.9.94.jar

  4 初始化 hive的映射的mysql表结构:(实测需要先初始化才能启动)

    schematool -dbType mysql -initSchema

  5 如果配置hive 的 环境变量 ,直接使用 hive  启动 ,如果没有配置 ,在 bin 里面去 使用   ./hive 启动。

    ./hive

-------------------------------------------------------------------------hive 的  服务启动  和  beeline 连接:- ---------------------------------------------  

hive  如果需要java 代码连接需要启动 hive 服务。

    ./hive --service hiveserver2

    如果需要后台启动: nohup hive --service hiveserver2 &

    查找这个进程:ps -ef|grep hiveserver2

    默认端口10000 。

使用 beelien 连接

  ./beeline

然后:

  !connect jdbc:hive2://centos1:10000

这样就 默认用户名  null 密码 null  就可以连接上了。( 默认没有密码),但是 hdfs 的写入全系有要求。这里的用户 就是 beeline 传给hdfs 的 用户名。所以这里最好使用 你的 hdfs 的用户名登陆,密码用null;

这个就是匿名登陆抛出的异常:Permission denied: user=anonymous, access=WRITE, inode="/user/hive/warehouse/test":root:supergroup:drwxr-xr-x

hive server2 配置密码方式参考:https://blog.csdn.net/hua_ed/article/details/51693659

如果 如果不能连接  可能是 hdfs 的权限问题,在hdfs 的配置文件core-site.xml中加入如下配置

<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>

  

备注: hive 没有索引,如果要提高查询效率,可以通过提高 mr 的速度来提高。提高 mr 的速度 可以通过给文件合理的 副本数,然后同时在多台机子上去同步执行。

----------------------------------------------------------------------------语法-----------------------------------------------------------

          

hive的 语法基础语法 :

  hive 的  语法和 sql  非常像:

1 显示数据库:show  databases;

2 使用数据库: use 数据库名;

3 显示表:show tables;

4 创建表

  CREATE TABLE pokes (foo INT, bar STRING);

  使用 字段分隔符: ROW FORMAT DELIMITED FIELDS TERMINATED BY '  '

  如果已经有表: alter table test set SERDEPROPERTIES('field.delim'='\t');

5 修改表名

  

 ALTER TABLE pokes RENAME TO test;

6 修改 表 字段

  

   ALTER TABLE pokes ADD COLUMNS (new_col INT);  部分修改
 ALTER TABLE invites REPLACE COLUMNS (foo INT, bar STRING, baz INT COMMENT 'baz replaces new_col2');  全部修改

7 删除表
  
  DROP TABLE pokes;

8 修改字段类型或者名字

  alter table test change id id2 bigint;

9 导入数据

   LOAD DATA 【LOCAL 】INPATH '/home/hadoop/hfxdoc/person.txt' 【OVERWRITE】 INTO TABLE test;

  

  LOCAL :导入本地文件

  OVERWRITE: 覆盖

  备注:导入的实际就是把这个文件复制到  hdfs 文件系统的这个表的 目录下面。如果是 原文件 在 hdfs 上,那么 会移动原来的文件到 表对应的目录下面。

10 基础查询

  select * from test;

11 支持  where ,like , group by,order by,join  等等 ...........

12  查询结果 输出到本地

    

   INSERT OVERWRITE LOCAL DIRECTORY '/tmp/dest4.out' SELECT src.value WHERE src.key >= 300;  //输出到磁盘
  insert overwrite directory  '/testrt' select * from test;  //输出到 hdfs 13 查询结果插入
  
  INSERT OVERWRITE TABLE dest1 SELECT src.* WHERE src.key < 100
14 插入
   insert into table award(id,event_id,award_type,amount,mark ) values(2,2,"b",2,"mark2"); 15 分区
  在 创建 表的 时候指定 partition by( a string);
  插入的时候指定 partition(a = "a")   备注:分区就是在表的文件夹下面建了一个目录,分区的数据文件在这个文件夹里面。 16 导出 表文件
   export table award to "/tools/data"; 17 导入sql 脚本
  hive -f 文件名 18 导入 和 load 类似
  import table a '路径' 19 hive的 自定义函数

hive 安装 和基本使用的更多相关文章

  1. Hive安装配置指北(含Hive Metastore详解)

    个人主页: http://www.linbingdong.com 本文介绍Hive安装配置的整个过程,包括MySQL.Hive及Metastore的安装配置,并分析了Metastore三种配置方式的区 ...

  2. hive安装--设置mysql为远端metastore

    作业任务:安装Hive,有条件的同学可考虑用mysql作为元数据库安装(有一定难度,可以获得老师极度赞赏),安装完成后做简单SQL操作测试.将安装过程和最后测试成功的界面抓图提交 . 已有的当前虚拟机 ...

  3. Hive安装与部署集成mysql

    前提条件: 1.一台配置好hadoop环境的虚拟机.hadoop环境搭建教程:稍后补充 2.存在hadoop账户.不存在的可以新建hadoop账户安装配置hadoop. 安装教程: 一.Mysql安装 ...

  4. 【转】 hive安装配置及遇到的问题解决

    原文来自: http://blog.csdn.net/songchunhong/article/details/51423823 1.下载Hive安装包apache-hive-1.2.1-bin.ta ...

  5. Hadoop之hive安装过程以及运行常见问题

    Hive简介 1.数据仓库工具 2.支持一种与Sql类似的语言HiveQL 3.可以看成是从Sql到MapReduce的映射器 4.提供shall.Jdbc/odbc.Thrift.Web等接口 Hi ...

  6. Hive安装与配置详解

    既然是详解,那么我们就不能只知道怎么安装hive了,下面从hive的基本说起,如果你了解了,那么请直接移步安装与配置 hive是什么 hive安装和配置 hive的测试 hive 这里简单说明一下,好 ...

  7. hive安装详解

    1.安装MYSQL simon@simon-Lenovo-G400:~$ sudo apt-get install mysql-server simon@simon-Lenovo-G400:~$ su ...

  8. macbook hive安装

    1 原材料 1.1 已经安装好的伪分布式hadoop,版本2.8.3(参见链接https://www.cnblogs.com/wooluwalker/p/9128859.html) 1.2 apach ...

  9. [hive] hive 安装、配置

    一.hive安装 1.官网下载 1.2.2版本 http://apache.fayea.com/hive/hive-1.2.2/ 2. 解压,此处目录为 /opt/hadoop/hive-1.2.2 ...

  10. Hive安装与配置--- 基于MySQL元数据

    hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行. 其优点是学习成本低,可以通过 ...

随机推荐

  1. centos的mysql升级之后密码重置

    1.配置文件添加过滤密码选项 #vim  /etc/my.cnf 跳过密码校验 2.重启mysql服务 #/etc/init.d/mysqld  restart 3.#mysql -uroot -p ...

  2. IE6以下版本对元素width和height的处理与CSS标准的兼容性问题

    1.CSS使用width和height定义元素框的内容,Windows平台的IE6以下版本浏览器并未按照标准处理而是使用width和height来定义可见元素框的尺寸,IE/win使用width来描述 ...

  3. 解决The resource identified by this request is only capable of generating responses with characteristics not acceptable according to the request "accept" headers.

    SpringMVC中当在浏览器中输入对应的MappingUrl时,报The resource identified by this request is only capable of generat ...

  4. FCC JS基础算法题(6):Truncate a string(截断字符串)

    先看一下题目描述: 如果字符串的长度比指定的参数num长,则把多余的部分用...来表示.切记,插入到字符串尾部的三个点号也会计入字符串的长度.但是,如果指定的参数num小于或等于3,则添加的三个点号不 ...

  5. HDU 6143 17多校8 Killer Names(组合数学)

    题目传送:Killer Names Problem Description > Galen Marek, codenamed Starkiller, was a male Human appre ...

  6. SpringBatch Sample (五)(复合格式文件的读、多文件的写)

    前面关于Spring Batch的文章,讲述了SpringBatch对CSV文件的读写操作.对XML文件的操作,以及对固定长格式文件的操作.这些事例,同一个Reader读取的都是相同格式的数据,最终写 ...

  7. MongDB篇,第四章:数据库知识4

    MongDB 数据库知识4 GridFS 大文件存储 文件的数据库存储 1,在数据库中以   字符串的方式  存储文件在本地的路径: 优点: 节省数据库空间 缺点: 当数据库或者文件位置发生变化时则无 ...

  8. MySQL主从、环境搭建、主从配制

    1. MySQL主从介绍    2.环境搭建   2.主从配制:修改主配制文件:vim /etc/my.cnf添加: server_id = ###log_bin = diy_name然后保存重启:/ ...

  9. java-权限修饰符的区别

    说明:所谓访问权限,是指对象是否可以通过“.”运算符操作自己的变量或通过“.”运算符使用类中的方法. 1.Java中的四种访问修饰符:public.protected.default(无修饰符,默认) ...

  10. centos6下安装opencv3

    环境 centos6.5 opencv3.3.0 python3.4.9 下载 opencv可从GitHub下载https://github.com/opencv/opencv/tree/3.4.3可 ...