自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 互联网架构技术演进

一、互联网架构演进1. web1.0阶段用户通过浏览器访问网站服务器,往往服务器上的资源是静态的,仅仅包含html、js、css等内容,没有和用户进行交互,都是单向的,这是web1.0里面常见的模式。整个架构如下图所示:2. web2.0阶段到了web2.0,上面的架构中引入了数据库,用户和服务器之间有了一定的交互,用户可以增加删除和修改一些数据,这些数据存储在数据库里面...

2020-02-18 16:02:34 658

转载 NAT详解:基本原理、穿越技术(P2P打洞)、端口老化等

这是一篇介绍NAT技术要点的精华文章,来自华3通信官方资料库,文中对NAT技术原理的介绍很全面也很权威,对网络应用的应用层开发人员而言有很高的参考价值。1. IPv4协议和NAT的由来今天,无数快乐的互联网用户在尽情享受Internet带来的乐趣。他们浏览新闻,搜索资料,下载软件,广交新朋,分享信息,甚至于足不出户获取一切日用所需。企业利用互联网发布信息,传递资料和订单,提供技术支持,完成...

2019-09-24 14:10:53 684

原创 电商数仓项目系列一:数据仓库简介

一、数仓定义数据仓库顾名思义就是存储数据的仓库,不同于业务数据库用作业务支撑,数据仓库是分析系统最核心的组成部分,使用这些数据为我们的报表分析(各种销售指标),广告推广(在什么地方、什么渠道投放广告),app、网站优化(商品如何展示,排列),个性化推荐等服务领域提供数据支持。既然是数据仓库,那么数据仓库的数据从哪里来?在数据仓库中怎么存储?如何将源数据存储到数仓中,这些数据将来有什么用?下面分...

2019-09-10 14:03:31 4457

原创 git多人协作的日常6种场景

开篇:之所以写git基本工具的使用,主要原因是通过这几年的工作,发现身边很多人无法熟练使用这个工具,日常工作中将很多的时间浪费在这些问题上,而无法聚焦到自己的本职工作中,所以本篇将介绍git多人协作中的一些高频场景。一、环境准备我在github上新建了一个仓库oa,包含一个MIT的license文件。git仓库的地址是:[email protected]:mudongchun/oa.git 在...

2019-08-13 09:49:42 1262

原创 大数据环境搭建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 387 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 178

原创 使用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 405

原创 java算法高频面试题系列5:八皇后问题

1. 问题非常简单明了,一下是百度百科对于问题的介绍。八皇后问题是一个以国际象棋为背景的问题:如何能够在 8×8 的国际象棋棋盘上放置八个皇后,使得任何一个皇后都无法直接吃掉其他的皇后?为了达到此目的,任两个皇后都不能处于同一条横行、纵行或斜线上。八皇后问题可以推广为更一般的n皇后摆放问题:这时棋盘的大小变为n1×n1,而皇后个数也变成n2。而且仅当 n2 ≥ 1 或 n1 ≥ 4 时问题有解...

2019-07-27 13:50:17 255

原创 大数据环境搭建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 415

原创 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 264

原创 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 223

原创 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 2286

原创 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 175

原创 算法高频面试题4:链表操作相关的面试题

1. 链表属于比较基础的数据结构,看起来简单,实际上写起来并不简单,考察的是面试者的细心。2. 下面以C++语言实现一个单链表,其中囊括了大部分的单链表面试题。#include <iostream>using namespace std;class MyList { struct Node;public: //1. 构造函数,让head的value永远为NULL,...

2019-07-08 14:13:11 142

原创 java高频面试题1:volatitle关键字的理解

1. 前两篇文章可以很好的解决掉为什么volatitle关键字不能保证线程安全的问题,以及这个修饰词的作用。为什么volatile关键字保证不了线程安全线程安全(上)--彻底搞懂volatile关键字2. 既然volititle不能保证线程的安全性,那么在什么场景下使用volititle关键字呢?下面这篇文章会有帮助。正确使用 Volatile 变量...

2019-07-03 23:12:57 841

原创 算法高频面试题3:递归思想

1. 递归在面试题中非常常见。我所遇到的企业面试题中,几乎所有与树相关的面试题都需要用递归来解决,除了树之外,还有很大一部分其他类型的题目需要用递归来解。大致题目如下:(1)二叉树的前中后序遍历(2)二叉树最小深度(3)判读树是否为平衡二叉树……2. 递归思维,下面这篇博客介绍的非常浅显易懂。浅谈递归思想递归就这么简单3. 递归方法需要重点注意的地方,很多人都强调过...

2019-07-03 10:39:01 244

原创 算法高频面试题2:括号匹配算法

1. 给一串字符串,例如"a(bcbd){}";,判断(){}[]是否合法,‘({)}’是非法的, ‘({}){}’合法的。// check.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include <iostream>#include <stack>using namespace std;bool check2(st...

2019-07-02 19:08:19 194

原创 算法高频面试题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 356

原创 windows编译protobuf

1. 下载cmake,按照windows向导傻瓜式操作。地址如下:https://cmake.org/download/2. 下载probuff工程。地址如下:https://github.com/google/protobuf/releases3. 打开cmake。...

2019-06-25 22:14:05 1313

原创 史上最简单的数据建模教程一:实体关系建模

一、建模的流程1. 概念模型阶段。一般来说,概念模型阶段的主要任务是,通过5w1h的方法不断与客户沟通,搞清楚核心需求,这个项目的商业目的,都有哪些参与人员,人员角色是什么?都有哪些参与物件?行业常识。只要一张图搞定,花费时间应该在总项目时间的10%.2. 逻辑模型阶段实体定义和重要属性,比如客户、商品。实体之间的关系购买。占据项目的60%-70%的时间。如果实体超过100个,需要...

2019-05-30 22:33:57 6649

原创 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 144

原创 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 180

原创 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 1318

原创 spark学习笔记2(使用spark Sql进行离线数据分析项目)

网站日志分析实战.项目一、 用户行为日志概述1. 用户访问、浏览、搜索、点击等行为都会被记录在网站的服务器上。2. 用户的访问信息主要包括如下内容:(1)系统属性。(操作系统、浏览器)(2)点击的 url, 从什么 url 跳转过来(3) 用户的sessionI...

2019-03-12 21:56:58 4271

原创 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 208

转载 深入理解虚拟内存机制

原文转载自:https://www.jianshu.com/p/13e337312651概述现代操作系统了提供了一种对主存的抽象概念,叫做虚拟内存。它为每个进程提供了一个非常大的,一致的和私有的地址空间。虚拟内存提供了以下的三个关键能力:它将主存看成是一个存储在磁盘空间上的地址空间的高速缓存,主存中只保存活动区域,并根据需要在磁盘和主存之间来回传送数据。 它为内阁进程提供了一致的地址...

2018-09-11 18:14:10 30158 3

原创 STL图书笔记入门1.9:__STL_MEMBER_TEMPLATE

说明:本书为阅读侯捷STL源码剖析时所所看所想,纯属记录,而且很多时候,我的记录早就偏离了原书章节的主题。比如原书第1章1.9节中的主题是测试类模板里面是否可以定义函数模板,但是我却把主题偏离到了迭代器部分,这些纯属个人想法,所以不要大惊小怪;又例如,我在编译书中源码的过程中,发现VS2017编译不通过,顺手加了一些代码,以便让编译通过,这些新加的代码大多数没有任何意义,目的只是让代码编译通过而已...

2018-09-01 11:44:12 209

转载 Linux下getopt()函数的简单使用(转)

 最近在弄Linux C编程,本科的时候没好好学啊,希望学弟学妹们引以为鉴。好了,虽然啰嗦了点,但确实是忠告。步入正题:我们的主角----getopt()函数。英雄不问出处,getopt()函数的出处就是unistd.h头文件(哈哈),写代码的时候千万不要忘记把他老人家include上。 再来看一下这家伙的原型(不是六耳猕猴):int getopt(int argc,c...

2018-08-23 14:05:14 153

转载 EOS白皮书中文版

摘要EOS.IO软件引入了一种新的区块链架构,意在实现去中心化应用的性能扩展。通过创建类似操作系统的结构,在此基础上可构建各种应用程序。该软件提供帐户、身份验证、数据库、异步通信以及在数以百计的CPU或群集上的程序调度。该技术的最终形式是形成一个区块链架构体系,能支持每秒数百万次交易、免除用户费用,并允许在受控区块链的背景下,迅速、便捷地发布去中心化应用程序。注意:本白皮书中所提到加密令牌...

2018-08-09 22:10:07 1788

原创 c++中删除迭代器指向的元素后,迭代器指向的被删除元素后面的元素

1.  C++向容器中插入和删除元素的时候,迭代器会失效,下面是正确删除容器元素的做法void StatsServer::removeExpiredWorkers() { size_t expiredWorkerCount = 0; size_t expiredUserCount = 0; pthread_rwlock_wrlock(&amp;rwlock_); // wri...

2018-07-26 16:30:14 2065

原创 bitcoind环境搭建

一、简介:    钱包有很多种,其中bitcoind就是其中的一种钱包。本文介绍bitcoin的安装。此外本博客将会是一个系列文章,记录自己一步一步搭建矿池的过程,如果有什么不足之处,请大家多提宝贵意见。二、注意事项:(1)本文中的命令都是亲自实践,均可复制。(2)本文所使用的环境是阿里云服务器,操作系统是ubuntu16.04版本。(3)本文安装的比特币全节点,安装需要磁盘空...

2018-07-16 22:20:58 3865 1

原创 源码地址

https://github.com/btccom/btcpool

2018-07-13 19:25:53 317

原创 开发笔记4——钱包、账户、keyeos、nodeos、cleos概念介绍

钱包可以看成是存放公钥和私钥的仓库。keyeos主要用来管理钱包nodeos主要用来提供基本的服务,相当于我们的主程序cleos提供命令行工具,和我们的主程序nodeos进行交互账户类似于生活中的账户,每个账户对应于一个密码,这个密码就是我们的公钥他们具体的关系如下图所示:...

2018-07-05 19:41:01 894

原创 开发笔记3

创建一个helloworld合约(1)在program中写如下合约代码.#include &lt;eosiolib/eosio.hpp&gt;#include &lt;eosiolib/print.hpp&gt;using namespace eosio;class hello : public eosio::contract {  public:      using contract::con...

2018-07-05 19:39:14 145

原创 开发笔记2

第二节  部署贸易币合约(1)不同于代币,贸易币合约提供了储蓄,提款、借贷、收款等接口,可以和esio.token合约对比,esio.token只是提供了创建代币、发行代币和转账几个接口         void createx( account_name    creator,                       asset           initial_supply,      ...

2018-07-05 19:38:16 200

原创 开发笔记1

1. 创建钱包,会返回钱包的密码,没有钱包密码,就取不出钱包里保存的密钥。注意钱包过一定时间会锁定,解锁钱包也需要钱包密码。注意创建的钱包文件在home目录下的eosio-wallet目录,需要删除钱包的时候只要删除这个文件就可以了。./cleos wallet create -n yangtwallet | tee -a ~/log.txt2. 创建密钥对。密钥对将来会保存在钱包中ubuntu@...

2018-07-04 18:17:16 179

原创 智能合约的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 471

原创 区块链去中心化应用DAPP开发之智能合约的部署

1. 首先用vscode来写一个合约。pragma solidity ^0.4.17;contract Adopt{ address[16] public adopter; function adopt(uint petId) public returns (uint){ require(petId &gt;= 0 &amp;&amp; petId &lt;=15); ...

2018-06-24 10:59:15 1339 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 3240 1

原创 VS2017创建静态库lib和使用静态库

1. 打开vs2017, 新建项目,选择新建静态库项目,然后点击确定。2. 右键单击testlib的“头文件”,以此选择“添加” “新建项”,最后按下图更改。3. 在头文件中添加函数的声明。4. 右键“源文件”,依次选择“添加” “新建项”5. 在源文件中添加函数的实现6. 右键项目,点击“生成解决方案”7.右键项目,选择“在资源管理器中打开文件夹”, 可以看到生成的目录结构,至此已经生成了静态库...

2018-06-19 22:35:26 28715 6

空空如也

空空如也

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

TA关注的人

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