基础原理补充 :
-Yarn实现将资源管理和作业调度/监控相分离。
-心跳机制:管理者与从属者的心跳检测。
-从属者:UDP形式向管理发送空包,证明自身存活。
-从属者:TCP形式向管理发送空包,证明管理者是否存活。
-管理者:UDP形式隔一段时间进行广播。【可能出现某个节点或者某一批节点未收到广播信息】需要根据未收到消息的个数进行判断是否从属者宕机。
-管理者发现宕机,立即切换到备用服务器。【正常情况下,备用服务器需要实时备份管理者的数据】
-
hdfs应用:Maven依赖[分布式文件管理系统]
-hadoop-common
-hadoop-hdfs
note:注意版本号!
HDFS——API应用
【2】etc/host文件配置:192.168.92.101 macro1
【3】windows环境中配置解析文件:
//强制加载
System.load("G:\Eclipse\hadoop\bin\hadoop.dll");
//指定用户,指定Hadoop输出路径
System.setProperty("HADOOP_USER_NAME", "root");
System.setProperty("hadoop.home.dir", "G:\Eclipse\hadoop");
//创建配置对象
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://192.168.92.101:9000");【4】通过配置对象,获取文件系统;——支持如下API
fileSystem = fileSystem.get(conf);
MR编程——数据计算模型
简单一致模型,正常的在mysql当中能够完成的查询,都可以使用MR来完成,主要是针对于大数据量的数据查询,但是他的查询效率很低(但是这个低是相对的,同样的数据量,mysql完成不了这样的数据查询)
Map阶段:对文件的每一行进行读取,【按照业务需求】将获得结果写入到下一阶段
-Mapper<LongWritable, Text, Text, IntWritable> //入参前两个;出参后两个
Shuffle阶段:
-Reducer<Text, IntWritable, Text, IntWritable> //入参对应map阶段的出参
根据读取进来的数据,MR进行shuffle处理,【对业务数据进行排序,分组】,表现形式:
-key1:{value1,value2,value3….}
-key2:{value1,value2,value3….}
-….
reduce阶段:
==================
【1】正常的sql查询能做的事情,mr都能做。
【2】mr在读写过程中,都是直接写在硬盘上的【读写性能不高,时效性能不高】。好处:数据绝对不会丢!——对于非互联网项目在数据分析过程当中,对时效性要求不高的情况下,会使用hadoop来完成数据处理。
【3】spark:内存读写,是硬盘读写性能的40倍左右
note:由于Hadoop不建议在window上运行,通过编译hadoop相关文件,进行配置环境变量。
-HADOOP_HOME:解压路径
-在windows目录下,配置映射路径
-
Hadoop创建文件:
-hadoop fs –touchz /input/test 在input路径下创建文件test
-hadoop fs –rmr /output/* 移除output路径下的所有文件
-fsimage文件:记录元数据信息的文件//edits文件:记录元数据信息改动的文件【这两个文件定期合并,3600S】 ——hadoop namenode –format 创建初始的fsimageedits文件
-元数据:数据镜像,数据块的位置、顺序、名字、路径…
Maven
-开发:帮助管理jar包
-资源来源
-兼容性
-依赖
-部署
Maven环境配置:
-eclipse中maven install 外部添加插件
-user settings : global settings: 选择 maven/conf/ settings.xml文件,选中。 【update settings】
-更改全局配置文件:同上,然后更新配置文件
-打开settings.xml文件,配置对应的resporitory的路径,镜像路径
-
路径清晰: