Hadoop生态圈集群搭建
Linux搭建Hadoop集群环境
资料是我在网络上收集的,如有侵权请告知,我会第一时间删除
详细资料移步:阿里云盘
前期准备工作
友情提醒: 提前安装好vmware软件,准备好连接虚拟机的客户端
一. 基础环境1.配置ip地址1[root@node1 /]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
123456789101112131415161718192021222324TYPE="Ethernet"PROXY_METHOD="none"BROWSER_ONLY="no"# 1.修改staticBOOTPROTO="static"DEFROUTE="yes"IPV4_FAILURE_FATAL="no"IPV6INIT="yes"IPV6_AUTOCONF="yes"IPV6_DEFROUTE="yes"IPV6_FAILURE_FATAL ...
【Interview】ZooKeeper原理
以我一己之见,全篇将Zookeeper最重要的东西就是:
Watch监听机制(如何实现主备切换,即热备知道老大宕机了)。
Leader选举机制(过半原则:Paxos算法)。
SSH免密登陆原理(非对称加密-公钥加密,私钥解密)
Zookeeper简介及用途ZooKeeper,它是一个开放源码的分布式协调服务,它是一个集群的管理者,它将简单易用的接口提供给用户。
可以基于Zookeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。Zookeeper的用途:命名服务、配置管理、集群管理、分布式锁、队列管理
概述ZooKeeper概念: Zookeeper是一个分布式协调服务的开源框架。本质上是一个分布式的小文件存储系统
ZooKeeper作用: 主要用来解决分布式集群中应用系统的一致性问题。
ZooKeeper结构: 采用树形层次结构,ZooKeeper树中的每个节点被称为—Znode。且树中的每个节点可以拥有子节点
特性
全局数据一致:集群中每个服务器保存一份相同的数据副本,client无论连接 ...
【Interview】Hive原理及调优
关于Hive的参数配置:Hive的参数配置有 3 种配置方式:方式1: 在hive的配置文件中直接进行修改.方式2: 在开启Hive服务的时候, 设置参数 nohup hive --service hiveserver2 --hiveconf 参数名=参数值 &方式3: 通过 set方式进行修改. set mapreduce.job.reduces = 3; -- 分桶查询的时候用的.
上述三种参数设置的优先级及作用范围从高到低分别是:
配置文件(所有客户端有效) > hiveconf, hive服务(本服务运行期间, 所有客户端有效) > set方式(本次会话有效)
优先级从高到低分别是:
set方式 > hive服务方式 > 配置文件
Hive调优方案介绍hive调优四句话
更改硬件.
增大或者开启某些设置. (Fetch抓取, 开启负载均衡(解决group by数据倾斜), 动态分区数, join优化, 开启严格模式(禁用低效SQL)
减小或者关闭某些设置. (推测执行, 严格模式(动 ...
【Interview】MapReduce和Yarn原理
MapReduce原理问题1. 什么是计算, 什么是分布式计算?答案: 计算指的是从海量数据中提取出有效的价值信息的过程(广义上解释), 狭义上指的是 1 + 1 = 2 即: 数学运算. 分布式计算指的是 多台机器协调, 共同完成同1个计算任务.
问题2: 分布式计算的两种模式?答案: 分散汇总模式: 大家各自做各自的, 最后交由主节点汇总. 例如: MR程序就属于这种. 中心化模式, 步骤执行: 由老大(主节点)统筹安排各机器的计算任务, 第一步, 第二步等…, 最后将结果交由主节点汇总.
问题3: 那么是不是所有的场景都适合用分而治之呢?
我们知道MR是一种分布式计算架构, 采用的是 分而治之 的思想,
答案: 不一定, 看需求, 如果把大任务拆分成n个小任务之后, 小任务之间的依赖度比较高的情况下, 就不适合用分而治之思想. 例如: 求平均数.(1-7所有数的和,如1+2 交给一台机器,2+3交给一台机器,最后汇总求平均会变成4.3333,而1+2+…+7=28/7=4 ...
【Interview】Hadoop相关
Hadoop相关问题1: 为什么要用分布式?答案: 解决单机存储容量有限的问题, 可以通过分布式解决(即: 横向扩展, 加机器).
问题2: HDFS是什么, 有几种角色, 各自作用是什么?答案: HDFS全称叫Hadoop Distributed FileSystem, 分布式文件存储系统, 采用分布式的方式来存储数据. HDFS是主从架构, 主要角色有3个: NameNode: 主节点管理整个HDFS集群,维护和管理元数据. SecondaryNameNode: 辅助节点,辅助namenode管理元数据的. DataNode: 从节点,负责数据的读写操作,负责存储具体的数据(Block块).
问题3: HDFS的默认副本是是几, 默认的块大小是多少?答案: 默认副本是是 3, 每个Block块的大小为: 128MB. 实际开发中, 副本数一般是2-5, 副本数越高带来的好处是容错率越高, 带来的弊端是磁盘的利用率降低. 块的大小 和 副本数都是可以设置的, 即: /export/server/hadoop/etc/ ...
【Hive】窗口函数
窗口函数介绍:概述: 窗口函数指的是 over()函数, 它可以结合特定的函数一起使用, 完成不同的功能. 目的/作用: 窗口函数 = 给表新增一列, 至于新增的内容是什么, 取决于窗口函数和什么函数一起使用.
格式: 能和窗口函数一起使用的函数 over(partition by 分组字段 order by 排序字段 rows between 起始行 and 结束行) 能和窗口函数一起使用的函数解释:
聚合函数: count(), sum(), max(), min(), avg()排序函数: row_number(), rank(), dense_rank(), ntile()其它函数: lag(), lead(), first_value(), last_value()
这里要注意ntile函数ntiile( 3 )—>表示分成3份
细节: 1. 窗口函数相当于给表新增一列, 至于新增的内容是什么, 取决于窗口函数和什么函数一起使用.
2. 如果不写partit ...
【Python查漏补缺(二)】正则表达式与深浅拷贝
在开始正题之前讲一下打开文件的另一种方式。
之前打开文件的方式f = open("文件路径","文件打开方式", encoding="utf8")
模式
描述
r
以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb
以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
r+
打开一个文件用于读写。文件指针将会放在文件的开头。
rb+
以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
w
打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb
以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
w+
打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+
以二进制格式打开一个文件用于读写。如果该文件已存在则 ...
【Hive】DML及DQL语句
由于Hive是分布式语言(其本质是操作了HDFS上的文件,因为HSFS是分布式架构,所以就决定了Hive是一门分布式SQL)。丢,我解释的可能不是很专业,将就看看。通常来说存储在HDFS上的数据是不能修改的,但是appendTofile这个linux命令是个特例(hadoop fs -appendToFile /root/2.txt /aa/1.txt)-将数据从L inux上传到HDFS文件系统并将文件内筒追加到HDFS指定文件的末尾,所以Hive是没有数据的删除的SQL命令的,只有增删查,但是又说到DML了,所以数据操作只有增删。(是对数据表的操作)
关于DQL虽说跟MySQL有些许区别,实际上大同小异。
文言文HQL DML语句介绍 它指的是 数据操作语言, 主要是用来 操作表数据的, 对表数据进行 增删改操作, 这里特指的是: 如何往Hive表中新增数据.
数据导入: 流向: Linux, HDFS => Hive 方式:
通过 load data方式实现.
通过 insert + select 方式实现, 相对更灵活.
loa ...
【Hive】函数及DQL收尾
Hive–DQL正则匹配正则表达式(Regexp)介绍: 概述: 正确的, 符合特定规则的字符串.
Regular Expression
细节:
正则表达式不独属于任意的一种语言, 市场上大多数的语言都支持正则, 例如: Java, Python, HiveSQL, JavaScript等…
要求: 能用我们讲的规则, 看懂别人写的 正则表达式(式子)即可. 正则规则:
1234567891011^ 代表: 正则开头$ 代表: 正则结尾a 代表: 1个字符a. 代表: 任意的1个字符\. 代表: 取消.的特殊含义, 即只把它当做1个普通的 点(.)\\ 代表: 一个 \[abc] 代表: a,b,c中的任意1个字符[^abc] 代表: 除了a,b,c外的的任意1个字符\d 代表: 任意的1个整数, 等价于 [0-9]\w 代表: 任意的1个单词字符, 即: 数字, 字 ...
【Hive】DDL语句详解二-言无不尽
Hive–DDL建表的关键:分区,分桶,切割,存储方式,存储位置,表属性
DDL建表关键总结:LazySimpleSerDe建表
12345678910create [external] table 表名( 字段名 字段类型 Comment'字段的描述信息', 字段名 字段类型 Comment'字段的描述信息', 字段名 字段类型 Comment'字段的描述信息' -- 最后一行没有逗号)Comment '表的描述信息'row format delimited fields terminated by ','collection items terminated by '#'map keys terminated by ':'lines terminated by '' -- LazySimpleSerizlizer 4项结束
所有关键字汇总
1234567891011create [external] ...