自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

GeorgeGuo

选择有时候比奋斗更重要

原创 Spark系列4- Spark Streaming

1 流计算静态数据和流数据静态数据类似存储在水库中的水,是相对静止不动的,如数据仓库中储存的数据、关系型数据库中存储的数据等。流数据是指在时间分布和数量上无限的一系列动态数据合体,数据记录是流数据的最小组成单元。静态数据和流数据的处理,分别对应两种不同的计算模式:批量计算和实时计算。数据的两种处理模型如下图所示。2 Spark StreamingSpark Streaming简介Sp...

2018-10-11 09:36:19 188

原创 Spark系列3 - Spark SQL

1 从Shark到Spark SQLSpark SQL的前生是Shark,即Hive on Spark。Shark本质是通过Hive的HQL进行解析,将HiveQL翻译成Spark上对应的RDD操作,然后通过Hive的Metadata获取数据数据库里的元数据,并根据元数据从HDFS上读取文件,最后由Shark将获取的数据放到Spark上运算。Shark提供了类似Hive的功能,区别是Hive将...

2018-09-28 18:51:46 207

原创 Spark系列2 - Spark RDD编程

一、RDD 编程基础1 RDD 创建从文件系统创建RDD textFileval part = sc.textFile("file:///root/software/spark-2.2.0-bin-hadoop2.6/README.md")val part = sc.textFile("hdfs://master:8020/sougou/README.md") <=> (等

2018-09-28 18:50:48 227

原创 Spark系列1 - Spark生态和RDD

1 Spark的生态Spark Core中的基本概念DAG(Directed Acyclic Graph), 有向无环图。Spark Core提供了有向无环图的分布式计算框架,并提供内存机制来支持多次迭代计算或者数据共享,大大减少了迭代计算之间读取数据的开销。RDD(Resilient Distributed Dataset),它是一个分布在一组节点中的只读对象集合,这些集合是弹性的,如...

2018-09-28 18:49:34 261

原创 大数据技术栈

大数据技术栈全貌下面自底向上介绍各个层的主要项目。1 采集层和传输层Sqoop在hadoop和关系型数据库之间转换数据。FlumeFlume是一个分布式的高可用的数据收集、聚集和移动的工具。通常用于从其他系统搜集数据,如web服务器产生的日志,通过Flume将日志写入到Hadoop的HDFS中。Canal数据抽取是 ETL 流程的第一步。我们...

2018-09-02 17:36:28 6768 2

原创 读《大型网站技术架构》之后的思考

《大型网站技术架构》这本书是李智慧著,电子工业出版社出版。阅读本书的收获是,书中勾勒的大型网站建设的蓝图,提升了我对网站架构整体的认知,如大型网站建设时常用的模式(问题以及对应的解决方案)、大型网站建站的要素(性能、可用性、可伸缩性等)。回想之前写的文章,”从lamp到高可用的web架构的演进“,文章只是从整体且偏运维的角度粗略的描述了构建一个高并发、高性能网站的迭代步骤,但未提炼出网站架构中...

2018-06-16 09:30:04 240

原创 使用openssl模拟CA和CA证书的签发

当使用ssl/tls进行加密通信时,必须要有数字证书。若通信只限制在局域网内,可以不向第三方机构申请签发证书,可以通过openssl模拟CA(Certificate Authority),并通过该CA签发证书。下文讲述在Centos7.3上使用openssl工具签发证书的具体步骤。1 生成模拟CA1.1 修改配置文件/etc/pki/tls/openssl.cnf打开opens...

2018-06-03 09:03:40 2425 3

原创 对称加密、单向加密和非对称加密

下文主要从加密算法的特征、常用加密算法和加密工具等方面,梳理和比较对称加密、单向加密和公钥加密的概念及其之间的联系。1. 对称加密采用单钥密码的加密方法,同一个密钥可以同时用来加密和解密,这种加密方法称为对称加密,也称为单密钥加密。常用的单向加密算法:DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合;3DES(Trip...

2018-06-02 23:40:41 4051 2

原创 Linux性能检测常用的10个基本命令

本文的内容主要来自对Netflix的一篇技术博客( Linux Performance Analysis in 60,000 Milliseconds(可能需要翻墙才能访问) ),并添加了一些自己的理解,仅供参考。一、常用检测性能的10个基本命令1. uptime$ uptime 23:51:26 up 21:31, 1 user, load average: 30.02...

2018-05-31 16:44:02 10323 1

原创 从lamp到高可用的web架构的演进

本文受互联网架构大会中美团、滴滴等互联网公司架构演进的启发,并结合自己的实践和实验,从宏观的角度讲述从简单lamp(linux apache mysql php)到高可用web架构的一步步迭代过程。下面的内容主要是从单一业务的角度考虑的,假设业务的复杂性不变,只有用户量和并发访问量的不断增加。简单的lamp架构最原始的web架构,一个httpd、php-fpm、mysql就可以...

2018-05-26 10:53:32 1879

原创 CentOS 7上用Docker Registry镜像构建本地私有仓库

使用registry搭建本地私有仓库,可以节省网络带宽、加快下载速度,同时也可以针对于公司内部使用的镜像,推送到本地的私有仓库中,以供公司内部相关人员使用。1 安装docker服务yum install -y dockersystemctl enable dockersystemctl start docker若docker daemon启动失败,执行docker ps会显...

2018-05-12 19:02:28 1595

原创 Kubernetes之核心概念(二)

Kubernetes核心概念要深入的理解Kubernetes的特性和工作机制,首先要掌握Kubernetes模型中的核心概念。从集群组件的角度来看,Kubernetes主要是主节点中的组件,如kube-apiserver、kube-scheduler等,工作节点中的组件,如kubelete、kube-proxy、Docker等;从资源抽象的角度来看,主要就是几个抽象的概念,如容器组(Pod)、...

2018-05-12 19:00:30 348

原创 Kubernetes之简介(一)

Docker和微服务基于Docker技术,开发者可以自由的将应用程序和基础镜像打包起来,发布到任何运行流行Linux系统的机器上执行,契合了容器“一次构建,到处运行”的核心理念。Docker的诞生,促进了微服务架构的快速发展,但是基于Docker的微服务架构仍然面临如何实现Docker集群的系统管理、容器的自动部署、编排、维护和扩展等问题。针对此,目前Docker官方提供的Swarm、Apache提

2018-04-27 23:13:53 250

原创 Docker常用操作命令总结

获取Docker镜像的命令 docker pull命令格式如下:docker pull [选项] [Docker Registry地址]<仓库名>:<标签>选项可以通过 docker pull –help 查看Docker Registry地址:<域名/IP>[:端口号], 默认地址是Docker Hub仓库名:仓库名是两段式名称,既 &l...

2018-04-21 18:45:03 4953 1

原创 C++11中std::reference_wrapper的理解

std::reference_wrapperreference_wrapper 将引用包装成一个对象,即引用的包装器;reference_wrapper 是一个引用包裹器,可以包裹一个指向对象或者指向函数指针的引用,既可以通过拷贝构造,也可以通过赋值构造;std::reference_wrapper的实例是一个对象,但是会隐式的转换为T&,因此std::reference_wra...

2018-04-21 17:59:43 2599

原创 C++11 中的std::function和std::bind

1. 可调用对象可调用对象有一下几种定义:是一个函数指针,参考 C++ 函数指针和函数类型;是一个具有operator()成员函数的类的对象;可被转换成函数指针的类对象;一个类成员函数指针;C++中可调用对象的虽然都有一个比较统一的操作形式,但是定义方法五花八门,这样就导致使用统一的方式保存可调用对象或者传递可调用对象时,会十分反锁。C++11中提供了std::functio...

2018-04-21 17:58:36 161

原创 网站支持https之三:Centos7.3 使httpd支持https

SSL的证书类型都有哪些,请参考:网站支持https之一:https原理和SSL证书类型 如何获取免费的SSL证书,请参考:网站支持https之二:腾讯云上免费获取SSL证书的步骤下文主要如何使用获取的SSL证书。1 拷贝证书到服务器主机上的默认目录为:/etc/ssl/certs Apache的对应的证书文件为:1_root_bundle.crt【拷贝到/etc/ss...

2018-04-21 17:55:12 2414

原创 网站支持https之二:腾讯云上免费获取SSL证书的步骤

本文主要介绍从腾讯云上获取免费SSL证书的过程,至于SSL的证书类型都有哪些,可以参考https原理和SSL证书类型。1. 从腾讯获取免费的SSL证书腾讯免费ssl证书获取链接:https://console.cloud.tencent.com/ssl 注意:申请时若未在腾讯云上进行实名认证,则会先跳转到实名认证。下面为免费申请页面,默认可以使用1年。 点击确定之后,进入如...

2018-04-21 17:54:37 4669

原创 网站支持https之一:https原理和SSL证书类型

1 https原理2 证书类型如图,SSL 证书按大类一般可分为 DV SSL 、OV SSL 、EV SSL 证书。有的也会叫做域名型、企业型、增强型证书,不同的厂商叫法可能有所不同,但差别不大。1)域名型SSL证书(DV SSL)即证书颁布机构只对域名的所有者进行在线检查,通常是验证域名下某个指定文件的内容,或者验证与域名相关的某条 TXT 记录;比如访问 [http|https]://http

2018-04-21 17:53:47 2016 1

原创 通过SSH隧道配置http代理

如何配置SSH隧道,请参考使用SSH隧道通过海外服务器访问外部网络,本文在前一篇的基础上继续探索Window上Socket5到http的转换,从而实现通过HTTP代理使iphone、ipad都可以通过设置http代理,实现访问外部网络。Privoxy转换socks5代理为Http代理Socket5的代理不能直接接收http请求,必须添加一层转换,将socket5类型的代理转换成http...

2018-04-21 17:52:19 9407

原创 C++ 函数指针和函数类型

函数指针和函数类型函数指针指向的是函数而非对象。和其他指针类型一样,函数指针指向某种特定类型。函数类型由它的返回值和参数类型决定,与函数名无关。bool length_compare(const string &, const string &);上述函数类型是:bool (const string &, const string &); 上...

2018-04-12 23:06:09 3182

原创 C++11 中的std::function和std::bind

1. 可调用对象可调用对象有一下几种定义: - 是一个函数指针,参考 C++ 函数指针和函数类型; - 是一个具有operator()成员函数的类的对象; - 可被转换成函数指针的类对象; - 一个类成员函数指针;C++中可调用对象的虽然都有一个比较统一的操作形式,但是定义方法五花八门,这样就导致使用统一的方式保存可调用对象或者传递可调用对象时,会十分反锁。C++11中提供了std...

2018-04-12 23:05:11 97

原创 C++11 std::move和std::forward

下文先从C++11引入的几个规则,如引用折叠、右值引用的特殊类型推断规则、static_cast的扩展功能说起,然后通过例子解析std::move和std::forward的推导解析过程,说明std::move和std::forward本质就是一个转换函数,std::move执行到右值的无条件转换,std::forward执行到右值的有条件转换,在参数都是右值时,二者就是等价的。其实std::move和std::fo

2018-04-11 20:16:09 691

原创 C++11中的右值引用和移动语义

右值引用是C++11中新增的一种新的引用类型,它可以通过减少内存的重复申请、拷贝和释放,有效的提高C++程序的性能。理解什么是右值引用,首先要理解C++11中的lvalue、rvalue、xvalue,详情请参考:C++11 中的左值、右值和将亡值.右值引用和普通的非常量引用的唯一区别是,非常量引用(non-const reference)通常绑定一个非临时变量,而右值引用通常绑定一个临时变量...

2018-04-11 20:15:03 217

原创 C++11 中的左值、右值和将亡值

C++98 中表达式值的类型只有左值和右值两种类型,可以取到地址的表达式就是左值,不是左值的值就是右值,而C++11中将表达式的值类型划分成了lvalue(左值)、rvalue(右值)、prvalue(纯右值)、xvalue(将亡值)、gvalue(泛左值) 5种。下文从基本概念并结合实际的例子区分C++11中的表达式值类型。基本概念表达式表达式的定义 定义: 由运算符(o...

2018-04-08 11:11:33 653 1

原创 C++ 和lua交互学习的三个例子

C++ 和 Lua 交互学习的三个例子

2017-04-22 15:53:06 553 1

原创 windows下基于Python的定时服务程序

写在前面假设你在阅读本文时,已经具有了在windows平台安装Python以及Python第三方模块的能力。Linux平台下面有crontab可以做系统的定时任务, windows下也有对应的定时任务。之前做一个项目,通过windows的计划任务调用php脚本定时给满足条件的用户发送邮件,但是定时任务执行的很不稳定,且针对每个任务都需要做一个单独的定时器,配置比较麻烦,还容易出错。于是就想到了用Py

2017-01-04 20:23:01 7083 5

原创 一个配置集群ssh互信的shell脚本

shell互信脚本#!/bin/sh## 1 delete .ssh directoryUserName="mongodb"rm -rf ~/.sshssh-keygen -t rsassh-keygen -t dsastartnode=7endnode=7for ((i=${startnode}; i<=${endnode}; i++));do ssh $UserN

2017-01-04 15:13:02 3928

原创 Centos7 编译安装lamp

CentOS7编译安装LAMP引言在CentOS7上可以直接使用yum安装LAMP(Linux+Apache[httpd]+Mysql+PHP),比手动编译安装LAMP要简单的多,但在实际的生产环境中都会手动编译LAMP,使用手动编译LAMP有以下几个优点方便扩展模块,如添加PHP的扩展模块、http扩展模块等,可根据实际需求进行配置;可以自由的选择安装较适合的版本,系统自带的httpd、mys

2016-11-20 18:17:59 5529 19

原创 多目录时Makefile 的编写方法

多目录时Makefile 的编写方法1 make分中预定义变量表$* 不包含扩展名的目标文件名称。$+ 所有的依赖文件,以空格分开,并以出现的先后为序,可能包含重复的依赖文件。$< 第一个依赖文件的名称。$? 所有的依赖文件,以空格分开,这些依赖文件的修改日期比目标的创建日期晚。$@

2016-08-14 20:20:51 12175 1

原创 系统的学习和总结VIM的使用

VIM命令的系统总结

2016-07-24 18:47:29 466

原创 我用Python写自动刷代理服务IP的经过

应朋友要求实现一个动态切换代理服务器IP的功能,朋友只发了一个博客链接给我,用Python做的,当时我对Python并不熟悉,但是那篇博客中的思路确实很清晰,于是决定安装Python,按照博客的思路,一步一步的走下去。做事之前,我需要搞明白,动态切换代理服务器IP到底是什么意思?具体的工作原理是什么?于是,搜索代理服务器,找到了squid(Linux下的一个开源代理法服务器软件),了解了传统代理服务

2016-03-26 21:23:45 5689 6

原创 使用squid实现普通的代理服务器

squid简介Squid cache(简称为Squid)是一个流行的自由软件(GNU通用公共许可证)的代理服务器和Web缓存服务器。Squid有广泛的用途,从作为网页服务器的前置cache服务器缓存相关请求来提高Web服务器的速度,到为一组人共享网络资源而缓存万维网,域名系统和其他网络搜索,到通过过滤流量帮助网络安全,到局域网通过代理上网。Squid主要设计用于在Unix一类系统运行。Squid的发

2016-03-18 21:06:53 9606

原创 使用MongoDB的MapReduce进行区域地震信息统计实验

创建集群集群各个节点名称192.168.100.101 Node1192.168.100.102 Node2192.168.100.103 Node3192.168.100.104 Node4配置各个节点的互信在各个节点上添加用户名为”mongo”,密码为”1”的用户。 在Node1上执行以下脚本:#!/bin/sh## 1 delete .ssh directoryUserNam

2016-03-05 21:18:36 652

原创 Apache Spark1.2.0 集群环境搭建

Apache Spark简介Apache Spark是一个开源集群运算框架。使用Spark需要搭配集群管理和分布式存储系统。Spark 支持独立、Hadoop YARN或者Apache Mesos 集群管理。Spark可以和Hadoop Distrubuted File System (HDFS), MapR File System (MapR-FS), Cassandra, OpenStack S

2016-02-23 14:00:42 1070

原创 升级Linux内核

升级Linux内核,包括Linux内核版本的介绍、下载、编译、升级,以及Linux内核升级过程中出现的错误及其解决方法。

2016-01-25 12:25:33 5867 6

原创 MySQL常用命令(一)

MySQL数据库的基本用法,常用命令总结

2016-01-18 14:14:14 452

原创 Linux的基础知识之用户、组合权限(一)

Linux的基础知识之用户权限管理、用户添加、用户分组

2016-01-12 16:31:28 2185

原创 linux 下 httpd 2.4 的编译安装

httpd 2.4 的编译安装 说明       相比于httpd2.2,httpd 2.4 依赖于更高版本的apr、apr-util,apr(apache runtime portable)是一个可以使apache跨平台运行的库。httpd2.4 需要1.4以上的版本的apr。同时,还要安装正则表达式的依赖(rpm -qi pcre)。apr和apr-util的下载地址: http://

2015-12-24 18:10:25 6166

原创 一个关于二维指针的问题

一个关于二维指针的问题

2015-11-08 14:52:46 460

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