04 2019 档案
摘要:一、Redis简介 Redis是一种基于键值对(key-value)的NoSQL数据库,与很多键值对数据库不同的是,Redis中的值可以是由string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合)、Bitmaps(位图)、HyperLogLog、GEO(地理信
阅读全文
摘要:设计模式 代理模式 一、定义:代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。通俗的来讲代理模式就是我们生活中常见的中介。 说明:例如我想租房子,虽然我可以去统计有哪些房子正在出租,每个房子是什么样的户型,房子的价格等。。。,但我就想租个房子,只想选择租或不租,不想去了解房源信
阅读全文
摘要:Kettle——shell交互命令 在kettle上开发了job或transform可以以单独的文件存在,也可以存放在资源库中。调用这些程序可以通过shell脚本调用,记录下: 资源库中的job: 单个文件的job: 单个文件的transform: kitchen.sh 相关参数说明 pan.sh
阅读全文
摘要:1、查询所有表的外键 2、禁用所有外键约束, 使用下面的sql生成对应sql脚本: 生成的sql类似下面的语句: 3、启用所有外键约束, 使用下面的sql生成对应sql脚本: 生成的sql类似下面的语句: 生成的sql类似下面的语句: 本文来自 麦田 的CSDN 博客 ,全文地址请点击:https:
阅读全文
摘要:Oracle统计信息 统计信息主要是描述数据库中表,索引的大小,规模,数据分布状况等的一类信息。例如,表的行数,块数,平均每行的大小,索引的leaf blocks,索引字段的行数,不同值的大小等,都属于统计信息。CBO正是根据这些统计信息数据,计算出不同访问路径下,不同join 方式下,各种计划的成
阅读全文
摘要:一、ORACLE中常见执行计划 表访问的执行计划 1、table access full:全表扫描。它会访问表中的每一条记录。 2、table access by user rowid:输入源rowid来自于用户指定。 3、table access by index rowid:输入源rowid来自
阅读全文
摘要:scala操作外部数据 一、scala读取文件及网络数据 二、scala读取mysql数据 三、scala读取xml文件
阅读全文
摘要:scala隐式转换 一、需求:为一个类添加一个新的方法 java:动态代理 scala:隐式转换 隐式转换例子: 1、man to superMan 2、java IO中File类是没有read方法的,我们可以通过隐式转换添加read方法 二、隐式转换切面封装 上面两个小例子中隐式转换函数和业务代码
阅读全文
摘要:scala函数高级操作 一、字符串高级操作 多行字符串和插值 二、匿名函数 三、currying函数(柯里化函数) 柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术。 四、高阶函数 高阶函数(High
阅读全文
摘要:scala模式匹配 1.基础match case(类似java里switch case,但功能强大些) 2、带条件的模式匹配 3、Array模式匹配 4、List模式匹配 5、类型匹配 6、异常处理 7、class模式匹配 8、Some,None模式匹配
阅读全文
摘要:Scala集合 一、数组 二、List(有序的,可重复的) 三、Set(无序的,不可重复的) 四、Map(键值对) 五、Tuple(元组) 六、Option Some None 大多数语言都有一个特殊的关键字或者对象来表示一个对象引用的是“无”,在Java,它是null。在Java 里,null 是
阅读全文
摘要:Scala面向对象 三大特征:封装、继承、多态 1、类的定义和使用 2、构造器 3、继承 extends 4、抽象类 5、伴生类和伴生对象 如果有一个Class,还有一个与Class同名的Object 那么就称这个Object是Class的伴生对象,Class是Object的伴生类,其中伴生对象是一
阅读全文
摘要:一、函数的定义(def) 二、scala中的循环表达式 1)to 1 to 10 :表示1到10,包括1和10,也可以写作:1.to(10)。 默认步长为1,可以手动指定步长 2)Range Range也表示一段范围,但是与to的区别是:to是左闭右闭,而Range是左闭右开,也可以手动指定步长 3
阅读全文
摘要:基础语法 1)注意点 1)区分大小写 - Scala是大小写敏感的,这意味着标识Hello 和 hello在Scala中会有不同的含义。 2)类名 - 对于所有的类名的第一个字母要大写。 3)方法名称 - 所有的方法名称的第一个字母用小写。 4)程序文件名 - 程序文件的名称应该与对象名称完全匹配。
阅读全文
摘要:一、Scala简介 Scala 是 Scalable Language 的简写,是一门多范式的编程语言,设计初衷是实现可伸缩的语言并集成面向对象编程和函数式编程的各种特性。 二、Scala 环境搭建 1)、JDK安装 2)、下载scala二进制包 http://www.scala-lang.org/
阅读全文
摘要:Hive——连接方式 一.CLI连接 直接通过CLI连接hive,进行相关hive sql 操作。 直接使用 hive-1.1.0-cdh5.7.0/bin/hive 命令即可 二.HiveServer2/beeline HiveServer:指在hive服务器上启动一个服务(server),然后各
阅读全文
摘要:Hive——join的使用 hive中常用的join有:inner join、left join 、right join 、full join、left semi join、cross join、mulitiple 在hive中建立两张表,用于测试: 一、基本join使用 1、内关联([inner]
阅读全文
摘要:Hive——元数据表含义 1、VERSION -- 查询版本信息 2、DBS -- 存储Hive中所有数据库的基本信息 3、DATABASE_PARAMS --该表存储数据库的相关参数,在CREATE DATABASE时候用 4、TBLS --该表中存储Hive表、视图、索引表的基本信息 5、TAB
阅读全文
摘要:Hive——基本DML语句 DML:Data Manipulation Language(数据操作语言,与关系型数据库相似) 官方手册:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DML 一、加载数据到hive表中
阅读全文
摘要:Hive——基本DDL语句 DDL:Data Definition Language(数据定义语言,与关系型数据库相似) 官方手册:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL HiveQL DDL包括以下内容
阅读全文
摘要:Hive——环境搭建 相关hadoop和mysql环境已经搭建好。我博客中也有相关搭建的博客。 一、下载Hive并解压到指定目录(本次使用版本hive-1.1.0-cdh5.7.0,下载地址:http://archive.cloudera.com/cdh5/cdh/5/) 二、Hive配置:参考官网
阅读全文
摘要:Hive——简介 Hive 是基于 Hadoop 构建的一套数据仓库分析系统,它提供了丰富的 SQL 查询方式来分析存储在 Hadoop 分布式文件系统中的数据, 可以将结构化的数据文件映射为一张数据库表,并提供完整的 SQL 查询功能.可以将 SQL 语句转换为 MapReduce 任务进行运行,
阅读全文
摘要:hadoop 完全分布式环境搭建 1、虚拟机角色分配: 每台机器配置好hostname,hosts:/etc/hostname 中配置好hostname /etc/hosts 中配置好hosts: 2、sskey免登录设置 1)ssh-keygen -t rsa (会在.ssh目录生成公钥和私钥,每
阅读全文
摘要:一、Combiner 在MapReduce编程模型中,在Mapper和Reducer之间有一个非常重要的组件,主要用于解决MR性能瓶颈问题 combiner其实属于优化方案,由于带宽限制,应该尽量map和reduce之间的数据传输数量。它在Map端把同一个key的键值对合并在一起并计算,计算规则和r
阅读全文
摘要:一、代码实现: 二、运行结果: 调用: 输入的文件内容: 输出的结果:
阅读全文
摘要:一、MapReduce1.x架构 1)jobTracker:JT 作业的管理者 将作业分解成一堆任务:Task(MapTask和ReduceTask) 将任务分派给TaskTracker(TT)运行 作业监控、容错处理(task作业挂了,重启task的机制) 在一定的时间间隔内,JT没有收到TT的心
阅读全文
摘要:执行步骤:1)准备Map处理的输入数据 2)Mapper处理 3)Shuffle 4)Reduce处理 5)结果输出 三、mapreduce核心概念: 1)split:交由MapReduce作业来处理的数据块,是MapReduce最小的计算单元。 HDFS:blocksize 是HDFS中最小的存储
阅读全文
摘要:Centos7 安装Oracle11g Express Edition 下载地址:https://download.oracle.com/otn/linux/oracle11g/xe/ 一、安装相关依赖包:yum -y install binutils* compat-libcap1* compat
阅读全文
摘要:Yarn环境搭建(基于hadoop-2.6.0-cdh5.7.0 伪分布) 1)配置文件 etc/hadoop/mapred-site.xml: etc/hadoop/yarn-site.xml: 2)启动yarn相关进程 3)验证 (1):jps [hadoop@hadoop01 sbin]$ j
阅读全文
摘要:工作中遇到要根据文件中某个字段分割成多行文本的处理,想到用awk处理,这里记录下: 问题: 原文件:假设一共2个字段,用“|”分割,其中第二个字段用“#”分割,但该字段中也有不含“#”的值和空值 要求:根据第二个字段,若含#,将这条数据根据#分割成多条数据,无#和无值的行不变 用awk解决: 1、将
阅读全文
摘要:Linux服务器相关性能的命令 一、查看服务器性能信息的相关命令 1、cpu信息查看 cpu分为物理cpu和逻辑cpu 物理cpu:实际物理服务器插槽上cpu的个数,可以通过physical id不重复的个数来统计: 逻辑cpu:现在通常一个cpu都是多核心的,加上intel的超线程技术(HT),
阅读全文
摘要:awk:报告生成器,适合文本处理,格式化后显示。通常awk是是以文件的一行为单位来处理的。 一、使用语法:awk [options] 'BEGAN{} /PATTERN/ { action } END{}' file1,file2...................................
阅读全文
摘要:Java 8的日期/时间API,有篇不错的文章,直接转载 原文链接: journaldev 翻译: ImportNew.com - Justin Wu译文链接: http://www.importnew.com/14140.html Java 8中的日期/时间(Date/Time)API是开发人员最
阅读全文
摘要:AIO实现非阻塞通信 java7 NIO2 提供了异步Channel支持,这种异步Channel可以提供更高效的IO,这种基于异步Channel的IO被称为异步IO(Asynchronous IO) IO操作分为两步:1、程序发出IO请求 2、完成实际的IO操作 阻塞和非阻塞IO是根据第一步划分的:
阅读全文
摘要:1、半关闭的Socket 前面的服务器和客户端通信时总是以行为最小数据单位,但是在某些协议里,通信的数据单位可能是多行的,当出现多行数据时就 出现一个问题:Socket输出流如何表示输出数据已经结束。 在IO中,如果表示输出已经结束,可以通过关闭输出流来实现,但在网络通信中则不同通过关闭输出流表示输
阅读全文
摘要:基于TCP协议的网络编程 TCP/IP协议是一种可靠的网络协议,它的通信的两端各自建立一个Socket,从而在通信的两端之间形成网络虚拟链路。 Java使用Socket对象来代表两端的通信端口,并通过Socket产生IO流来进行网络通信。 1、ServerSocket java中能接收其他通信实体连
阅读全文
摘要:基本网络支持 java.net包主要为网络编程提供支持。 1、InetAddress InetAddress类代表IP地址,还有两个子类:Inet4Address、Inet6Address。 2、URLDecoder和URLEncoder 当URL地址里包含非西欧字符的字符串时,系统会将这些非西欧字
阅读全文
摘要:java网络编程 网络编程基础 1、常用的网络拓扑结构: 星型网络、总线网络、环线网络、树形网络、星型环线网络 2、通信协议的组成 通信协议通常由3部分组成: 语义部分:用于决定通信双方对话类型 语法部分:用于决定通信双方对话格式 变换规则:用于决定通信双方的应答关系 3、OSI模型和TCP/IP模
阅读全文
摘要:线程相关类 java还为线程安全提供了一些工具类。 一、ThreadLocal类(Thread Local Variable) ThreadLocal类,是线程局部变量的意思。功用非常简单,就是为每一个使用该变量的线程提供一个变量值的副本,使没一个线程都可以独立的改变自己的副本,而不会和其他副本冲突
阅读全文
摘要:线程池 由于启动一个线程要与操作系统交互,所以系统启动一个新的线程的成本是比较高的。在这种情况下,使用线程池可以很好的提升性能,特别是程序中涉及创建大量生命周期很短暂的线程时。 与数据库连接池类似,线程池在启动时就创建了大量的空闲的线程,程序将一个Runnable对象或者Callable对象传给线程
阅读全文
摘要:线程通信 当线程在系统内运行时,程序通常无法准确的控制线程的轮换执行,但我们可以通过一些机制来保障线程的协调运行 一、传统的线程通信 传统的线程通信主要是通过Object类提供的wait(),notify(),notifyAll() 3个方法实现,这三个方法必须由同步监视器对象来调用 wait():
阅读全文