- 博客(43)
- 资源 (2)
- 收藏
- 关注
原创 scala扩展
一.模式匹配1.match表达式类似Java switch语句能处理任何类型不需要break能够生成值//基本模式匹配def matchTest(x: Int): String = x match { case 1 => "one" case 2 => "two" case _ => "many"}matchTest(3) // manymatchTest(1) // one//模式守卫(在模式后面加上if 条件)def matchTest2(
2020-07-31 12:29:28 2884
原创 大数据常见面试题之scala
文章目录1.偏函数2.函数柯里化3.scala的apply和unapply方法的作用4.元组5.scala优点6.scala中关键字implicit用法7.特质与抽象类的区别8.闭包9.Unit10.ArrayBuffer和Array区别11.Java和Scala的区别1.偏函数偏函数(Partial Function)是数学概念,它不是函数的一种,它跟函数是平行的概念.scala中的偏函数是一个Trait,类型为PartialFunction[A,B],其中接收一个类型为A的参数,返回一个类型为B
2020-07-31 09:30:07 624
原创 大数据常见面试题之JVM
一.请说明一下Java虚拟机地作用是是什么解释运行字节码程序消除平台相关性JVM将Java字节码解释为具体平台地具体指令.一般地高级语言如果在不同地平台上运行,至少需要编译成不同地目标代码.而引进JVM之后,Java语言在不同地平台上运行时不需要重新编译.Java语言使用模式Java虚拟机屏蔽了与具体平台相关地信息,使得Java语言编译程序只需生成在Java虚拟机上运行地目标代码(字节码),就可以在多平台上不加修改地运行.Java虚拟机在执行字节码时,把字节码解释成具体平台上地机器指令执行二.Java
2020-07-31 08:20:32 418
原创 scala OOP面向对象
文章目录一.类(class)二.单例对象 object三.特质 trait四.其他1.内部类2.样例类 case class3.泛型类4.类型边界5.型变6.包与包对象五.练习一.类(class)类通过class关键字定义类通过new关键字创建实例类拥有成员变量和方法类的成员默认为public,也支持private、protected类中无法定义静态成员变量和方法类无需明确定义构造方法,通过构造参数列表声明为类的一部分类成员访问修饰符JavaModifierClass
2020-07-30 11:37:49 3514
原创 scala函数
文章目录一.Java Lambda表达式二.Scala方法和函数三.Scala函数练习练习1:函数定义练习2:匿名函数练习3:高阶函数练习4:嵌套函数一.Java Lambda表达式函数式接口一种只含有一个抽象方法声明的接口可以使用匿名内部类来实例化函数式接口的对象通过Lambda表达式可以进一步简化代码Lambda语法(parameters) -> expression(parameters) ->{ statements;...... }示例如下://Java8 方
2020-07-29 10:08:29 3272
原创 scala中关键字implicit的常用用法详解
文章目录一.隐式参数和隐式值二.隐式函数,用于类型不匹配时自动转换类型或关联两个类三.隐式类1.定义隐式类2.创建隐式类的参数类型对象,调用隐式类方法一.隐式参数和隐式值用法如下:package Implicitobject ImplicitDemo_value_parameter { def main(args: Array[String]): Unit = { //声明隐式值,注意同种类型只能声明一个值,否则运行错误(ambiguous--模糊的无法确定到底引用哪个值)
2020-07-28 19:22:09 4018
原创 大数据常见面试题之Java基础
一.HashMapjdk7:数组+链表jdk8:数组+链表+红黑树HashMap中维护了Node类型的数组table,初始为null1.创建对象时,将加载因子loadFactor初始化为0.75,其他成员保持默认值2. 添加元素时,相当于putVal方法,需要先将元素的key哈希值取出来,并且运算得出在数组中存放索引如果该索引出没有其他元素,则直接存放若该索引处有其他元素,需要先判断是否相等,若相等则覆盖,若不相等则继续判断是否为树结构或链表结构,根据不同结构进行不同处理3.如果需要扩容,则
2020-07-28 09:41:36 627 1
原创 hadoop面试题
一、不定项选择题(1-12题每题2分,13题3分,共27分)下面那个程序负责HDFS数据存储(C)?A NameNodeB JobtrackerC DatanodeD secondaryNameNodeE tasktracker关于SecondaryNameNode哪项是正确的(C)?A 它是NameNode的热备。B 它对内存没有要求。C 它的目的是帮助NameNode合并编辑日志,减少NameNode启动时间。D SecondaryNameNode应与NameNode部署到
2020-07-27 12:28:05 6289
原创 RandomAccessFile 随机读写流
一.随机读写流的介绍RandomAccessFile-随机读写流,不属于任何流对象,直接继承了Object类,既可读又可写可随机访问读和写以前学的流对象 读取从文件开头读,写末尾追加或开头覆盖RandomAccessFile在文件任意位置上开始读和写,隐含了大型字节数组,文件都是由字节组成,文件二进制都放在自己的数组中有一种游标或索引到隐含数组中,称为文件指针输入操作从文件指针开始读取字节,并使文件指针超过读取的字节数。 如果在读/写模式下创建随机访问文件,则输出操作也可用;输出操作从文件指针
2020-07-26 11:52:13 586
原创 scala高阶函数练习
文章目录1.编写函数values(fun:(Int)=>Int,low:Int,hight:Int)该函数输出一个集合,对应给定区间内给定的给定函数的输入和输出比如values(x=>x*x,-5,5)应该产出一个对偶集合(-5,25)(-4,16)(-3,9)...(5,25)2.如何用reduceLeft得到数组中的最大元素3.用to和reduceLeft实现阶乘函数,不得使用循环或递归4.编写函数largest(fun:(Int)=>Int,inputs:Seq[Int]),输出在给
2020-07-25 09:01:54 8244 6
原创 scala数组练习
文章目录1.有一个10个位置的数组,第一个位置放的是3,后面每个位置都是前面一个位置的两倍加1,打印这个数组,然后将数组中奇数位置和偶数位置呼唤2.随机10个0到100之间的整数放入数组中,再将数组中的最大值和最小值去掉剩下的数放入新数组,数的顺序不能改变,打印数组3.输入一个整数,将这个整数的所有约束放入一个数组,打印数组1.有一个10个位置的数组,第一个位置放的是3,后面每个位置都是前面一个位置的两倍加1,打印这个数组,然后将数组中奇数位置和偶数位置呼唤package com.sunyong//
2020-07-24 11:20:15 14151
原创 linux定时任务介绍
# cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业 一般都默认安装了#常用命令如下:# 启动服务systemctl start crond# 关闭服务 systemctl stop crond#重启服务 systemctl restart crond# 重新载入配置systemctl reload crond# 查看服务状态 systemctl status crond#查看root用户的crontab任务crontab -l#删除ro
2020-07-23 11:46:07 287
原创 scala练习
下表是学生信息表,包括姓名,性别,年龄1.使用studentList集合存储以上内容,遍历studentList打印输出2.创建集合boyList、girlList、girlgt18List 、top3List、girltop3List3.把所有男生存入boyList ,女生存入girlList ,大于等于18岁的女生存入girlgt18List4.年龄最大的3个学生放入top3List,年龄最大的3个女生放在girltop3List5.计算所有学生的平均年龄,所有男生的平均年龄,所有女生的平均
2020-07-23 08:37:28 13691
原创 scala数组集合函数大全
方法名描述返回值类型举例结果apply(int i)按下标取数组数据 同a(i)数组元素类型Array(1 ,2,3,4,5).apply(3)res45: Int = 4++合并数组返回一个新数组,若不同类型以左边为准左边类型Array(1 ,2) ++ List(7,8,9)res44: Array[Int] = Array(1, 2, 7, 8, 9)union合并两个序列,同操作符 ++左边类型Array(1,2) union List(...
2020-07-22 21:22:36 8999
原创 Sqoop介绍及数据迁移
一.Sqoop概述Sqoop是一个用于在Hadoop和关系数据库之间传输数据的工具将数据从RDBMS导入到HDFS、Hive、HBase从HDFS导出数据到RDBMS使用MapReduce导入和导出数据,提供并行操作和容错目标用户系统管理员、数据库管理员大数据分析师、大数据开发工程师等二.Sqoop操作1.从RDB导入数据到HDFSsqoop import \--connect jdbc:mysql://localhost:3306/retail_db \--driver com
2020-07-22 12:35:11 7306 1
原创 HBase进阶
文章目录一.HBase REST API二.Phoenix概述三.Hive与HBase集成使用场景1.Hive与HBase集成原理三.Hbase常用命令1.名称空间(NameSpace)2.安全权限(Security with GRANT)3.权限管理命令(revoke & user_permission)四.Region管理五.HBase Compaction - LSM一.HBase REST API使用REST API操作HBase1.start/stop rest service
2020-07-21 12:18:40 457
原创 NoSQL综述及HBase基础
文章目录一.NoSQL1.什么是NoSQL2.NoSQL和关系型数据库对比如下表3.NoSQL和BI、大数据的关系二.Hbase1.概述2.HBase发展历史3.应用场景3.1.增量数据-时间序列数据3.2.信息交换-消息传递3.3.内容服务-Web后端应用程序3.4.HBase应用场景示例4.Apache HBase生态圈5.HBase分布式环境部署见如下链接6.HBase架构7.HBase Shell8.使用Java API操作HBase一.NoSQL1.什么是NoSQLNoSQL:not onl
2020-07-20 12:15:46 15390
原创 scala入门
文章目录一.Scala概述1.特性2.Scala变量与常量二.Scala流程控制语句1.if2.Scala循环控制三.Scala数组,元组,集合1.Scala数组2.Scala元组3.Scala集合4.Scala Stream & Vector一.Scala概述1.特性面向对象特性每个值都是对象对象的数据类型和行为由类(Class)和特征(Trait,类似于interface)描述利用特征实现混入式多重继承函数式编程每个函数都是一个值支持高阶函数、柯里化(currying)、
2020-07-18 10:01:21 618
原创 使用Scala练习java经典习题之循环+数组
文章目录1.百钱买百鸡1.百钱买百鸡在这里插入代码片2、鸡兔同笼。鸡兔一共有50只,脚一共有160只,问鸡和兔各多少只?要求鸡兔至少一样一只3、公鸡2文,母鸡1文,小鸡半文,每种至少一只,100文买100只鸡有多少种可能PS:请使用循环获得所有可能并插入数组,使用遍历数组的方式输出4、请输入一个正整数年份,判断是否是闰年?在此基础上,随机生成一个int型二维数组(最大为4位数),计算其中闰年的个数,并输出该年份5、随机生成一个short型一维数组,从控制台输入一个数值,遍历数组查找,如果找到
2020-07-17 22:50:19 9875
原创 使用scala练习Java经典习题之循环
文章目录1.兔子生孩子2.求101-200素数个数3.水仙花数4.正整数分解质因数5.求最大公约数和最小公倍数6.求1000内完数7.猴子吃桃问题8.企业奖金问题9."1234"这4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?10.判断某年某月某日是这一年的第几天11.求第五人岁数1.兔子生孩子package com.sunyong/**一年之内一对兔子能繁殖多少对?于是就筑了一道围墙把一对兔子关在里面。已知一对兔子每个月可以生* 一对小兔子,而一对兔子从出生后第3个月起每月生一对
2020-07-17 10:04:36 9374
原创 使用zeppelin分析电子商务消费行为
文章目录一.任务描述二.问题分析问题分析1:Customer表问题分析2:Transaction表问题分析3:Store表问题分析1:Review表三.连接zeppelin**使用刚才创建的模板**1.从windows上传到linux 的/tmp/data目录下2.Understand the Data3. Upload the file to HDFS4.建表查表5.数据清洗6.Customer分析7.Transaction分析8.Store分析9.Review分析一.任务描述需求概述对某零售企业
2020-07-16 19:28:57 13798
原创 hive经典习题50题
-- 建库create database if not exists hql50;use hql50;-- 建表-- 课程表create table if not exists course(course_id int,course_name string,teacher_id int);-- 分数表create table if not exists score(student_id int,course_id int,score int);-- 学生表create table if n
2020-07-15 11:02:12 16153 1
原创 Hive函数及性能优化
一.Hive函数分类从输入输出角度分类标准函数:一行数据中的一列或多列为输入,结果为单一值聚合函数:多行的零列到多列为输入,结果为单一值表生成函数:零个或多个输入,结果为多列或多行从实现方式分类内置函数自定义函数1)UDF:自定义标准函数2)UDAF:自定义聚合函数3)UDTF:自定义表生成函数内置函数Hive提供大量内置函数供开发者使用标准函数1)字符函数2)类型转换函数3)数学函数4)日期函数5)集合函数6)条件函数聚合函数表生成函数查看函数用法的
2020-07-14 10:27:59 1154
原创 hive函数大全
为了方便开发人员使用函数,Hive提供了大量的内置函数,包括数学函数,类型转换函数,条件函数,字符函数,聚合函数,表生成函数等等,
2020-07-13 19:31:03 11149 2
原创 hive自定义函数
文章目录一.hive自定义函数介绍二.hive自定义函数开发1.需求:开发自定义函数,使得在指定字段前加上"Hello: "字样2.hive中UDF函数开发步骤3.功能实现一.hive自定义函数介绍当hive提供的内置函数无法满足业务需求时,可以考虑使用用户自定义函数(User-Defined Function,UDF)hive中常见的UDF有如下3中1)UDF一条记录使用函数后输出还是一条记录,如:upper/substr2)UDAS(User-Defined Aggregation Fun
2020-07-12 17:08:05 2978
原创 hive高级查询(二)
Hive聚合运算 - GROUP BYGROUP BY用于分组Hive基本内置聚合函数与GROUP BY一起使用如果没有指定GROUP BY子句,则默认聚合整个表除聚合函数外,所选的其他列也必须包含在GROUP BY中GROUP BY支持使用CASE WHEN或表达式select category, max(offervalue) from offers group by category;-- group by使用表达式select if(category > 4000, 'GOOD
2020-07-11 10:02:46 6167
原创 hive高级查询(一)
文章目录一.Hive查询 - SELECT基础1.查询语法解析2.练习1:SELECT及关联查询二. Hive JOIN – MAPJOIN三.Hive集合操作(UNION)四.装载数据1.INSERT表插入数据2. Hive数据插入文件3. Hive数据交换 - IMPORT/EXPORT五.hive数据排序1.order by2.SORT BY/DISTRIBUTE BY3. CLUSTER BY一.Hive查询 - SELECT基础1.查询语法解析SELECT用于映射符合指定查询条件的行Hiv
2020-07-09 19:45:51 5520
原创 hive基础
什么是Hive?基于Hadoop的数据仓库解决方案将结构化的数据文件映射为数据库表提供类sql的查询语言HQL(Hive Query Language)Hive让更多的人使用HadoopHive成为Apache顶级项目Hive始于2007年的Facebook官网:hive.apache.orgHive的优势和特点提供了一个简单的优化模型HQL类SQL语法,简化MR开发支持在不同的计算框架上运行支持在HDFS和HBase上临时查询数据支持用户自定义函数、格式成熟的JDBC和ODBC
2020-07-08 20:07:03 3230
原创 记录hive无法创建表的问题
一.报错异常如下:FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:An exception was thrown while adding/validating class(es) : Column length too big for column 'PARAM_VALUE' (max = 21845); use BLOB or TEXT i
2020-07-07 22:54:06 2966
原创 使用shell脚本安装hadoop高可用集群
文章目录一.创建一台虚拟机二.复制两台虚拟机三.启动集群四.脚本内容如下1.jdk2.hadoop和zookeeper集群划分192.168.56.120 hadoop01192.168.56.121 hadoop02192.168.56.122 hadoop03QuorumPeerMainQuorumPeerMainQuorumPeerMainJournalNodeJournalNodeJournalNodeNameNodeNameNodeNodeMana
2020-07-07 12:32:57 14273 2
原创 hadoop高可用集群的搭建
文章目录一.HDFS-HA 集群配置1.1 配置 HDFS-HA 集群1.2 启动 HDFS-HA 集群1.3 配置 HDFS-HA 自动故障转移二、YARN-HA 配置2.1 配置 YARN-HA 集群一.HDFS-HA 集群配置1.1 配置 HDFS-HA 集群1.HDFS 高可用集群规划,请保证 Hadoop 完全分布式和 ZooKeeper 完全分布式环境已经安装完成。hadoop集群搭建hadoop110hadoop111JournalNodeJournalNo
2020-07-06 16:03:03 9921
原创 分布式应用协调服务ZooKeeper
一.ZooKeeper简介Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目Zookeeper=文件系统+通知机制Zookeeper从设计模式上来看是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册一旦数据的状态发生变化,Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应,从而实现集群中类似Master/Slave管理模式二. ZooKeeper数据结构znodeZoo
2020-07-06 13:01:22 2203
原创 MySQL常用命令大全
文章目录一.命令行指令二.数据库操作三.表操作一.命令行指令1.启动mysql:net start mysql2.连接与断开服务器:mysql -h 地址 -P 端口 -u 用户名 -p 密码二.数据库操作1.查看当前数据库:select databases;2.显示当前时间,用户名,数据库版本:select now() ,user() ,version() ;3.创建库:create database [if not exists] 数据库名 数据库选项其中数据库选项:CHARAC
2020-07-05 16:37:13 13381 1
原创 详解hdfs读写文件流程
一.hdfs写数据流程hdfs dfs -put 要上传的文件的路径 hdfs路径1.客户端通过 Distributed FileSystem 模块向 NameNode 请求上传文件,NameNode 检查目标文件是否已存在,父目录是否存在。2.NameNode 返回是否可以上传。不能上传的话会抛出异常。3.确定可以上传,客户端请求第一个 block 上传到哪几个 datanode 服务器上。4.NameNode 返回 3 个 datanode 节点,假定分别为 dn1、dn2、dn3。5.
2020-07-04 17:46:44 7304 1
原创 详解MapReduce过程
一.MapReduce工作流程图片如下二.工作流程机制详解1.TextInputFormat读取文件详细解析追踪源代码后,我们会发现TextInputFormat这个类继承自FileInputFormat,而FileInputFormat这个类继承自InputFormat查看InputFormat的源码注释我们了解到这个类的作用为:1.验证作业的输入规格2.将输入文件分成逻辑块(默认大小等于block的大小(通常为128M)),然后将每个逻辑文件分配给一个单独的Mapper3.提供Reco
2020-07-04 10:17:35 7892 2
原创 分布式资源调度框架YARN
文章目录一.YARN产生背景二.YARN(Yet Another Resource Negotiator)概述三.YARN的基本架构核心组件(一)YARN架构(二) 核心组件1.ResouceManager2.YARN架构核心组件-NodeManager3. YARN架构核心组件-ApplicationMaster4. YARN架构核心组件-Container5. YARN的工作机制如下图:(三) YARN的资源调度器(四) YARN常用命令一.YARN产生背景Hadoop1.x版本最大的问题是资源问题
2020-07-03 13:16:21 2314 4
原创 详解数据库设计中的三大范式理论
文章目录一.第一范式(Normal Form,1NF)二.第二范式(2NF)一.第一范式(Normal Form,1NF)第一范式的目标是确保每列的原子性.如果每列(或每个属性值)都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式例如表1:表1:客人住宿信息表客人编号姓名地址客房号客房描述客房类型客房状态床位数价格入住人数C1001张三addr11001a栋1层单人间入住11281C1002李四addr22002
2020-07-02 15:11:10 3915
原创 使用MapReduce实现join操作
文章目录一.概述二.需求三.map+reduce实现join四.MapReduce Map端 join实现原理(没有reduce处理)一.概述熟悉SQL的读者都知道,使用SQL语法实现join是很简单的,只需要一条SQL语句即可,但是在大数据场景下使用MapReduce编程模型实现join还是比较繁琐的在实际生产中我们可以借助Hive,Spark SQL 等框架来实现join,但是对于join的实现原理我们需要掌握,这对于理解join的底层实现很有帮助,本文介绍如何使用MapReduce API 来实现
2020-07-02 13:15:22 1695
原创 Java&SQL 阶段考试错题集
文章目录一.Java部分1.选择题2.简答题3.编程题二.SQL部分1.简答题2.编程题一.Java部分1.选择题3.关于 Java 堆,下面说法错误的是()。A.所有类的实例都是在堆上分配内存。B.对象所占的堆内存是由自动内存管理系统回收。C.堆内存由存活和死亡的对象,空闲碎片区组成。D.数组是分配在栈中的错选A -->原因:对基本概念不熟悉正确答案D堆内存用于存放由new创建的对象和数组。 数组和对象在没有引用变量指向它的时候,才变成垃圾,不能再被使用,但是仍然占着内存,在随后
2020-07-01 21:45:59 1193
ip地址范围对应转换表
2020-08-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人