10_hadoop之hive

10_hadoop之hive

什么是Hive

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。本质是将SQL转换为MapReduce程序

10_hadoop之hive

Hive的特点

•可扩展Hive可以自由的扩展集群的规模,一般情况下不需要重启服务

•延展性Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数

•容错良好的容错性,节点出现问题SQL仍可完成执行

Hive与Hadoop的关系

10_hadoop之hive

hive环境搭建:

由于hive是基于Hadoop的。所以首先要保证你的hadoop环境是能够更正常运行的。对于haddop环境的搭建,请参照之前的文章。

1.hive的下载:http://mirror.bit.edu.cn/apache/hive/

10_hadoop之hive

2.上传


3.解压 tar -zxvf apache-hive-2.3.2-bin.tar /usr/local/hive

4.配置

① 配置环境变量

export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin
export HIVE_HOME=/usr/local/hive
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HIVE_HOME/bin

10_hadoop之hive

② 重新加载环境变量配置
source /etc/profile

③ 验证环境变量配置是否确 echo  $HIVE_HOME
10_hadoop之hive
④ 执行hive命令,验证hive运行是否正常,hive需要运行在hadoop上,所以在运行之前,请先启动你的hadoop
10_hadoop之hive

如果有相应的输出,则hive基本环境正常。

④ hive常用配置
 1 cd /usr/local/hive/conf
 2 cp hive-default.xml.template hive-site.xml
 3 修改  hive.metastore.schema.verification 设定为false

 <property>
    <name>hive.metastore.schema.verification</name>
    <value>false</value>
    <description>
      Enforce metastore schema version consistency.
      True: Verify that version information stored in is compatible with one from Hive jars.  Also disable automatic
            schema migration attempt. Users are required to manually migrate schema after Hive upgrade which ensures
            proper metastore schema migration. (Default)
      False: Warn if the version information stored in metastore doesn't match with one from in Hive jars.
    </description>

 4 创建/usr/local/hive/temp目录,替换${system:java.io.tmpdir}为该目录

 在hive的安装目录下创建一个tmp临时目录

mkdir tmp

10_hadoop之hive


5 替换${system:usr.name} 为root
6 schematool -initSchema -dbType derby 格式化hive内嵌derby数据库
会在当前目录下建立metastore_db数据库

注意:每次执行hive时应该还在同一目录,hive会默认到当前目录下寻找metostore,如果没有就会创建一个新的。那么之前的数据就不能正常使用了
遇到问题,将metastore_db删掉,重新执行命执行命令,实际工作中,经常使用mysql作为metastore的数据库存储

7、启动hive
10_hadoop之hive

8、观察hadoop fs -ls /tmp/hive中目录的创建

9、1 show databases;10_hadoop之hive
2 use default;10_hadoop之hive
10_hadoop之hive
3 create table wordcount(line string);
10_hadoop之hive
4 show tables;
10_hadoop之hive
5 des wordcount;

6 select * from wordcount;
7 drop table doc;
10、观察hadoop fs -ls /user
11、启动yarn

12、使用hive完成wordcount程序的功能:

1 load data inpath ‘/input’ overwrite into table wordcount #将hdfs将根目录下的input目录下的文件中的输入载入到wordcount表中。
10_hadoop之hive
2 select * from wordcount;#查询表中的数据
10_hadoop之hive
3 select split(line,’ ‘)from wordcount;#将数据库中的数据line字段按照空格进行分割
10_hadoop之hive
4 select explode(split(line,’ ‘))from wordcount;#将上边获取到的每一行中的数组数据中的每个单词单独读取作为一行输出
10_hadoop之hive

select explode(split(line,' '))from wordcount;
 为表添加一个新的列,使用上边的查询结果进行填充10_hadoop之hive
5  select word,count(1) as count from (select explode(split(line,’ ‘))as word from wordcount) w group by word;
执行过程
10_hadoop之hive
执行结果:
10_hadoop之hive
13 使用sougou搜索目录做实验 数据文件链接:https://pan.baidu.com/s/1dSqYuy 密码:bvtu
1将日志文件上传到hdfs系统,启动hive

2 根据搜狗日志文件 创建数据表

create table sqr(qtime string,qid string,qword string,a string, url string) row format delimited fields terminated by ',';

10_hadoop之hive

 3 查看表结构

desc sqr; 

10_hadoop之hive

4 载入数据

load data inpath '/sogou.dic' into table sqr;

10_hadoop之hive

5 计算统计结果
create table sql_result as select keyword,count(1) as count from (select qword as keyword from sqr) t group by keyword order by count desc;

6 查询统计结果

10_hadoop之hive



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111285.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【已解决】Pycharm安装cv2时显示No information available

    【已解决】Pycharm安装cv2时显示No information available【已解决】Pycharm安装cv2时显示Noinformationavailable以下为解决步骤:1、安装opencv-python、numpy、matplotlib;2、然后将pycharm包安装路径下的\venv\Lib\site-packages\cv2下的cv2.cp37-win_amd64.pyd复制到python安装路径下的\venv\Lib\site-packages下;3、验证安装是否成功:输入importcv2,如果不出错代表导入成功。…

    2022年8月25日
    3
  • 安装激活成功教程版的Pycharm2018.2[通俗易懂]

    安装激活成功教程版的Pycharm2018.2[通俗易懂]Pycharm是什么工具,不用过多解释吧。激活成功教程分四步,步骤如下:一、下载Pycharm2018.2版链接:https://pan.baidu.com/s/1lvf_6iAkXQx49IC54YNbXA提取码:q99kPS:如果自行在官网下载,一定要记住,是下载2018.2版。二、安装并运行,之后关闭PS:一定要记得打开后,再关闭。三、下载激活成功教程补丁…

    2022年8月26日
    7
  • 计算机逻辑与或非运算规则_与 或 非 三种逻辑符号计算机

    计算机逻辑与或非运算规则_与 或 非 三种逻辑符号计算机与&&或||非!请举例子说明C语言中的与、或、非是C语言的逻辑运算符。1、逻辑与在C语言中逻辑与用&&表示。举例:a&&b(其中a、b都代表一个条件)如果a和b都为真,则结果为真,如果a和.或非与非或与非都说下或:+与:*非:取反三个事件a,b,c或非就是先a+b,再取反与非就是先a*b,再取反&按位与|按位或~按位非^…

    2022年10月11日
    0
  • BM3D算法学习

    BM3D算法学习来源:BM3D算法学习-知乎(zhihu.com)作者:爱酷的胡巴前些日子在学习图像降噪的算法,自然而然的发现了这篇里程碑式的作品,“BM3D”3D块匹配降噪算法,想来时间也久,赶紧再写下来,以免过后忘记。在学习的过程中,由于没学过数字图像处理,学起来还是挺墨迹的,前前后后得有四五天吧,才算整个大差不差,期间看了许多前辈的博客和代码,也总算有些许的进步和理解,特此感…

    2022年5月22日
    72
  • sql 创建表_sql server建表语句

    sql 创建表_sql server建表语句SQLite创建表创表语法CREATETABLE[表名称]( –主键列不可为空[列1][类型]PRIMARYKEYNOTNULL,–列可为空[列2][类型],–列不可为空[列3][类型]NOTNULL);创表示例CREATETABLEUser( IdINTPRIMARYKEYNOTNULL, NameText, SexINTNOTNULL)在线Sqlite查看器|修改器http://

    2025年7月26日
    1
  • FreeWebHostingArea老牌1.5G无限流量免费PHP空间申请使用「建议收藏」

    FreeWebHostingArea老牌1.5G无限流量免费PHP空间申请使用「建议收藏」FreeWebHostingArea是美国的一个老牌的免费空间服务商,从2005年开始提供免费PHP空间服务。我在2009年的时候就推荐过它(这篇文章),到现在这个空间依然还存活着。和同类的老牌的免费空间超多的空间和流量限制等特点所不同,FreeWebHostingArea的免费PHP空间大小1.5GB,月流量为无限流量,并且可以绑定自己的顶级域名。FreeWebHostingArea之所…

    2022年10月8日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号