摘要: 一、文件系统 1. 概念 所谓文件系统,是操作系统用于明确磁盘或分区上的文件的方法和数据结构;即在磁盘上组织文件的方法。也指用于存储文件的磁盘或分区,或文件系统种类。 2. Local File System 这里的本地文件系统指的是操作系统层面的文件系统,譬如Linux支持的文件系统,ext3,e 阅读全文
posted @ 2018-04-28 17:05 大师兄啊哈 阅读(1187) 评论(0) 推荐(1)
摘要: 一、简述HiveQL是一种声明式语言,用户提交查询,而Hive会将其转换成MapReduce job,如下图。一般来说大部分时间可以无视这个执行过程的内部逻辑,但是如果能了解这些底层实现细节,在调优的时候就会更得心应手。二、过程将HiveQL转化为MapReduce任务,整个编译过程主要分为六个阶段:Antlr定义SQL的语法规则,完成SQL词法,语法解析,将SQL转化为抽象语法树AST;遍历AS... 阅读全文
posted @ 2018-04-26 10:58 大师兄啊哈 阅读(4478) 评论(0) 推荐(1)
摘要: 一、前言 昨天在写bat脚本的时候,发现在for里面的set命令竟然不起作用!于是搜了一下,前面的几篇都有说到这个是变量扩展的问题,但是什么是变量扩展?为什么会出现这种问题,什么又是延迟环境变量扩展?则说得不明不白。那些文章里给的解决方案,试过了一下甚至无法起作用。可怕的是那篇文章其他人还复制了。 阅读全文
posted @ 2018-04-24 16:42 大师兄啊哈 阅读(1004) 评论(0) 推荐(0)
摘要: 假如在hive的配置文件hive-site.xml中,属性hive.metastore.warehouse.dir被设置为/root/hive/warehouse。 如果Hadoop是本地模式,则仓库路径是file:///root/hive/warehouse; 其他模式则是hdfs://namen 阅读全文
posted @ 2018-04-21 10:08 大师兄啊哈 阅读(5698) 评论(0) 推荐(0)
摘要: 一、启动相关组件之前 一般安装完hadoop之后需要格式化一遍hdfs: hdfs namenode -format 然后再进行其他组件的启动,hadoop相关组件都是用位于...hadoop/sbin目录下的脚本启动的, 二、启动组件 一般启动相关的就可以了: 然后查看进程都开起来了没有,正常是: 阅读全文
posted @ 2018-04-20 14:34 大师兄啊哈 阅读(1101) 评论(0) 推荐(0)
摘要: 一、GROUP BY语句的细节 我们知道,在sql中,GROUP BY语句主要用来给数据分组,以便能对每个组进行聚集计算,但是GROUP BY也有一些限制需要知道: 1. GROUP BY字句可以包含任意数目的列,使得能对分组进行嵌套,为数据分组提供更细致的控制。 2.如果嵌套了分组,数据将在最后规 阅读全文
posted @ 2018-04-19 15:19 大师兄啊哈 阅读(4028) 评论(0) 推荐(0)
摘要: 这是有疑惑的一个问题,因为在董西成的《Hadoop技术内幕——深入解析MapReduce架构设计与实现原理》中提到这个值是64M,而《Hadoop权威指南》中却说是128M,到底哪个是对的呢?我觉得应该都是对的,可能是版本不同导致的不一致,后面终于在Stack OverFlow找到了答案:在Apache Hadoop中默认是64M,Cloudera Hadoop版本中默认是128M。ps:顺便说一... 阅读全文
posted @ 2018-04-18 10:52 大师兄啊哈 阅读(8115) 评论(0) 推荐(1)
摘要: 一、1.0版本主要由两部分组成:编程模型和运行时环境。编程模型为用户提供易用的编程接口,用户只需编写串行程序实现函数来实现一个分布式程序,其他如节点间的通信、节点失效,数据切分等,则由运行时环境完成。基本编程模型将问题抽象成Map和Reduce两个阶段,Map阶段将输入数据解析成key/value,迭代调用map()函数后,再以key/value的形式输出到本地目录;Reduce阶段则将key相同... 阅读全文
posted @ 2018-04-18 10:14 大师兄啊哈 阅读(2490) 评论(0) 推荐(0)
摘要: 一、作业管理的场景作业管理(job control)是在bash环境下使用的,主要使用在同一个bash中管理多个作业的场景,譬如登录bash之后想同时复制文件、数据搜索,编译。但是bash的作业管理,有以下限制:程序必须是shell的子进程程序不能等待terminal/shell的输入二、涉及到的命令1. 将命令后台运行的&bash环境下,存在前台(foreground)和后台(backgroun... 阅读全文
posted @ 2018-04-11 12:13 大师兄啊哈 阅读(2242) 评论(0) 推荐(0)
摘要: 一、什么是数据流重定向 要搞清楚数据流重定向,需要先搞清楚什么是数据流,然后如何重定向,这一切都需要从命令的执行过程说起。 如上图所示为命令的执行过程,可以看到,在Linux中,数据流分三种:标准输入(stdin)、标准输出(stdout)和标准错误(stderr)。 执行命令时,这个命令可能通过文 阅读全文
posted @ 2018-04-09 16:38 大师兄啊哈 阅读(1050) 评论(0) 推荐(0)