一.多线程基础回顾 先导知识在基础随笔篇:http://www.cnblogs.com/jiangbei/p/6664555.html 以下此部分以补充为主 1.概念 进程:进行中的程序,内存中有独立的内存空间 线程:进程中的多个顺序控制流 2.Java中实现线程的两种方式 参考上文(继承thread类与实现runnable接口) 3.同步synchronized的用法 参考上文(同一时间只能有一个线程执行) 4.lock 外部的锁类,参考:https://www.cnblogs.com/dol…
一.概述 .掌握RPC原理 .掌握nio操作 .掌握netty简单的api .掌握自定义RPC框架 主要内容 1.RPC是什么 RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议.RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据.在OSI网络通信模型中,RPC跨越了传输层和应用层.RPC使得开发包括网络分布式多程序在内的应用程序更加容易. // 来自百度百科 更加通俗一些的R…
一.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.kafka是什么 根据标题可以有个概念:kafka是storm的上游数据源之一,也是一对经典的组合,就像郭德纲和于谦 根据官网:http://kafka.apache.org/intro 的解释呢,是这样的: Apache Kafka® is a distributed streaming platform   ApacheKafka®是一个分布式流媒体平台 l Apache Kafka是一个开源消息系统,由Scala写成.是由Apache软件基金会开发的一个开源消息系统项目. l…
一.概述 根据之前的凡技术必登其官网的原则,我们当然先得找到它的官网: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…
一.概述 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.集群提交操作 参考: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…
一.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…
/mr的combiner /mr的排序 /mr的shuffle /mr与yarn /mr运行模式 /mr实现join /mr全局图 /mr的压缩 今日提纲 一.流量汇总排序的实现 1.需求 对日志数据中的上下行流量信息汇总,并输出按照总流量倒序排序的结果 2.分析 基本思路:实现自定义的bean来封装流量信息,并将bean作为map输出的key来传输 MR程序在处理数据的过程中会对数据排序(map输出的kv对传输到reduce之前,会排序),排序的依据是map输出的key 所以,我们如果要实现自…
一. 类.对象.继承.特质 1.类 Scala的类与Java.C++的类比起来更简洁 定义: package com.jiangbei //在Scala中,类并不用声明为public. //Scala源文件中可以包含多个类,所有这些类都具有公有可见性. class Person { // 定义一个不可变的val(只有getter)和可变的var(getter setter都有) // 更直观的理解,可以通过反编译工具打开out目录的.class文件 val id = 9527 var name…
一.基础语法 1.变量类型 // 上表中列出的数据类型都是对象,也就是说scala没有java中的原生类型.在scala是可以对数字等基础类型调用方法的. 2.变量声明——能用val的尽量使用val!!! //使用val定义的变量值是不可变的,相当于java里用final修饰的变量 val i = 3 //使用var定义的变量是可变得,在Scala中鼓励使用val var j = "hello" //Scala编译器会自动推断变量的类型,必要的时候可以指定类型 var k: Strin…
一.基本原理 1.hbase的位置 上图描述了Hadoop 2.0生态系统中的各层结构.其中HBase位于结构化存储层,HDFS为HBase提供了高可靠性的底层存储支持, MapReduce为HBase提供了高性能的批处理能力,Zookeeper为HBase提供了稳定服务和failover机制,Pig和Hive为HBase提供了进行数据统计处理的高层语言支持,Sqoop则为HBase提供了便捷的RDBMS数据导入功能,使业务数据从传统数据库向HBase迁移变的非常方便. 2.体系图 体系图中各个…
一.基本概念 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.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-…
一.概述 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…
一.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…
一.实时业务指标分析 1.业务 业务: 订单系统---->MQ---->Kakfa--->Storm 数据:订单编号.订单时间.支付编号.支付时间.商品编号.商家名称.商品价格.优惠价格.支付金额 统计双十一当前的订单金额,订单数量,订单人数 订单金额(整个网站,各个业务线,各个品类,各个店铺,各个品牌,每个商品 架构 支付系统+kafka+storm/Jstorm集群+redis集群 1.支付系统发送mq到kafka集群中,编写storm程序消费kafka的数据并计算实时的订单数量.订…
一.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-…
一.概述 今天起就正式进入了流式计算.这里先解释一下流式计算的概念 离线计算 离线计算:批量获取数据.批量传输数据.周期性批量计算数据.数据展示 代表技术:Sqoop批量导入数据.HDFS批量存储数据.MapReduce批量计算数据.Hive批量计算数据.***任务调度 ,hivesql .调度平台 .Hadoop集群运维 .数据清洗(脚本语言) .元数据管理 .数据稽查 .数据仓库模型架构 相关技术栈与应用 流式计算 流式计算:数据实时产生.数据实时传输.数据实时计算.实时展示 代表技术:Fl…
一.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…
一.概述 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.什么是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…
一.基本操作 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…
一.本地模式调试MR程序 1.准备 参考之前随笔的windows开发说明处:http://www.cnblogs.com/jiangbei/p/8366238.html 2.流程 最重要的是设置LocalJobRunner这个参数,这样mapreduce就变成一个线程在跑了! 而处理的数据及输出结果可以在本地文件系统,也可以在hdfs上 3.代码实现 以wordcount为例,只需在原来的Driver的main()方法中,对conf进行设置: // 设置本地运行 conf.set("mapred…
一.概述 1.什么是akka Akka基于Actor模型,提供了一个用于构建可扩展的(Scalable).弹性的(Resilient).快速响应的(Responsive)应用程序的平台. 更多入门的基础与介绍,参考:https://www.iteblog.com/archives/1154.html 入门系列推荐:http://www.cnblogs.com/tiger-xc/p/6785575.html akka官网:https://akka.io/ 2.Actor模型 Actor模型:在计算…
注:我们现在学的Scala Actor是scala 2.10.x版本及以前版本的Actor. Scala在2.11.x版本中将Akka加入其中,作为其默认的Actor,老版本的Actor已经废弃 一.概述 1.什么是actor Scala的Actor类似于Java中的多线程编程.但是不同的是,Scala的Actor提供的模型与多线程有所不同.Scala的Actor尽可能地避免锁和共享状态,从而避免多线程并发时出现资源争用的情况,进而提升多线程编程的性能.此外,Scala Actor的这种模型还可…
一.功能简述 1.笔记本管理(增删改) 2.笔记管理 3.共享笔记查询功能 4.回收站 效果预览: 二.库表设计 1.设计理念 将云笔记信息分别存储在redis和hbase中. redis(缓存):存储每个用户的笔记本信息 hbase(持久层):存储用户的笔记本信息.笔记本下的笔记列表.笔记具体信息. 2.设计概要 redis: hbase: // 分别是笔记本和笔记 3.hbase建表语句 create ‘nb’,’nbi’ create ‘n’,’ni’,’ci’ // 回顾建表语句,hba…
一.HA概述 1.引言 正式引入HA机制是从hadoop2.0开始,之前的版本中没有HA机制 2.运行机制 实现高可用最关键的是消除单点故障 hadoop-ha严格来说应该分成各个组件的HA机制——HDFS的HA.YARN的HA 详解: 通过双namenode消除单点故障 双namenode协调工作的要点: A.元数据管理方式需要改变: 内存中各自保存一份元数据 Edits日志只能有一份,只有Active状态的namenode节点可以做写操作 两个namenode都可以读取edits 共享的ed…