- 博客(71)
- 收藏
- 关注
原创 互联网架构技术演进
一、互联网架构演进1. web1.0阶段用户通过浏览器访问网站服务器,往往服务器上的资源是静态的,仅仅包含html、js、css等内容,没有和用户进行交互,都是单向的,这是web1.0里面常见的模式。整个架构如下图所示:2. web2.0阶段到了web2.0,上面的架构中引入了数据库,用户和服务器之间有了一定的交互,用户可以增加删除和修改一些数据,这些数据存储在数据库里面...
2020-02-18 16:02:34 728
转载 NAT详解:基本原理、穿越技术(P2P打洞)、端口老化等
这是一篇介绍NAT技术要点的精华文章,来自华3通信官方资料库,文中对NAT技术原理的介绍很全面也很权威,对网络应用的应用层开发人员而言有很高的参考价值。1. IPv4协议和NAT的由来今天,无数快乐的互联网用户在尽情享受Internet带来的乐趣。他们浏览新闻,搜索资料,下载软件,广交新朋,分享信息,甚至于足不出户获取一切日用所需。企业利用互联网发布信息,传递资料和订单,提供技术支持,完成...
2019-09-24 14:10:53 806
原创 电商数仓项目系列一:数据仓库简介
一、数仓定义数据仓库顾名思义就是存储数据的仓库,不同于业务数据库用作业务支撑,数据仓库是分析系统最核心的组成部分,使用这些数据为我们的报表分析(各种销售指标),广告推广(在什么地方、什么渠道投放广告),app、网站优化(商品如何展示,排列),个性化推荐等服务领域提供数据支持。既然是数据仓库,那么数据仓库的数据从哪里来?在数据仓库中怎么存储?如何将源数据存储到数仓中,这些数据将来有什么用?下面分...
2019-09-10 14:03:31 4619
原创 git多人协作的日常6种场景
开篇:之所以写git基本工具的使用,主要原因是通过这几年的工作,发现身边很多人无法熟练使用这个工具,日常工作中将很多的时间浪费在这些问题上,而无法聚焦到自己的本职工作中,所以本篇将介绍git多人协作中的一些高频场景。一、环境准备我在github上新建了一个仓库oa,包含一个MIT的license文件。git仓库的地址是:git@github.com:mudongchun/oa.git 在...
2019-08-13 09:49:42 1510
原创 大数据环境搭建3:Apache Sqoop环境搭建
1. 下载sqoop安装包下载地址http://mirror.bit.edu.cn/apache/sqoop/1.4.7/2. 上传sqoop安装包,并安装解压安装tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C ../app3. 配置环境变量(1) vi /etc/profileexport SQOOP_HOME=/h...
2019-08-08 17:35:26 421 1
原创 大数据开发环境搭建2:Apache Hive环境搭建(centos7)
一、前提条件 1. 先搭建hadoop环境,具体参考Apache Hive环境搭建二、mysql安装(rpm方式安装,可以使用yum方式安装,更加智能,会自动安装依赖)1. 卸载mariadbrpm -qa | grep mariadbrpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_642. 解压tar -axvf ...
2019-08-07 17:56:58 211
原创 使用hql验证身份证号码的合法性
一、身份证号码的组成规则(1)第1、2位数字表示:所在省份的代码;(2)第3、4位数字表示:所在城市的代码;(3)第5、6位数字表示:所在区县的代码;(4)第7、8、9、10位代表出生年;(5)第11位、12位表示:出生月;(6)第13位、14位表示:出生日;(7)第15、16位表示:同年同月同日同地区出生的顺序;(8)第17位表示性别:奇数表示男性,偶数表示女性;(9)...
2019-07-31 14:32:10 454
原创 java算法高频面试题系列5:八皇后问题
1. 问题非常简单明了,一下是百度百科对于问题的介绍。八皇后问题是一个以国际象棋为背景的问题:如何能够在 8×8 的国际象棋棋盘上放置八个皇后,使得任何一个皇后都无法直接吃掉其他的皇后?为了达到此目的,任两个皇后都不能处于同一条横行、纵行或斜线上。八皇后问题可以推广为更一般的n皇后摆放问题:这时棋盘的大小变为n1×n1,而皇后个数也变成n2。而且仅当 n2 ≥ 1 或 n1 ≥ 4 时问题有解...
2019-07-27 13:50:17 278
原创 大数据环境搭建1:apache hadoop环境搭建(centos7)
1. 集群规划2. 修改主机名(三台机器)3. 设置ip地址 (如果有图形界面,可以直接通过图形界面进行设置,三台机器)4. 配置主机名映射(三台机器)5. 关闭防火墙和selinux(三台机器)6. 安装jdk(略)7. 拍摄快照,方便日后重新搭建环境8. 配置ssh免密码登录9. 下载apache hadoop2.7.710. 解压安装had...
2019-07-18 15:24:15 443
原创 scala编程入门3:Map与Tupple
package com.cs.testscalaimport scala.collection.mutableimport scala.collection.mutable._import scala.util.Sorting._object TestScala { def main(args: Array[String]): Unit = { // map与分为可变的m...
2019-07-14 23:28:29 293
原创 scala编程入门2:数组
一、 scala中的数组1. scala中的数组有两种,Array和ArrayBuffer,Array是定长数组,ArrayBuffer是变长数组。2. Array的使用如下: //1. 定义数组最简洁的方式 val arr1 = Array(1,2,3,4) val arr2 = Array("hello", "world") //2. 也可以这么定义...
2019-07-13 19:10:46 272
原创 idea安装scala插件
1. 查看自己的idea版本号,点击help -> about2. 查看版本号3. 在这个网址下载与idea版本对应的scala插件,注意需要与idea版本对应,否则安装不了。https://plugins.jetbrains.com/plugin/1347-scala/versions4. 安装scala插件(1)在菜单栏点击file -> Setting...
2019-07-13 17:25:12 2369
原创 scala编程入门1
一、windows环境的搭建1. jdk安装与环境变量的配置(省略)2. 下载scala安装包。地址:https://www.scala-lang.org/download/3. 安装scala。傻瓜式,连环境变量都不用配置(省略)4. 打开命令行窗口:键入scala -version5. 键入scala,如下图,证明scala环境已经ok。二、scala使用...
2019-07-10 22:28:19 232
原创 算法高频面试题4:链表操作相关的面试题
1. 链表属于比较基础的数据结构,看起来简单,实际上写起来并不简单,考察的是面试者的细心。2. 下面以C++语言实现一个单链表,其中囊括了大部分的单链表面试题。#include <iostream>using namespace std;class MyList { struct Node;public: //1. 构造函数,让head的value永远为NULL,...
2019-07-08 14:13:11 173
原创 java高频面试题1:volatitle关键字的理解
1. 前两篇文章可以很好的解决掉为什么volatitle关键字不能保证线程安全的问题,以及这个修饰词的作用。为什么volatile关键字保证不了线程安全线程安全(上)--彻底搞懂volatile关键字2. 既然volititle不能保证线程的安全性,那么在什么场景下使用volititle关键字呢?下面这篇文章会有帮助。正确使用 Volatile 变量...
2019-07-03 23:12:57 883
原创 算法高频面试题3:递归思想
1. 递归在面试题中非常常见。我所遇到的企业面试题中,几乎所有与树相关的面试题都需要用递归来解决,除了树之外,还有很大一部分其他类型的题目需要用递归来解。大致题目如下:(1)二叉树的前中后序遍历(2)二叉树最小深度(3)判读树是否为平衡二叉树……2. 递归思维,下面这篇博客介绍的非常浅显易懂。浅谈递归思想递归就这么简单3. 递归方法需要重点注意的地方,很多人都强调过...
2019-07-03 10:39:01 272
原创 算法高频面试题2:括号匹配算法
1. 给一串字符串,例如"a(bcbd){}";,判断(){}[]是否合法,‘({)}’是非法的, ‘({}){}’合法的。// check.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include <iostream>#include <stack>using namespace std;bool check2(st...
2019-07-02 19:08:19 223
原创 算法高频面试题1:单链表的反转核心代码
1. 链表相关的题目是比较简单的,但是一定要细心地写出代码,为了保证简单的题目回答正确,必须在纸上画图考虑。2. 单链表反转核心代码实现如下Node* reverse(Node* head) { Node* revHead = nullptr; Node* prev = nullptr; Node* cur = head; while (cur != nullptr) { N...
2019-06-26 11:22:26 384
原创 windows编译protobuf
1. 下载cmake,按照windows向导傻瓜式操作。地址如下:https://cmake.org/download/2. 下载probuff工程。地址如下:https://github.com/google/protobuf/releases3. 打开cmake。...
2019-06-25 22:14:05 1353
原创 史上最简单的数据建模教程一:实体关系建模
一、建模的流程1. 概念模型阶段。一般来说,概念模型阶段的主要任务是,通过5w1h的方法不断与客户沟通,搞清楚核心需求,这个项目的商业目的,都有哪些参与人员,人员角色是什么?都有哪些参与物件?行业常识。只要一张图搞定,花费时间应该在总项目时间的10%.2. 逻辑模型阶段实体定义和重要属性,比如客户、商品。实体之间的关系购买。占据项目的60%-70%的时间。如果实体超过100个,需要...
2019-05-30 22:33:57 6931
原创 spark环境搭建
1. spark源码编译(1)地址https://archive.apache.org/dist/spark/spark-2.4.0/spark-2.4.0-bin-sources.tgz2. 编译参考官网http://spark.apache.org/docs/latest/building-spark.html3. 执行下面的命令进行编译./dev/make-distri...
2019-03-14 17:27:06 169
原创 hadoop环境搭建
目录1. jdk1.8安装,环境变量配置2. 配置hostname3. 设置ip和hostname的映射关系4. 设置ssh免密码登录5. hadoop下载地址(百度搜索cdh5)6. 解压hadoop到~/app目录,并且配置环境变量7. 修改hdfs配置文件8. HDFS格式化9. 启动HDFS10. YARN配置11. 启动yarn1. jdk...
2019-03-14 16:00:26 221
原创 spark学习笔记3(使用spark Sql进行离线数据分析项目数据的可视化、yarn运行、优化)
八、数据可视化1. Echarts (百度)的使用2. 前面统计的结果存放在 Mysql 中,需要使用 Echarts展示出来3. 使用 Echarts (详见百度官网)(1) 从官网下载 echarts.min.js (2) 在 html 的头部引入echarts.min.js(3) 在官网复制需要的图形的脚本文件并进行相应的修改4.使用 idea 创建 web 项...
2019-03-13 11:29:59 1379
原创 spark学习笔记2(使用spark Sql进行离线数据分析项目)
网站日志分析实战.项目一、 用户行为日志概述1. 用户访问、浏览、搜索、点击等行为都会被记录在网站的服务器上。2. 用户的访问信息主要包括如下内容:(1)系统属性。(操作系统、浏览器)(2)点击的 url, 从什么 url 跳转过来(3) 用户的sessionI...
2019-03-12 21:56:58 4412
原创 spark学习笔记1
一、开发sql程序(1) new sql context)(2) val data = sql context.read ("joon").load (jsonfilepath) //返回的是张表(3)data.show() //可以直接使用show查看数据(4) 上传至服务器(5) 提交作业spark.submit --class --master -jars filep...
2019-03-12 17:24:19 246
转载 深入理解虚拟内存机制
原文转载自:https://www.jianshu.com/p/13e337312651概述现代操作系统了提供了一种对主存的抽象概念,叫做虚拟内存。它为每个进程提供了一个非常大的,一致的和私有的地址空间。虚拟内存提供了以下的三个关键能力:它将主存看成是一个存储在磁盘空间上的地址空间的高速缓存,主存中只保存活动区域,并根据需要在磁盘和主存之间来回传送数据。 它为内阁进程提供了一致的地址...
2018-09-11 18:14:10 30282 3
原创 STL图书笔记入门1.9:__STL_MEMBER_TEMPLATE
说明:本书为阅读侯捷STL源码剖析时所所看所想,纯属记录,而且很多时候,我的记录早就偏离了原书章节的主题。比如原书第1章1.9节中的主题是测试类模板里面是否可以定义函数模板,但是我却把主题偏离到了迭代器部分,这些纯属个人想法,所以不要大惊小怪;又例如,我在编译书中源码的过程中,发现VS2017编译不通过,顺手加了一些代码,以便让编译通过,这些新加的代码大多数没有任何意义,目的只是让代码编译通过而已...
2018-09-01 11:44:12 243
转载 Linux下getopt()函数的简单使用(转)
最近在弄Linux C编程,本科的时候没好好学啊,希望学弟学妹们引以为鉴。好了,虽然啰嗦了点,但确实是忠告。步入正题:我们的主角----getopt()函数。英雄不问出处,getopt()函数的出处就是unistd.h头文件(哈哈),写代码的时候千万不要忘记把他老人家include上。 再来看一下这家伙的原型(不是六耳猕猴):int getopt(int argc,c...
2018-08-23 14:05:14 174
转载 EOS白皮书中文版
摘要EOS.IO软件引入了一种新的区块链架构,意在实现去中心化应用的性能扩展。通过创建类似操作系统的结构,在此基础上可构建各种应用程序。该软件提供帐户、身份验证、数据库、异步通信以及在数以百计的CPU或群集上的程序调度。该技术的最终形式是形成一个区块链架构体系,能支持每秒数百万次交易、免除用户费用,并允许在受控区块链的背景下,迅速、便捷地发布去中心化应用程序。注意:本白皮书中所提到加密令牌...
2018-08-09 22:10:07 1872
原创 c++中删除迭代器指向的元素后,迭代器指向的被删除元素后面的元素
1. C++向容器中插入和删除元素的时候,迭代器会失效,下面是正确删除容器元素的做法void StatsServer::removeExpiredWorkers() { size_t expiredWorkerCount = 0; size_t expiredUserCount = 0; pthread_rwlock_wrlock(&rwlock_); // wri...
2018-07-26 16:30:14 2121
原创 bitcoind环境搭建
一、简介: 钱包有很多种,其中bitcoind就是其中的一种钱包。本文介绍bitcoin的安装。此外本博客将会是一个系列文章,记录自己一步一步搭建矿池的过程,如果有什么不足之处,请大家多提宝贵意见。二、注意事项:(1)本文中的命令都是亲自实践,均可复制。(2)本文所使用的环境是阿里云服务器,操作系统是ubuntu16.04版本。(3)本文安装的比特币全节点,安装需要磁盘空...
2018-07-16 22:20:58 4042 1
原创 开发笔记4——钱包、账户、keyeos、nodeos、cleos概念介绍
钱包可以看成是存放公钥和私钥的仓库。keyeos主要用来管理钱包nodeos主要用来提供基本的服务,相当于我们的主程序cleos提供命令行工具,和我们的主程序nodeos进行交互账户类似于生活中的账户,每个账户对应于一个密码,这个密码就是我们的公钥他们具体的关系如下图所示:...
2018-07-05 19:41:01 949
原创 开发笔记3
创建一个helloworld合约(1)在program中写如下合约代码.#include <eosiolib/eosio.hpp>#include <eosiolib/print.hpp>using namespace eosio;class hello : public eosio::contract { public: using contract::con...
2018-07-05 19:39:14 173
原创 开发笔记2
第二节 部署贸易币合约(1)不同于代币,贸易币合约提供了储蓄,提款、借贷、收款等接口,可以和esio.token合约对比,esio.token只是提供了创建代币、发行代币和转账几个接口 void createx( account_name creator, asset initial_supply, ...
2018-07-05 19:38:16 222
原创 开发笔记1
1. 创建钱包,会返回钱包的密码,没有钱包密码,就取不出钱包里保存的密钥。注意钱包过一定时间会锁定,解锁钱包也需要钱包密码。注意创建的钱包文件在home目录下的eosio-wallet目录,需要删除钱包的时候只要删除这个文件就可以了。./cleos wallet create -n yangtwallet | tee -a ~/log.txt2. 创建密钥对。密钥对将来会保存在钱包中ubuntu@...
2018-07-04 18:17:16 198
原创 智能合约的web端编写
1. 之前写的智能合约都是运行在后台,今天就写一个运行在web端的智能合约。在git BASH中输入:npm init,一路回车,为我们的工程生成了pakage.json文件,用来配置和管理工程的。2. 安装web服务器。web项目当然需要web服务器了。输入命令npm install lite-server 。需要等几分钟。3. 在vscode中新建一个src目录用来存储资源文件。4. 在vsc...
2018-06-24 18:37:46 523
原创 区块链去中心化应用DAPP开发之智能合约的部署
1. 首先用vscode来写一个合约。pragma solidity ^0.4.17;contract Adopt{ address[16] public adopter; function adopt(uint petId) public returns (uint){ require(petId >= 0 && petId <=15); ...
2018-06-24 10:59:15 1436 2
原创 去中心化区块链应用(DAPP)windows开发环境配置
开发去中心化区块链应用必须按照下面的步骤来配置开发环境,下面罗列的工具一个都不能少,而且请严格按照下面的顺序进行安装。1. 安装node.js。这一步非常简单,按照windows安装向导一路next就可以了,这里不再多说,下载时只要选择windows版本即可。安装官网:https://nodejs.org/en/2. 安装git。truffle官网推荐,使用git BASH安装truffle,这里...
2018-06-23 17:56:35 3342 1
原创 VS2017创建静态库lib和使用静态库
1. 打开vs2017, 新建项目,选择新建静态库项目,然后点击确定。2. 右键单击testlib的“头文件”,以此选择“添加” “新建项”,最后按下图更改。3. 在头文件中添加函数的声明。4. 右键“源文件”,依次选择“添加” “新建项”5. 在源文件中添加函数的实现6. 右键项目,点击“生成解决方案”7.右键项目,选择“在资源管理器中打开文件夹”, 可以看到生成的目录结构,至此已经生成了静态库...
2018-06-19 22:35:26 28977 6
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人