自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Scala快速入门

1.Scala六大特征Java和scala可以无缝混编,都是运行在JVM上的; 类型推测,不用指定类型; 并发和分布式(Actor,类似java多线程Thread); 特征trait,类似java的interface和abstract结合; 模式匹配,match case,类似java的switch case; 函数式编程,类似C的函数;2.Scala数据类型Scala所有类型都是类,Scala中Any是顶级父类,就是任意类型; Any下面两个体系 值类型(AnyVal)和引.

2020-10-13 16:33:28 333

原创 Docker快速入门四:Dockerfile

1.Dockerfile是什么Dockerfile是什么Dockerfile是用来构建docker镜像的文件,是由一系列命令和参数构成的脚本。Dockerfile构建三步骤①编写Dockerfile;②docker build,生成自定义镜像;③docker run,运行镜像。2.Dockerfile基础知识2.1Dockerfile基础每条保留字指令必须为大写字母,且后面跟随至少一个参数; 指令按照从上到下,顺序执行; #表示注释; 每条指令都会创建一个新的镜像层,并

2020-07-24 16:46:28 447

原创 Docker快速入门三:Docker数据卷

目录1.什么是数据卷2.如何添加数据卷2.1命令方式2.2Dockerfile方式3.使用数据卷3.1Docker与宿主机数据共享3.2Docker间数据卷共享1.什么是数据卷Docker数据卷类似虚拟机的共享文件夹。数据卷作用①用于容器数据持久化;②容器间数据共享。其中容器数据持久化不是说容器停止运行,数据还保存,而是容器删除,数据依然保存。Docker产生的数据,如果不通过docker commit生成新的镜像,使数据成为镜像的一部分保存下来...

2020-06-22 20:24:50 467

原创 Docker快速入门二:Docker配置国内镜像源、常用命令

1.配置国内镜像源Docker在默认安装之后,通过命令docker pull 拉取镜像时,默认访问docker hub上的镜像,在国内网络环境下,下载时间较久,所以要配置国内镜像仓库。修改方式如下://第一步:新建或编辑daemon.json# vi /etc/docker/daemon.json//第二步:daemon.json中编辑如下{ "registry-mirrors": ["http://hub-mirror.c.163.com"]}//第三步:重启docke

2020-06-13 18:05:49 65668 2

原创 Docker快速入门一:Docker产生背景、架构设计和安装

1. Docker产生背景存在问题① 开发和运维环境或配置不同,导致开发环境运行良好的交付产物在运维环境出问题,此类问题让人不胜其烦。② 传统运维过程中,如果线上有十台机器,每台都需要重新部署一次,重复劳动。以上出现了两种解决方案:虚拟机和容器虚拟机 vs 容器虚拟机在一定程度可以解决这些问题。虚拟机是虚拟出一套硬件后,在上面运行一套完整的操作系统,在该系统上再运行所需的应用,架构如下:server:宿主机硬件Host OS:宿主机操作系统Hypervisor:硬件模拟

2020-06-08 20:28:51 732

原创 Git快速入门

1.Git介绍Git的作者是Linux的创作者Linus。Git是版本管理工具,可以记录所有文件的所有版本,可以有效追踪文件变化,同时可以支持回滚到之前的状态。Git与github的关系Git是在本地使用的一个版本管理工具,其作用就是可以让你更好的管理你的本地程序。github是一个网站,开发者可以在github上建立远程仓库,将本地的git仓库上传到github远程仓库,与其他开发者协作。没有github的情况下,Git也可以在本地进行版本管理。Git与Github之间关系类似客户端

2020-06-04 18:46:12 314

原创 FastDFS快速入门三:FastDFS使用

同其他组件类似,有两种使用FastDFS的方法,一种是使用命令行的方式,另一种是通过API方式。1.命令行● 启动FastDFS的tracker服务fdfs_trackerd /etc/fdfs/tracker.conf● 重启trackerfdfs_trackerd /etc/fdfs/tracker.conf restart● 关闭trackerfdfs_trackerd /etc/fdfs/tracker.conf stop● 启动FastDFS的storage服

2020-05-28 15:44:03 1409

原创 FastDFS快速入门二:搭建流程

分别介绍基于源码进行单机版搭建,和基于Docker进行分布式搭建。一般实际开发中可以选择使用后者,这里介绍前者的作用是为了熟悉FastDFS的架构设计。1.基于源码单机版搭建配置依赖环境第一步:FastDFS是源码安装,先从官网下载源码,进行编译,编译依赖gcc环境,所以首先安装gcc。使用yum可以不管所依赖的库,自动寻找依赖关系。yum –y install gcc-c++第二步:FastDFS依赖libevent库,所以需要安装这个库。yum –y install lib

2020-05-20 14:38:03 278

原创 FastDFS快速入门一:简介与架构设计

FastDFS简介FastDFS(Fast Distributed File System-快速分布式文件系统)是一个开源的轻量级分布式文件系统。它的主要功能包括:文件存储,文件同步和文件访问,以及高容量和负载平衡。主要解决了海量数据存储问题,特别适合以中小文件(建议范围:4KB < file_size <500MB)为载体的在线服务。由于FastDFS不支持文件切分,所以不适合大文件存储,而HDFS可以存储超大文件,不适合存储大量小文件。FastDFS架构设计①系统组成Fast

2020-05-14 19:51:46 392

原创 Kafka快速入门四:Kafka监控

1. kafka监控使用插件对Kakfa进行监控,以可视化的形式监控Kafka集群。较常见的有Kafka Monitor和Kafka Manager。其中Kafka Monitor使用简单,但功能很弱。使用较多的是Kafka Manager。1.1 Kafka MonitorKafka Monitor的使用步骤如下所示:①上传jar包KafkaOffsetMonitor...

2020-03-21 14:02:13 733

原创 Kafka快速入门三:Kafka API使用

1.Producer API1.1Producer结构及发送消息流程Producer结构Producer由main和sender两个线程,以及一个线程共享变量RecordAccumulator组成。其中main线程有三个器:拦截器、序列化器、分区器。如下图所示,其中topic属于kafka server。Producer消息发送流程如上图所示,步骤如下:①ma...

2020-03-20 16:29:19 352

原创 Kafka快速入门二:架构设计

1.Kafka架构演进通过kafka架构演变过程可以更好的理解Kafka架构。第一阶段:原始状态,一个生产者多个消费者第二阶段:分区设计。Kafka的分区也类似Spark的分区,是针对一个topic的分区,当生产速度远大于消费速度时,topic越来越大,这时候可以进行分区,每个分区保存topic一部分数据。分区可以提高吞吐量。分区后,Producer将数据发往不同分区,每个...

2020-03-18 17:12:57 295

原创 Kafka快速入门一:基本概念、安装部署和命令行操作

1.基本概念1.1Kafka是什么Kafka是一个分布式的基于发布/订阅模式的消息队列,主要应用于大数据实时处理领域。1.2消息队列应用场景传统消息队列有三大应用场景: 1.异步处理 2.流量消峰 3.解耦1.3消息队列两种模式消息队列两种模式:点对点模式和发布/订阅模式。点对点模式点对点模式中生产者和消费者一对一,消费者收到消息后,这条消息...

2020-03-17 18:54:07 293 1

原创 Zookeeper快速掌握

1、Zookeeper是什么Zookeeper类似Eureka。Zookeeper负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper负责通知已经在Zookeeper上注册的观察者做出相应的反应。类似医院挂号平台的挂号提醒功能,患者(观察者)点击挂号提醒,医生出号后通知患者,Zookeeper提供的就是挂号提醒功能。(或者上课老师无法上课...

2020-03-11 19:14:08 198

原创 Sqoop快速掌握

Sqoop作用Sqoop就是一个小工具,用于将RDBMS与Hadoop(HDFS、HBase、Hive)之间数据互导,执行命令行就可以实现其功能。Sqoop原理Sqoop原理是将导入或导出命令翻译成mapreduce程序来实现。Sqoop使用1.导入数据“导入”概念指:从非大数据集群(RDBMS)向大数据集群(HDFS,HIVE,HBASE)中传输数据,叫做:导入,即使用i...

2020-03-10 16:39:17 177

原创 Spark无法做对数据的顺序性有要求的计算

先说结论:Spark无法做对数据的顺序性有要求的计算,原因是RDD有多个分区,而排序只能保证各个分区数据顺序性,无法保障全局数据的顺序性。1.缘起这是个让我困惑很久的结论了,最终的解答源于一个问题:根据车辆的轨迹信息,计算车辆的行驶里程。解决这个问题需要两步:①将车辆定位信息按时间戳进行排序;②使用reduce算子进行距离累加操作。原代码如下所示:carLocationIn...

2020-03-04 15:25:39 1125 1

原创 Spark离线作业编排一:Linux的crontab定时任务

概述Spark的离线作业进行编排主要有两种:第一种是使用Linux的crontab定时任务;第二种是使用组件(例如Oozie)进行编排。各自优缺点:crontab的优点是简单易行,缺点是如果多个作业之间存在先后关系,较难实现(比如前一个任务执行结束后,创建一个文件夹,后一个任务检测到文件夹后开始执行);Oozie的优点是较好地解决了多个Spark任务统筹编排,缺点是使用比较...

2020-02-27 16:16:26 450

原创 一次Spark程序运行缓慢原因排查

功能:判断车辆轨迹数据在指定区域内停留时间超过半小时。实现思路:车辆定位数据生成RDD,遍历RDD每个元素,判断是否在指定区域内,如果在,则累加计算停留时间,最后判断停留时间是否超过半小时。代码:sortLocationInfoRDD.foreachPartition( new VoidFunction<Iterator<CarLo...

2020-02-27 15:08:25 3942

原创 Spark操作Mysql数据库

概述Spark操作Mysql的方式有两种,一种是常见的JDBC(甚至mybatis),另一种是Spark SQL。JDBC跟Spark没有关联,是Java语言特性,可以使用JDBC将结果从Mysql中读出来,再使用Spark进行相应的运算,使用JDBC相对比较简单。Spark SQL相比JDBC的优势在于读取Mysql后的结果为DataFrame,可以直接使用Spark进行相应的...

2020-02-27 15:07:41 797

转载 java多线程总结

点击打开链接点击打开链接

2016-08-11 16:46:41 200

转载 java关键字总结

final:点击打开链接 此文章最后部分final修饰引用类型参数不能保证参数不会指向其他对象有问题。static:点击打开链接super:点击打开链接暂时保存

2016-08-05 16:27:02 259

转载 Android init进程之解析及运行init.rc文件`

一、init.rc是什么init.rc是Android启动后,用来设置系统环境以及需要执行的进程的配置文件。使用的语音叫android初始化语言。与init.rc相应的,还有init.{hardware}.rc,它的作用与init.rc类似。init.rc所在目录为/system/core/rootdir。二、Android初始化语言的语法介绍android初始化语言

2016-04-17 21:59:26 472

转载 Android系统之init进程

一、init进程的定义和作用init进程是Android系统启动后,由内核启动的第一个用户态进程。Android中所有进程都是由init进程创建。首先linux内核启动,然后在用户空间启动init进程,然后init进程再依次启动系统运行所需的其他进程。系统启动完成后,init进程作为守护进程监视其他进程。二、init进程的运行过程上图是init进程的启动流程图,在run_i

2016-04-11 23:15:56 623

转载 Android系统框架和开机流程

一、Android系统框架android系统采用软件堆叠(software stack)的架构,主要由操作系统、中间件、核心应用程序组成。得益于android为应用开发者提供了一套定义良好的软件框架,开发者即使不具备特别高深的专业知识,也能在短时间内开发出强大的android应用程序。

2016-04-10 17:04:30 675

转载 关于ARM9协处理器CP15及MCR和MRC指令

原文请参考:http://6xudonghai.blog.163.com/blog/static/336406292008724103317304/在基于ARM的嵌入式应用系统中,存储系统通常是通过系统控制协处理器CP15完成的。CP15包含16个32位的寄存器,其编号为0~15。访问CP15寄存器的指令MCR   ARM寄存器到协处理器寄存器的数据传送MRC   

2015-09-04 16:51:28 417

转载 ldr r0, =0x12345678的含义说明

ARM是RISC结构,数据从内存到CPU之间的移动只能通过L/S指令来完成,也就是ldr/str指令。比如想把数据从内存中某处读取到寄存器中,只能使用ldr比如:ldr r0, 0x12345678就是把0x12345678这个地址中的值存放到r0中。而mov不能干这个活,mov只能在寄存器之间移动数据,或者把立即数移动到寄存器中,这个和x86这种CISC架构的芯片区别最大的地方。x8

2015-09-04 10:44:13 10706 1

转载 android跨进程通讯二:ContentProvider总结

1、ContentProvider简介:在Android官方指出的Android的数据存储方式总共有五种,分别是:Shared Preferences、网络存储、文件存储、外储存储、SQLite。但是我们知道一般这些存储都只是在单独的一个应用程序之中达到一个数据的共享,有时候我们需要操作其他应用程序的一些数据,例如我们需要操作系统里的媒体库、通讯录等,这时我们就可能通过ContentPro

2015-08-16 10:15:54 455

转载 android跨进程通讯一:android中跨进程通讯的4种方式

开发Android APP或者RemoteService时,经常会需要用到进程间通信,这篇文章总体介绍了androd的跨进程通讯,感谢原文作者的分享,请点击:android中跨进程通讯的4种方式

2015-08-16 09:54:46 597

原创 adb常用命令总结

android开发中会经常用到adb命令,adb是android sdk的一个工具,它的常用命令(主要是自己在开发中用到过的)如下:adb

2015-08-09 10:55:46 385

原创 Android远程服务四:远程服务service端和client端的线程关系

service端RemoteService运行于一个独立的进程中,占用这个进程main线程;

2015-08-04 23:05:03 608

原创 Android远程服务三:android AIDL远程服务个人归纳总结

1、远程服务的client端和service端共有一套AIDL,这套AIDL在双方都需要放到相同的包中,AIDL就是双方的接口,manager代码没有必要放到service端。2、一个service可以有哪些AIDL?

2015-08-02 00:04:58 424

转载 Android远程服务二:Android 中的 Service 全面总结

在Android远程服务一中,先学习了Android远程服务的例子,本文学习Android服务的概念,感谢原文作者分享,总结的很好。原文请点击:点击打开链接。1、Service的种类  按运行地点分类:类别区别 优点缺点  应用本地服务(Local)该服务依附在主进程上, 服务依附在主进

2015-07-31 17:24:45 332

转载 Android远程服务一:android AIDL远程服务调用

本文转载自:点击打开链接AIDL是一种远程服务调用机制,写一个简单的例子,我想应该能让大家知道它的基本使用方法。这个例子实现的是两个应用之间的对象的数据的传递,例子比较简单,不过能体现AIDL的用法也就足够了。  首先,如果你只需要传递比较简单的数据,比如 java原始类型数据,string charsequence 或者list/map不过list/map中的数据也必须是基本数据类型

2015-07-31 16:24:07 353

原创

这段时间转去开发Android framework层和APP开发,接触了不少新的技术,开此博客用来记录自己的开发学习过程,以便以后翻阅查询,同时希望能给后学者一些帮助。

2015-07-31 11:44:23 189

空空如也

空空如也

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

TA关注的人

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