自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 收藏
  • 关注

原创 scala高阶函数

目标:掌握集合高阶函数的功能及用法map函数:foreach函数flatMap函数groupBy函数filter函数ilterNot函数sortWith函数sortBy函数reduce函数10.fold函数路径:函数的语法函数的功能与应用场景实施:map函数的语法list.map(A=>B):List[B]举例://数据val list = List(1,2,3,4,5,6,7,8,9,10)//调用scala> list.map(num

2021-12-10 21:17:08 539 2

原创 scala方法与函数区别

目标:Scala中的方法与函数的定义及其语法规则路径:定义方法的语法方法定义的规则定义函数的语法函数定义的规则方法与函数的区别实施:定义方法的语法def funcName(args1:Type1,args2:Type2……):ResultType = { //方法体}举例:scala> def m1(a:Int,b:Int):Int = { | a + b | }m1: (a: Int, b: Int)Int方法定义的规则方法

2021-12-09 08:04:35 187

原创 IDEA中创建Scala工程

目标:实现IDEA中Scala插件的安装及Scala工程创建路径:如何在IDEA中安装Scala插件?在线安装如何在IDEA中创建Scala工程?方式一:纯Scala工程方式二:Maven工程实施:IDEA中在线安装Scala插件step1:在线安装Scala插件方式一:项目内下载方式二:IDEA中创建Scala工程方式一:纯Scala工程:需要自己手动关联依赖包方式二:Maven工程:自动管理依赖

2021-12-07 19:44:05 278

原创 Scala的介绍

目标:了解Scala的定义、特点及工作应用场景路径:Scala是什么?Scala与Java有什么区别与联系?Scala在大数据中的应用场景是什么?实施:Scala的官网:https://www.scala-lang.org/Scala是一门集成了面向对象编程和面向函数式编程的高级语言Scala通过静态类型避免复杂程序中的bugScala基于JVM可以实现简单的访问高性能的JVM生态圈Scala的定义Scala是一个基于JVM的多范式编程语言多范式:面向对象 + 函数

2021-12-07 15:09:36 386

原创 Scala开发环境安装

目标:实现Scala的开发环境安装部署测试路径:如何在Windows和Linux平台中部署Scala的SDK?step1:解压安装step2:配置环境变量step3:测试环境命令为什么装两个地方?Windows:写代码是在windows的IDEA中开发Linux:将代码放在Linux中运行实施:Windows中部署Scala SDKstep1:解压安装,选择一个无中文无空格的路径解压安装...

2021-12-06 14:38:14 16924

原创 kafka集群的启动与关闭命令及脚本封装

目标:step1:如何启动Kafka集群?step2:如何关闭Kafka集群?step3:如何封装启动及关闭脚本?实施:启动Zookeeper/export/server/zookeeper-3.4.6/bin/start-zk-all.sh 启动Kafkabin/kafka-server-start.sh config/server.properties >>/dev/null 2>&1 &‘>>/dev/null 2>&

2021-12-03 18:09:25 17662

原创 Kafka分布式集群部署

目标:实现Kafka分布式集群的搭建部署路径:step1:选择版本step2:下载解压安装step:3:修改配置文件实施:step1:版本的选型0.8.x:老的版本,很多的问题0.10.x +:消息功能上基本没有问题选择:kafka_2.12-2.4.1.tgzKafka:2.4.1Scala:2.12,Kafka是由Scala语言开发step2:下载解压安装下载地址:http://archive.apache.org/dist/kafka/上传到第一台机

2021-12-01 21:21:39 17851 1

原创 HBase Java API:DML:Filter

import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.*;import org.apache.hadoop.hbase.client.*;import org.apache.hadoop.hbase.filter.FilterList;import org.apache.hadoop.hbase.filter.MultipleColumnPrefixFilter;import org.apache.ha

2021-04-15 14:33:30 17316

原创 HBase JavaAPI:DML(数据的增删改查)

import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.Cell;import org.apache.hadoop.hbase.CellUtil;import org.apache.hadoop.hbase.HBaseConfiguration;import org.apache.hadoop.hbase.TableName;import org.apache.hadoop.hbase.client.*;

2021-04-15 14:33:04 17292

原创 HBase JavaAPI:DDL

import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.HBaseConfiguration;import org.apache.hadoop.hbase.NamespaceDescriptor;import org.apache.hadoop.hbase.TableName;import org.apache.hadoop.hbase.client.*;import org.apache.hadoop.

2021-04-08 09:48:41 17327

原创 HBase常用shell命令

列举所有的NS list_namespace列举NS中的所有表 list_namespace_tables 'Namespace的名称'创建NS create_namespace 'Namespace的名称'删除NS # 只能删除空NS drop_namespace 'Namespace的名称' 查看表 desc '表名'禁用表 disable '表名'启用表 enable '表名'删除表 # 必须先禁用表,再删除表 drop ..

2021-04-08 09:35:13 17470

原创 HBase安装

上传解压HBase安装包:tar -zxvf hbase-2.1.0.tar.gz -C ../server/ 修改HBase配置文件: 1、修改 hbase-env.sh:cd /export/server/hbase-2.1.0/confvim hbase-env.sh export JAVA_HOME=/export/server/jdk1.8.0_241/ export HBASE_MANAGES_ZK=false2、 修改 hbase-site.xml:cd /export.

2021-03-25 16:00:08 17257

原创 mapreduce参数优化

1 资源相关参数以下调整参数都在mapred-site.xml这个配置文件当中有以下参数是在用户自己的mr应用程序中配置就可以生效(1) mapreduce.map.memory.mb: 一个Map Task可使用的资源上限(单位:MB),默认为1024。如果Map Task实际使用的资源量超过该值,则会被强制杀死。(2) mapreduce.reduce.memory.mb: 一个Reduce Task可使用的资源上限(单位:MB),默认为1024。如果Reduce Task实际使用的资源量超过

2020-12-03 21:15:02 18911

原创 自定义outputFormat

需求现在有一些订单的评论数据,需求,将订单的好评与差评进行区分开来,将最终的数据分开到不同的文件夹下面去,数据内容参见资料文件夹,其中数据第九个字段表示好评,中评,差评。0:好评,1:差评;分析程序的关键点是要在一个mapreduce程序中根据数据的不同输出两类结果到不同目录,这类灵活的输出需求可以通过自定义outputformat来实现实现1、 在mapreduce中访问外部资源2、 自定义outputformat,改写其中的recordwriter,改写具体输出数据的方法write()定义

2020-12-03 20:21:40 17336

原创 MapReduce的自定义inputFormat(合并小文件)

需求无论hdfs还是mapreduce,对于小文件都有损效率,实践中,又难免面临处理大量小文件的场景,此时,就需要有相应解决方案分析(小文件的优化无非以下几种方式:)1、 在数据采集的时候,就将小文件或小批数据合成大文件再上传HDFS2、 在业务处理之前,在HDFS上使用mapreduce程序对小文件进行合并3、 在mapreduce处理时,可采用combineInputFormat提高效率实现(本节实现的是上述第二种方式)自定义一个InputFormat改写RecordReader,实现

2020-12-03 20:08:40 17209

原创 map端 join算法实现

1、原理阐述适用于关联表中有小表的情形;可以将小表分发到所有的map节点,这样,map节点就可以在本地对自己所读到的大表数据进行join并输出最终结果,可以大大提高join操作的并发度,加快处理速度2、实现示例–先在mapper类中预先定义好小表,进行join–引入实际场景中的解决方案:一次加载数据库或者用第一步:定义mapJoinpublic class Map extends Mapper<LongWritable, Text,Text,Text> { HashMap.

2020-12-02 21:21:53 17292

原创 shuffle阶段数据的压缩机制

hadoop当中支持的压缩算法压缩格式 工具 算法 文件扩展名 是否可切分 DEFLATE 无 DEFLATE .deflate 否 Gzip gzip DEFLATE .gz 否 bzip2 bzip2 bzip2 .bz2 是 LZO lzop LZO .lzo 否 LZ4 无 LZ4 .lz4 否 Snappy 无 Sn

2020-11-30 21:05:42 17379

原创 reduce端 join算法实现

1. 第一步:自定义map的输出value对象Beanimport org.apache.hadoop.io.Writable;import java.io.DataInput;import java.io.DataOutput;import java.io.IOException;public class Ord_Pro implements Writable { private String id; private String date; private Stri

2020-11-30 19:54:01 17369

原创 MapReduce的自定义计数器

1. 在map端使用计数器进行统计:import org.apache.hadoop.io.LongWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Mapper;import java.io.IOException;public class MapDemo01 extends Mapper<LongWritable, Text,Text,LongWritable> {

2020-11-30 19:53:42 17375

原创 MapReduce 自定义partitioner

需求:将以下数据进行分开处理,其中第六个字段表示开奖结果数值,现在以15为分界点,将15以上的结果保存到一个文件,15以下的结果保存到一个文件。

2020-11-12 18:09:48 17333

原创 MapReduce 简单案例

需求:在给定的文本文件中统计输出每一个单词出现的总次数数据格式准备如下:cd /export/serversvim wordcount.txt(加入以下内容) hello,world,hadoop hive,sqoop,flume,hello kitty,tom,jerry,world hadoophdfs dfs -mkdir /wordcount/hdfs dfs -put wordcount.txt /wordcount/定义一个mapper类:import org.apac

2020-11-11 21:20:55 17656

原创 HDFS回收站

回收站配置两个参数说明默认值fs.trash.interval=0,0表示禁用回收站,此值大于0时表示启用回收站,以分钟为单位的垃圾回收时间。用于设置被删掉的数据在回收站的保存时间,数据在回收站的时间超过这个设置的时间,回收站将其永久删除。 默认值fs.trash.checkpoint.interval=0,如果是0,值等同于fs.trash.interval。以分钟为单位的垃圾回收检查间隔。要求fs.trash.checkpoint.interval<=fs.trash.interval启

2020-11-11 17:28:58 17404

原创 hdfs 快照 snapShot 管理

快照使用基本语法开启指定目录的快照功能 hdfs dfsadmin -allowSnapshot 路径禁用指定目录的快照功能(默认就是禁用状态) hdfs dfsadmin -disallowSnapshot 路径给某个路径创建快照snapshot hdfs dfs -createSnapshot 路径指定快照名称进行创建快照snapshot hdfs dfs -createSnapshot 路径 名称 ...

2020-11-11 17:12:00 17445

原创 Zookeeper的API操作

public static void main(String[] args) throws Exception { //创建zk对象 ZooKeeper zk = new ZooKeeper("node01:2181,node02:2181,node03:2181", 10000, new Watcher() { @Override public void process(WatchedEvent watchedEvent) .

2020-11-04 21:29:35 17744 1

原创 HDFS-Web界面介绍(50070)

登录HDFSWeb浏览器(http://IP地址:50070 ) Overview:集群概述 Datanode::数据节点 datanode-volume-failures: 数据节点卷故障 snapshot: 快照 startup-progress: 启动进度 Started:启动 Version:版本 Compiled:已编译 Cluster ID: 群集ID: Block Pool ID: 块池ID: Security is off:安全关闭 Safemode is

2020-11-04 20:40:00 26941 3

原创 HDFS的javaAPI操作

基本代码展示public static void main(String[] args) throws Exception { //获取FileSystem(有多种,文章后面有说明) Configuration configuration = new Configuration(); FileSystem fs=FileSystem.get(new URI("hdfs://IP地址"),configuration); //创建文件夹

2020-11-03 21:27:25 17450 1

原创 ZooKeeper shell(增删改查)

客户端连接:zkCli.sh -server ip地址创建节点创建永久节点(和会话没有关系,可以有子节点): create /test01 111创建临时节点(会话结束,节点消失,不能有子节点): create -e /test01 111创建顺序节点(在给定的文件名后追加序列号(序列号依次递增)): create -s /test01 111读取节点查看子节点: ls /test01查看子节点和本节点详细信息: ls2 /test01获得本节点数据和详细信息: get /

2020-10-20 21:24:04 17457

原创 Zookeeper基本知识

ZooKeeper概述:Zookeeper是一个分布式协调服务的开源框架。

2020-10-20 20:16:56 17462

原创 Zookeeper集群搭建

前期准备:安装jdk(主页搜 jdk 有教程)同步集群时间(主页搜 时钟同步 有教程)关闭防火墙主机与ip映射配置下载安装包、解压例如: tar -zxvf zookeeper-3.4.5.tar.gz -C /export/servers修改环境变量(注意:3台zookeeper都需要修改) 进入 vi /etc/profile.d/zookeeper.sh 添加 export ZOOKEEPER_HOME=/export/servers/zookeeper-3.4.5

2020-10-20 20:09:02 17334

原创 hadoop集群删除节点

1、 创建黑名单文件 dfs.hosts.exclude 并添加需要退役的节点2、在hdfs-site.xml中添加一下配置 <property> <name>dfs.hosts.exclude</name> <value>/export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop/dfs.hosts.exclude</value> </property>3、 刷新Nam

2020-10-20 08:53:56 17757

原创 Hadoop集群添加节点

1、 添加新的虚拟主机a) 修改主机名 vi /etc/sysconfig/networkb) 永久关闭防火墙 /etc/init.d/iptables stop chkconfig iptables offc) 关闭selinux vi /etc/selinux/config SELINUX=disabledd) 修改所有节点的 /etc/hosts文件。添加新节点的ip和主机名e) 主节点到新节点的ssh无密码登录 ssh-c

2020-10-20 08:47:20 17859

原创 NameNode数据还原

1、 记录NameNode存储FSimage和Edits_Log的路径FSimage: /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/namenodeDatas/currentEdits_Log: /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/dfs/nn/edits/current2、 记录SecondaryNameNode存储FSimage和Edits_Log的路径FSimage:

2020-10-19 20:58:46 17479

原创 SecondaryNameNode如何辅助管理FSImage与Edits文件

1、 secnonaryNN通知NameNode切换editlog,生成edits.new2、secondaryNN从NameNode中获得FSImage和editlog(通过http方式),将FSImage载入内存,然后开始合并editlog,合并之后成为新的fsimage3、secondaryNN将新的fsimage.ckpt发回给NameNode4、NameNode用新的fsimage.ckpt替换旧的fsimage5、NameNode用新的edits.new替换旧的edits...

2020-10-19 20:35:59 17339

原创 HDFS适用场景与不适用场景

HDFS适用场景1、 海量数据存储2、 高容错3、 商用廉价的硬件4、 存储大文件5、 一次写入多次读取HDFS不适用场景1、 查询时效性要求低延迟的场景2、 大量小文件。3、 需要频繁修改数据的场景4、 多个用户同时操作一个文件...

2020-10-19 20:15:08 17960

原创 HDFS的shell命令

HDFS文件夹的增删改查 上传 hadoop fs -mkdir /aa 修改 hadoop fs -mv /aa /bb 删除 hdfs dfs -rmr /bb 查询 hdfs dfs -ls /

2020-10-19 20:05:28 17207

原创 HDFS数据校验

1、 数据第一次写入成功后,会进行数据校验,获得校验和。2、 数据读取前,对数据进行校验,获得校验和,计算得到的校验和与第一次上传后的校验和进行对比。3、 两个校验和相同表示数据相同,可以提读取数据4、 两个校验和不相同表示数据不相同,节点去其他节点读取5、 数据节点周期进行校验和计算,防止数据丢失。...

2020-10-19 20:04:27 17727

原创 HDFS读取数据的流程

1、客户端通过调用FileSystem对象的open()来读取希望打开的文件。2、 Client向NameNode发起RPC请求,来确定请求文件block所在的位置;3、 NameNode会视情况返回文件的部分或者全部block列表,对于每个block,NameNode 都会返回含有该 block 副本的 DataNode 地址; 这些返回的 DN 地址,会按照集群拓扑结构得出 DataNode 与客户端的距离,然后进行排序,排序两个规则:网络拓扑结构中距离 Client 近的排靠前;心跳机制中超时.

2020-10-19 19:57:13 17462

原创 HDFS写入数据的流程

1、 client发起文件上传请求,通过RPC与NameNode建立通讯,NameNode检查目标文件是否已存在,父目录是否存在,返回是否可以上传;2、 client请求第一个block该传输到哪些DataNode服务器上;3、 NameNode根据配置文件中指定的备份数量及机架感知原理进行文件分配,返回可用的DataNode的地址如:A,B,C;4、 client请求3台DataNode中的一台A上传数据(本质上是一个RPC调用,建立pipeline),A收到请求会继续调用B,然后B调用C,将整个.

2020-10-19 19:54:48 17349

原创 NameNode的作用与DataNode的作用

NameNode:1、 维护目录树,维护命名空间。2、 负责确定指定的文件块到具体的Datanode结点的映射关系。(在客户端与Datanode之间共享数据)3、管理Datanode结点的状态报告DataNode:1、 负责管理它所在结点上存储的数据的读写,及存储数据。2、 向Namenode结点报告DataNode节点的状态。3、 通过流水线复制实现三份数据副本...

2020-10-19 19:53:45 18551

原创 Hadoop集群安装部署

前期准备 1. 创建三台虚拟机 2. 服务器主机名和IP配置(三台) 3. 修改每个主机的/etc/hosts文件,添加IP和主机名的对应关系(三台) 4. 管理节点到从节点配置无密码登录 5. 配置jdk 1.8(三台) 6. 关闭防火墙(三台)(永久关闭) 7. 关闭selinux(三台) vi /etc/selinux/config SELINUX=enforcing --> SELINUX=disabled 重启系统安装流程 1. 传软件包

2020-10-15 11:50:08 17415

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除