/mr的combiner /mr的排序 /mr的shuffle /mr与yarn /mr运行模式 /mr实现join /mr全局图 /mr的压缩 今日提纲 一.流量汇总排序的实现 1.需求 对日志数据中的上下行流量信息汇总,并输出按照总流量倒序排序的结果 2.分析 基本思路:实现自定义的bean来封装流量信息,并将bean作为map输出的key来传输 MR程序在处理数据的过程中会对数据排序(map输出的kv对传输到reduce之前,会排序),排序的依据是map输出的key 所以,我们如果要实现自…
一.本地模式调试MR程序 1.准备 参考之前随笔的windows开发说明处:http://www.cnblogs.com/jiangbei/p/8366238.html 2.流程 最重要的是设置LocalJobRunner这个参数,这样mapreduce就变成一个线程在跑了! 而处理的数据及输出结果可以在本地文件系统,也可以在hdfs上 3.代码实现 以wordcount为例,只需在原来的Driver的main()方法中,对conf进行设置: // 设置本地运行 conf.set("mapred…
一.自定义in/outputFormat 1.需求 现有一些原始日志需要做增强解析处理,流程: 1. 从原始日志文件中读取数据 2. 根据日志中的一个URL字段到外部知识库中获取信息增强到原始日志 3. 如果成功增强,则输出到增强结果目录:如果增强失败,则抽取原始数据中URL字段输出到待爬清单目录 1374609560.11 1374609560.16 1374609560.16 1374609560.16 110 5 8615038208365 460023383869133 86964200…
一.数据倾斜分析——mapJoin 1.背景 接上一个day的Join算法,我们的解决join的方式是:在reduce端通过pid进行串接,这样的话: --order ,,P0001, ,,P0001, ,,P0002, --product P0001,小米5,, P0002,锤子T1,, 例如订单中的小米5卖的比较好(截止博客时间,已经是米7将出的时候了.),这样的话大部分的数据都流向了P0001的这个reduce上,而P0002 的锤子的reduce确很轻松,这样,就产生了数据倾斜了! 更多…
我准备了WEB应用程序及WinForm应用程序,分别在WIN SERVER 2012/2008/2003.Win7/10上实测,以下为实测结果截图: 2012 2008 2003 WIN7 WIN10 .net dll保护系列 -------------------------------------------------------------------------------------------- .NET DLL 保护措施详解(一)(非混淆加密加壳) .NET DLL 保护措施详解…
一.概述 1.map-reduce是什么 Hadoop MapReduce is a software framework for easily writing applications which process vast amounts of data (multi-terabyte data-sets) in-parallel on large clusters (thousands of nodes) of commodity hardware in a reliable, fault-…
一.概述 今天起就正式进入了流式计算.这里先解释一下流式计算的概念 离线计算 离线计算:批量获取数据.批量传输数据.周期性批量计算数据.数据展示 代表技术:Sqoop批量导入数据.HDFS批量存储数据.MapReduce批量计算数据.Hive批量计算数据.***任务调度 ,hivesql .调度平台 .Hadoop集群运维 .数据清洗(脚本语言) .元数据管理 .数据稽查 .数据仓库模型架构 相关技术栈与应用 流式计算 流式计算:数据实时产生.数据实时传输.数据实时计算.实时展示 代表技术:Fl…
一.概述 1.什么是Hbase 根据官网:https://hbase.apache.org/ Apache HBase™ is the Hadoop database, a distributed, scalable, big data store. HBASE是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统 中文简明介绍: Hbase是分布式.面向列的开源数据库(其实准确的说是面向列族).HDFS为Hbase提供可靠的底层数据存储服务,MapReduce为Hbase提供高性能的计算能力,…
一.概述 1.kafka是什么 根据标题可以有个概念:kafka是storm的上游数据源之一,也是一对经典的组合,就像郭德纲和于谦 根据官网:http://kafka.apache.org/intro 的解释呢,是这样的: Apache Kafka® is a distributed streaming platform   ApacheKafka®是一个分布式流媒体平台 l Apache Kafka是一个开源消息系统,由Scala写成.是由Apache软件基金会开发的一个开源消息系统项目. l…
一.kafka文件存储机制 1.topic存储 在Kafka文件存储中,同一个topic下有多个不同partition,每个partition为一个目录,partiton命名规则为topic名称+有序序号,第一个partiton序号从0开始,序号最大值为partitions数量减1. 以上面创建的topic_1为例,在mini1这台机器上的目录如下: 综合查看3台机器的分布,如下所示: mini1: 1 2 3 mini2: 0 2 3 mini3: 0 1 // 这里是设置了副本数量,如果为了…
一.常用命令 1.提交命令 提交任务命令格式:storm jar [jar路径] [拓扑包名.拓扑类名] [拓扑名称] torm jar examples/storm-starter/storm-starter-topologies-.jar storm.starter.WordCountTopology wordcount 2.杀死任务 storm (执行kill命令时可以通过-w [等待秒数]指定拓扑停用以后的等待时间) storm 3.停用任务 storm deactivte [拓扑名称]…
一.概述 根据之前的凡技术必登其官网的原则,我们当然先得找到它的官网:http://hadoop.apache.org/ 1.什么是hadoop 先看官网介绍: The Apache™ Hadoop® project develops open-source software for reliable, scalable, distributed computing. The Apache Hadoop software library is a framework that allows fo…
一.HA概述 1.引言 正式引入HA机制是从hadoop2.0开始,之前的版本中没有HA机制 2.运行机制 实现高可用最关键的是消除单点故障 hadoop-ha严格来说应该分成各个组件的HA机制——HDFS的HA.YARN的HA 详解: 通过双namenode消除单点故障 双namenode协调工作的要点: A.元数据管理方式需要改变: 内存中各自保存一份元数据 Edits日志只能有一份,只有Active状态的namenode节点可以做写操作 两个namenode都可以读取edits 共享的ed…
一.Hadoop Shell命令 既然有官方文档,那当然先找到官方文档的参考:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/FileSystemShell.html 对于3种命令的区别: 以下内容参考自stackoverflow Following are the three commands which appears same but have minute differences hadoop…
一.多线程基础回顾 先导知识在基础随笔篇:http://www.cnblogs.com/jiangbei/p/6664555.html 以下此部分以补充为主 1.概念 进程:进行中的程序,内存中有独立的内存空间 线程:进程中的多个顺序控制流 2.Java中实现线程的两种方式 参考上文(继承thread类与实现runnable接口) 3.同步synchronized的用法 参考上文(同一时间只能有一个线程执行) 4.lock 外部的锁类,参考:https://www.cnblogs.com/dol…
1.user ss is currently user by process 3234 问题原因:root --> ss --> root 栈递归一样 解决方式:exit 退出当前到ss再退出到root 然后执行命令即可. 2.列出某目录下的目录而不是文件 参考:ls --https://jingyan.baidu.com/article/e8cdb32b100dd537052badc5.html 3.登录用户与当前用户 whoami 当前用户 who am i 登录用户 其中有root权限才…
一.概述 1.什么是scala  Scala是一种多范式的编程语言,其设计的初衷是要集成面向对象编程和函数式编程的各种特性.Scala运行于Java平台(Java虚拟机),并兼容现有的Java程序. 官网:http://www.scala-lang.org/ scala 特性:   面向对象特性. 函数式编程 静态类型 扩展性 并发性 详细的阐述,参考菜鸟教程:http://www.runoob.com/scala/scala-intro.html 易百教程:https://www.yiibai…
一.推荐系统概述 为了解决信息过载和用户无明确需求的问题,找到用户感兴趣的物品,才有了个性化推荐系统.其实,解决信息过载的问题,代表性的解决方案是分类目录和搜索引擎,如hao123,电商首页的分类目录以及百度,360搜索等.不过分类目录和搜索引擎只能解决用户主动查找信息的需求,即用户知道自己想要什么,并不能解决用户没用明确需求很随便的问题.经典语录是:你想吃什么,随便!面对这种很随便又得罪不起的用户(女友和上帝),只能通过分析用户的历史行为给用户的兴趣建模,从而主动给用户推荐能够满足他们兴趣和需…
一.实时业务指标分析 1.业务 业务: 订单系统---->MQ---->Kakfa--->Storm 数据:订单编号.订单时间.支付编号.支付时间.商品编号.商家名称.商品价格.优惠价格.支付金额 统计双十一当前的订单金额,订单数量,订单人数 订单金额(整个网站,各个业务线,各个品类,各个店铺,各个品牌,每个商品 架构 支付系统+kafka+storm/Jstorm集群+redis集群 1.支付系统发送mq到kafka集群中,编写storm程序消费kafka的数据并计算实时的订单数量.订…
一.mapTask并行度的决定机制 1.概述 一个job的map阶段并行度由客户端在提交job时决定 而客户端对map阶段并行度的规划的基本逻辑为: 将待处理数据执行逻辑切片(即按照一个特定切片大小,将待处理数据划分成逻辑上的多个split,然后每一个split分配一个mapTask并行实例处理 这段逻辑及形成的切片规划描述文件,由FileInputFormat实现类的getSplits()方法完成,其过程如下图: // 完整的笔记介绍,参考:http://blog.csdn.net/qq_26…
一.基本概念 1.什么是hive The Apache Hive ™ data warehouse software facilitates reading, writing, and managing large datasets residing in distributed storage using SQL. Structure can be projected onto data already in storage. A command line tool and JDBC driv…
一.基本原理 1.hbase的位置 上图描述了Hadoop 2.0生态系统中的各层结构.其中HBase位于结构化存储层,HDFS为HBase提供了高可靠性的底层存储支持, MapReduce为HBase提供了高性能的批处理能力,Zookeeper为HBase提供了稳定服务和failover机制,Pig和Hive为HBase提供了进行数据统计处理的高层语言支持,Sqoop则为HBase提供了便捷的RDBMS数据导入功能,使业务数据从传统数据库向HBase迁移变的非常方便. 2.体系图 体系图中各个…
一.基本操作 1.DDL 官网的DDL语法教程:点击查看 建表语句 CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_comment], ...)] [COMMENT table_comment] [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] [CLUSTERED BY (col_name, c…
一.集群提交任务流程分析 1.集群提交操作 参考:https://www.jianshu.com/p/6783f1ec2da0 2.任务分配与启动流程 参考:https://www.cnblogs.com/heitaok/p/5531535.html 二.相关目录树 1.组件本地目录树 2.storm zk目录树 三.集群通信 Worker间的通信经常需要通过网络跨节点进行,Storm使用ZeroMQ或Netty(0.9以后默认使用)作为进程间通信的消息框架. Worker进程内部通信:不同wo…
一.kafka常用命令 1.创建topic bin/kafka-topics. --replication-factor --zookeeper mini1: // 如果配置了PATH可以省略相关命令路径,相关命令参数暂不深入,字面意思也可以大概推断.后续给出完整参数参考. 2.查看所有topic bin/kafka-topics. 3.生产者发送消息 bin/kafka-console-producer. --topic topic_1 4.消费者消费消息 bin/kafka-console-…
一.hbase数据模型 完整的官方文档的翻译,参考:https://www.cnblogs.com/simple-focus/p/6198329.html 1.rowkey 与nosql数据库们一样,row key是用来检索记录的主键.访问HBASE table中的行,只有三种方式: 1.通过单个row key访问 2.通过row key的range(正则) 3.全表扫描 Row key行键 (Row key)可以是任意字符串(最大长度 是 64KB,实际应用中长度一般为 10-100bytes…
一.hive函数 1.内置运算符与内置函数 函数分类: 查看函数信息: DESC FUNCTION concat; 常用的分析函数之rank() row_number(),参考:https://www.cnblogs.com/wujin/p/6051768.html 常用20个内置函数: https://www.cnblogs.com/kimbo/p/6288516.html 常用函数:https://www.iteblog.com/archives/2258.html 完整参考官方手册:htt…
一.概述 1.sqoop是什么 从其官网:http://sqoop.apache.org/ Apache Sqoop(TM) is a tool designed for efficiently transferring bulk data between Apache Hadoop and structured datastores such as relational databases 中文来说,就是: sqoop是apache旗下一款“Hadoop和关系数据库服务器之间传送数据”的工具.…
一.概述 1.azkaban是什么 通过官方文档:https://azkaban.github.io/ Azkaban is a batch workflow job scheduler created at LinkedIn to run Hadoop jobs. Azkaban resolves the ordering through job dependencies and provides an easy to use web user interface to maintain an…
一.概述 1.什么是flume 官网的介绍:http://flume.apache.org/ Flume is a distributed, reliable, and available service for efficiently collecting, aggregating, and moving large amounts of log data. It has a simple and flexible architecture based on streaming data fl…