草庐IT

学习记录3 Hadoop生态圈技术栈(一)

败者食尘_40a0 2023-09-17 原文

这里先做一下简要的学习。

这里属于数据开发范畴,所以首先肯定是先看一下数据仓库的工具------hive。

hive简介

Hadoop本身的三个部分HDFS(数据储存),MapReduce(数据分析处理)和YARN(集群资源管理和调度)。其实乍一看这几个方面其实已经较为完善了,看着是可以满足一整套流程的,那么hive存在的意义是什么呢?

其存在的意义呢,个人感觉是为了方便一点。原因有二,其一是MapReduce本身的开发难度较大,学习成本比较高;其二就是HDFS储存的文件没有字段名,甚至没有数据类型,这就使得这个数据储存看起来很让人恶心了。

而Hive就由此而生,可以将结构化的数据文件“映射”成一张清晰的表,并且也提供了类似SQL的查询功能。其实功能就这么点,说到底就是将MapReduce的任务换成类似SQL去计算,这样呢就解决了以上问题。当然了底层数据还是HDFS,所以上面提到的是“映射”二字。

Hive的安装部分这里就不浪费时间讲了,一些环境、驱动什么的弄起来也挺复杂的。

hive勉强也算是一门编程语言,那么这里就大概说一下他的数据类型和文件格式吧,在基本数据结构上面与Java很类似,整数型、浮点型、布尔型、字符串型等等,该有的基本也都有,在数据类型转化上面也是有函数的。

select   cast ('1111'  as  int);

这样就直接实现了字符串转数值,其实也很简单啦,感觉应该不会很常用,希望要用的时候可以记起来。

除了基本数据结构以外就是集合数据类型了,包括array(有序集合),map(键值对),struct(不同类型的集合),union(不同类型元素在同一字段不同行)。

这四个数据类型都是集合,就是内部存的数据不同,最普遍的应该还是array,简单的单数据类型集合。例如(1,2,3)

那么如何从集合里面取值呢?

用[ ]就可以,这点倒是和Python类似了。

除了union数据类型写得稀里糊涂以外,其他也还是蛮好理解的,array和map应该还是最常用的类型了,struct存在的意义不知道在哪,以后希望能看到再顿悟吧。至于union,笑笑就可以了。

hive的文本文件数据编码

hive的储存格式是定义好的,当然也可以人为自己去定义,但是我相信没有哪个憨批会自己去重新定义。

首先就是hive自己的默认分割符,除了换行以外就是^A,^B,^C,有点印象就可以,知道它是分割符,这就避免了看代码不知道这个古怪符号的尴尬局面。至于三种^的区别其实也很简单,A就是create table才是产生的分割符,B就是array,map,struct的元素分割符。而C就是map里面键值对的分割符号了。

hive操作---DDL命令

这个就是查询之前更加基础的命令了,DDL就是数据定义语言,主要命令就是create、alter、drop之类的。定义的就是数据库的结构或者数据类型。

这个hive的DDL命令与SQL几乎完全相同,这里我是一点不想看了,主要还是sql看吐了。

内部表与外部表

hive值得一提的一点就是这个内部和外部表。虽然我现在还没弄懂两者创立的原因。

在创建表格时,默认内部表,加上external才会变成外部表,而生产中,大多使用外部表。

两者区别主要在删除上,内部表删除就是真的删除,外部表删除会保留数据,只删定义。这里我是没懂,删定义?数据保留?那我不是删了个寂寞吗?


如果在建表时出错了,就是表建错了,别着急,这里学习一下补救方法,应该会派上用场。

有关学习记录3 Hadoop生态圈技术栈(一)的更多相关文章

  1. ruby - Sinatra:运行 rspec 测试时记录噪音 - 2

    Sinatra新手;我正在运行一些rspec测试,但在日志中收到了一堆不需要的噪音。如何消除日志中过多的噪音?我仔细检查了环境是否设置为:test,这意味着记录器级别应设置为WARN而不是DEBUG。spec_helper:require"./app"require"sinatra"require"rspec"require"rack/test"require"database_cleaner"require"factory_girl"set:environment,:testFactoryGirl.definition_file_paths=%w{./factories./test/

  2. ruby-on-rails - Rails 5 Active Record 记录无效错误 - 2

    我有两个Rails模型,即Invoice和Invoice_details。一个Invoice_details属于Invoice,一个Invoice有多个Invoice_details。我无法使用accepts_nested_attributes_forinInvoice通过Invoice模型保存Invoice_details。我收到以下错误:(0.2ms)BEGIN(0.2ms)ROLLBACKCompleted422UnprocessableEntityin25ms(ActiveRecord:4.0ms)ActiveRecord::RecordInvalid(Validationfa

  3. Unity 热更新技术 | (三) Lua语言基本介绍及下载安装 - 2

    ?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------

  4. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

  5. CAN协议的学习与理解 - 2

    最近在学习CAN,记录一下,也供大家参考交流。推荐几个我觉得很好的CAN学习,本文也是在看了他们的好文之后做的笔记首先是瑞萨的CAN入门,真的通透;秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4CAN!原文链接:https://blog.csdn.net/XiaoXiaoPengBo/article/details/116206252CAN详解(小白教程)原文链接:https://blog.csdn.net/xwwwj/article/details/105372234一篇易懂的CAN通讯协议指南1一篇易懂的CAN通讯协议指南1-知乎(zhihu.com)视频推荐CAN总线个人知识总

  6. MIMO-OFDM无线通信技术及MATLAB实现(1)无线信道:传播和衰落 - 2

     MIMO技术的优缺点优点通过下面三个增益来总体概括:阵列增益。阵列增益是指由于接收机通过对接收信号的相干合并而活得的平均SNR的提高。在发射机不知道信道信息的情况下,MIMO系统可以获得的阵列增益与接收天线数成正比复用增益。在采用空间复用方案的MIMO系统中,可以获得复用增益,即信道容量成倍增加。信道容量的增加与min(Nt,Nr)成正比分集增益。在采用空间分集方案的MIMO系统中,可以获得分集增益,即可靠性性能的改善。分集增益用独立衰落支路数来描述,即分集指数。在使用了空时编码的MIMO系统中,由于接收天线或发射天线之间的间距较远,可认为它们各自的大尺度衰落是相互独立的,因此分布式MIMO

  7. 深度学习部署:Windows安装pycocotools报错解决方法 - 2

    深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal

  8. hadoop安装之保姆级教程(二)之YARN的配置 - 2

    1.1.1 YARN的介绍 为克服Hadoop1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN. ApacheYARN(YetanotherResourceNegotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。 YARN被引⼊Hadoop2,最初是为了改善MapReduce的实现,但是因为具有⾜够的通⽤性,同样可以⽀持其他的分布式计算模

  9. ruby-on-rails - 事件记录 : Select max of limit - 2

    我正在尝试将以下SQL查询转换为ActiveRecord,它正在融化我的大脑。deletefromtablewhereid有什么想法吗?我想做的是限制表中的行数。所以,我想删除少于最近10个条目的所有内容。编辑:通过结合以下几个答案找到了解决方案。Temperature.where('id这给我留下了最新的10个条目。 最佳答案 从您的SQL来看,您似乎想要从表中删除前10条记录。我相信到目前为止的大多数答案都会如此。这里有两个额外的选择:基于MurifoX的版本:Table.where(:id=>Table.order(:id).

  10. Ruby 守护进程导致 ActiveRecord 记录器 IOError - 2

    我目前正在用Ruby编写一个项目,它使用ActiveRecordgem进行数据库交互,我正在尝试使用ActiveRecord::Base.logger记录所有数据库事件具有以下代码的属性ActiveRecord::Base.logger=Logger.new(File.open('logs/database.log','a'))这适用于迁移等(出于某种原因似乎需要启用日志记录,因为它在禁用时会出现NilClass错误)但是当我尝试运行包含调用ActiveRecord对象的线程守护程序的项目时脚本失败并出现以下错误/System/Library/Frameworks/Ruby.frame

随机推荐