码迷,mamicode.com
首页 > 其他好文 > 详细

Hive 入门

时间:2019-06-14 23:48:16      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:jobs   安装与配置   tps   nec   detail   sele   ast   net   map   

1. Hive 基本概念

1.1 Hive 介绍

  • Hive 由 Facebook 开源用于解决海量结构化日志的数据统计;
  • Hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能;
  • 本质是:将 HQL 转化成 MapReduce 程序

技术图片

1.2 Hive 架构原理

技术图片

2. Hive 安装与配置

2.1 更改配置文件

// 1. 重命名配置文件
mv hive-default.xml.template hive-site.xml

// 2. 更改配置文件参数
<!--指定存放元数据的数据库名hive(远程mysql数据库)-->  
<property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://IP地址:3306/hive_metadata?createDatabaseIfNotExsit=true;characterEncoding=UTF-8</value>
  </property>

<!--指定DB连接用户名为root:  -->  
<property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
  </property>

<!--指定DB连接密码为mysql:  -->   
<property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>mysql</value>
</property>  

<!--指定DB连接引擎:--> 
<property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
</property>

<!--显示查询表的表头信息--> 
<property>
    <name>hive.cli.print.header</name>
    <value>true</value>
</property>

<!--显示当前数据库-->
<property>
    <name>hive.cli.print.current.db</name>
    <value>true</value>
</property>

<!--修改hive在hdfs上的数据仓库位置-->
<property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/user/hive/mywarehouse</value>
</property>

 <property>
    <name>hive.exec.local.scratchdir</name>
    <value>/home/hive/apache-hive-1.2.2-bin/tmp/scratchdir</value>
    <description>Local scratch space for Hive jobs</description>
  </property>

  <property>
    <name>hive.downloaded.resources.dir</name>
    <value>/home/hive/apache-hive-1.2.2-bin/tmp/${hive.session.id}_resources</value>
    <description>Temporary local directory for added resources in the remote file system.</description>
  </property>

<property>
    <name>hive.server2.logging.operation.log.location</name>
    <value>/home/hive/apache-hive-1.2.2-bin/tmp/root/operation_logs</value>
    <description>Top level directory where operation logs are stored if logging functionality is enabled</description>
  </property>


// 3. 将所需要的jar包引入到在hive的lib中
mysql-connector-java-5.1.32.jar

// 4. 初始化数据
schematool -dbType mysql -initSchema

2.2 操作Hive

  • 启动命令:bin/hive
  • 查询数据库:show databases;
  • 查询数据库中的表: show tables;
  • 查询数据库表中的数据,不启动hive: bin/hive -e "select * from student";
  • 查询数据库表中的数据,不启动hive,使用sql文件: bin/hive -f hive.sql;
  • 将本地文件导入Hive:load data local inpath ‘文件存放路径‘ into table 要导入到哪一张表;
// 导入文件的说明:
// 1. 需要在创建表时,指明文件中的分隔符
create table student(id int, name string) row format delimited fields terminated by "\t";

// 2. 创建文件student.txt
1    abc
2    eee
3    mmmm
4    kkkk

// 3. 导入文件
load data local inpath '文件存放路径' into table 要导入到哪一张表;



参考资料:

Hive 入门

标签:jobs   安装与配置   tps   nec   detail   sele   ast   net   map   

原文地址:https://www.cnblogs.com/linkworld/p/11025867.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!