hadoop学习笔记
大纲
基础知识
HDFS
NameNode
DataNode
SecondaryNameNode
HDFS读写文件
MapReduce
Yarn
Shell操作
基础知识是什么?
以下来自官网
The Apache™ Hadoop® project develops open-source software for reliable, scalable, distributed computing. The Apache Hadoop software library is a framework that allows for the distributed processing of large data sets across clusters of computers using simple programming models. It is designed to scale up from single servers to thousands of machines, each offering local computation and storage. Rath ...
oozie学习笔记
本节笔记比较少,上方链接已说明原因
为什么要有oozie
说的通俗一点比如说厨房的流程很多。炒饭->装饭->送饭。如果按照时间规定什么时候作什么事情,那么遇到一个突发情况 比如说客人增多,就会出现供不应求的情况,就乱套了。如果能有一个人去监督帮我去监控,通知,控制好这个流程 情况就得以解决。 oozie就类似监督人,一个完整的数据分析系统通常是由大量的任务单元组成的,shell脚本,Java程序 MR程序,hive脚本等等,各个单元之前存在前后依赖关系。为了很好的组织这样复杂的执行计划,需要一个工作流调度系统来调节执行。
简单的工作流调度:Liunx的crontab来定义
Linux crontab是用来定期执行程序的命令。 当安装完成操作系统之后,默认便会启动此任务调度命令。 crond 命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。
复杂的工作流调度:Oozie、Azakaban等
为什么要使用oozie为了管理不同类型的作业在Hadoop系统中的处理
用户同时保存着整个工作流程,此外也有特定的工作频率
主要概念
workflow: ...
spark学习笔记
大纲
基本知识
架构
RDD
基本知识什么是spark
UC Berkeley AMP Lab开发的一种计算框架,分布式资源工作交由集群管理软件(Mesos,YARN)(Mesos 类似于yarn的一个资源调度框架)
特点
先进架构
spark采用scala语言编写,底层采用了actor model的akka作为通讯框架(spark2之后使用netty改写)
基于DAG图(有向无环图)的执行引擎,减少多次计算之间中间结果写到HDFS的开销
建立在统一抽象的RDD(分布式内存抽象)之上,使得它可以以基本一致的方式应对不同的大数据处理场景
高效
提供cache机制来支持需要反复迭代的计算或者多次数据共享,减少数据读取的IO开销
与Hadoop的mapreduce相比,spark基于内存的计算比MR快100倍
易用
spark提供的广泛数据集操作类型(20+种),不像Hadoop只支持map和reduce两种操作
spark支持Java,python和scala API,支持交互性的python和Scala的shell
提供整体解决方案
以其RDD模型的强大表现能力。逐渐形 ...
Hbase的学习笔记
我这个看3y的文章整理的,大家也可以看原作
我终于看懂了HBase,太不容易了… - 知乎 (zhihu.com)
大纲
基本知识
基础指令
架构
HRegionServer
Hlog
Hmaster
基础知识为什么HBase能存储海量的数据?
因为它在HDFS的基础之上构建的,HDFS是分布式文件系统。HBase的数据其实也是存储在HDFS上的。
已经有HDFS了,为什么还要用Hbase?
HDFS是可以存储海量的数据的,它就是为海量数据而生的。它也有明显的缺点:不支持随机修改,查询效率低,对小文件支持不友好。 HDFS是文件系统,而HBase是数据库,其实也没可比性。「HBase当做是MySQL,把HDFS当做是硬盘。HBase只是一个NoSQL数据库,把数据存在HDFS上」。 总结:HBase在HDFS之上提供了高并发的随机写和支持实时查询,这是HDFS不具备的。
列式存储
Hbase不同于MySQL就是列式存储,MySQL是行式存储,比如下图
列式存储为下图
为什么用列式存储
从上图可以看出,存相同的数据,列式存储空间能够充分利用
在HBase里边,定位一行数据会有一 ...
Linux下JDK与tomcat的安装
JDK1、去官网下载tar.gz包
https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.htmlwww.oracle.com
2、上传jdk压缩包到/usr/local路径下
3、解压
1tar -xvf jdk-8u91-linux-x64.tar.gz
4、改名(不是必须步骤)
1mv jdk1.8.0_91 jdk1.8
5、修改环境变量
vi /etc//profile
在文件尾部添加如下信息(shift+g快速定位尾部)
12export JAVA_HOME=/usr/local/jdk1.8export PATH=$PATH:$JAVA_HOME/bin
注意第一行是jdk文件实际路径
6、刷新环境变量配置
1source /etc/profile
7、输入java验证
-———————————————————————————————-
tomcat1、从官网下载安装包
Tomcat 8 Software Downloadstomcat.apache.org
2、上传解压到 ...
Linux虚拟机基础环境配置
首先来说需要配置哪些东西
网络配置
防火墙设置
yum源的替换(centos不用)
一、网络配置(静态网卡配置)1、设置网卡开机自启(需要有root权限)
1vi /etc/sysconfig/network-scripts/ifcfg-ens33
2、修改文件内容:
按下键盘的”i”,进入到了编辑模式,通过方向键移动到该行,将内容修改:
ONBOOT=no ==> ONBOOT=yes
按键盘Esc键,退出编辑模式。输入”:wq“,保存退出。不想保存,输入q!,来强制退出。
3、重启网络服务
1service network restart
4、静态网络配置
各个配置的意义:
DEVICE:设置网络接口的名称
ONBOOT:设置网络接口是否在Linux系统启动时激活
BOOTPROTO:设置网络接口的配置方式,值为static时表示使用静态ip地址,为dhcp时表示通过dhcp的方式动态获取ip地址
IPADDR:设置网络接口的ip地址
NETMASK:设置网络接口的子网掩码
GATEWAY:设置网络接口的默认网关地址
1234567891011121314151 ...
VMware安装CentOS系统
如何去创建一台空白的虚拟机
注:以下出现的截图可能不是centos的,但是道理相同,不知道怎么选的,采取默认设置就可以了。
安装步骤1、通过键盘Ctrl+N来调出新建虚拟机的窗口。
2、如果是新安装的Vmware,那么第一次创建虚拟机时,默认选择的是”典型”,由于咱们都是高级人员,所以选择”自定义”安装的方式,可以通过键盘的Alt+C快速选择到”自定义”。
3、显示的Workstation 12.0是由于当前的VMware的主版本号为12。保持默认即可。
4、选择”稍后安装”
5、选择”Linux”、”CentOS 64位”,选择自己镜像文件的系统
6、先修改”虚拟机名称”,在修改路径。
7、其实单个多个都可以,不会对后续有影响
8、剩下的,直接下一步到完成。
安装CentOS系统:
1、放入CentOS系统的iso镜像文件。
2、选择镜像文件。
3、选择第一个进入,等待系统加载
4、需要重启物理机,在BIOS中开启CPU虚拟化
如果出现其他的提示,无需理会。
5、语言英文中文随意,英文好一点的选英文。
6、时间如果选择中文就不用改默认上海
7、分区 ...
SSH免密操作
为什么要配置免密登录可以在配置完第一台虚拟机后,直接将文件传输给其余两台虚拟机,提高开发效率
三步配置1、配置主机名
执行:vim /etc/hosts
编辑主机名
注意:主机名里不能有下滑线,或者特殊字符 #$,不然会找不到主机导致无法启动
这种方式更改主机名需要重启才能永久生效,因为主机名属于内核参数。
123192.168.11.131 hadoop01192.168.11.132 hadoop02192.168.11.133 hadoop03
2、在主机节点(hadoop01)执行
1ssh-keygen
然后三次回车
生成节点的公钥和私钥,生成的文件会自动放在/root/.ssh目录下
3、然后把公钥发往3台远程机器1 2 3
123ssh-copy-id root@hadoop01ssh-copy-id root@hadoop02ssh-copy-id root@hadoop03