自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

mapbar_front的博客

用最专业的文字,写出最精美的技术博客

  • 博客(236)
  • 收藏
  • 关注

原创 Hbase—分布式数据库

什么是分布式数据库Hbase是大数据体系里面非常重要的一个组件,它解决了海量数据的存储和操作功能。传统的Mysql和Oracle,显然不能支持大数据的应用场景。它的限制主要在无法存储过亿级别的海量数据,无法适应大数据场景下数据的动态扩展,可能也就无法实现毫秒级别的更新。什么是行式存储和列式存储行式存储指的是,数据存储在磁盘中,以一行相关的数据一次排布在磁盘上的过程。列式存储指的是,数据存...

2018-11-04 01:41:47 3182

原创 使用java的Api访问Hdfs的实例

hadoop的hdfs的基本操作,除了使用shell脚本的方式,也可以使用JavaApi进行操作。hdfs shell 命令:1,创建hdfs文件的创建hdfs dfs -mkdir -p /home/test2,上传本地文件到hdfs上hdfs dfs -put a.txt /home/test3,查看上传的文件大小hdfs dfs -du /home/test4,删除hdfs目...

2018-11-01 02:44:35 878

原创 Linux上配置主机名,以及配置远程访问

一般而言,一台linux主机会有多个用户,可能你需要配置一个主机。第一步:查看当前的主机,使用hostname命令。hostname第二步:如果你想配置一个hadoop的主机,使用下面命令。hostname hadoop这时候,这个主机就被配置好了。可是这样的配置,有一个弊端,就是在linux主机重启的时候就会失效。所以我们要配置一个永久性的主机名。永久性的主机名的配置首先,永...

2018-10-31 18:53:34 2627

原创 订阅发布(PubSub)模式的实现以及使用价值

什么是订阅发布模式订阅发布模式定义了一种一对多的依赖关系,让多个订阅者对象同时监听某一个主题对象。这个主题对象在自身状态变化时,会通知所有订阅者对象,使它们能够自动更新自己的状态。将一个系统分割成一系列相互协作的类有一个很不好的副作用,那就是需要维护相应对象间的一致性,这样会给维护、扩展和重用都带来不便。当一个对象的改变需要同时改变其他对象,而且它不知道具体有多少对象需要改变时,就可以使用订阅...

2018-10-24 23:49:40 16367

原创 node打包项目出现的内存溢出的解决方案

1,项目需求最近所做的一个项目,在不进行代码分割的情况下,项目的js打包文件已经超过2M的大小。所以急需代码分割的功能,实现页面的快速相应。2,遇到的问题项目的js代码,已经超过10w行,打包的时候出现了这样的一个问题:FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - process out of memory3,如何解决第一种方...

2018-10-22 12:03:37 12862

原创 如何监听DOM大小的变化

##1,引言监听DOM大小的变化,在前端开发中,算是一个比较常见的需求,比如我们要制作可伸缩的图表的时候,可能需要根据DOM大小的变化,进行动态的更新图表。##2,实现方式一般而言,我们可能会考虑到的方式就是在窗口发生变化的时候,获取对应dom的样式。window.onresize = function() { const width = getStyle(dom, 'width');...

2018-10-20 02:39:47 19110 3

原创 如何在react中,实现可伸缩的echarts图表

1,基础篇我们在使用echart,基本使用,可以使用script标签引入的方式进行使用,也可以使用npm的方式,进行加载echarts。script的方式,非常简单,就像我们的jquery一样,引入这样的一个js文件就可以使用echarts了。然后echarts的核心就是实例化一个echarts对象,然后给这个对象设置options,options的设置,参考echarts官方文档。<...

2018-10-12 13:09:03 3614

原创 组件高级知识(受控组件,无状态组件,高阶组件,纯组件)

组件高级知识受控组件(controlled components)在原生的表单中,input的值是这么设定的。<input value="mapbar_front" />并且在这种情况下,我们能够给input中输入任何的值。但是在react中,我们对于input如果给定一个初始值,它是不会随便进行输入进行改变的,它必须同时绑定一个onChange事件。<input ...

2018-09-29 20:00:02 2346

原创 Linux学习—shell脚本语法介绍

通常,一个如 *.sh 的格式的文件,是一个可执行的shell脚本文件,可以使用bash *.sh 的方式进行执行。shell脚本,和C语言,Java是一样的,都是一种语言,它存在的意义,就是提供给用户,进行linux系统的文件管理,内存管理等操作系统内核。其基本的语法介绍如下:1,一个hello world的shell脚本介绍。#!/bin/bashecho "hello ...

2018-09-09 03:59:53 361

原创 Linux学习—linux常用命令介绍

1,pwd 展示文件所在目录。 eg: pwd2,ls 列举当前文件夹下所有文件。 eg: ls3,mkdir 创建一个文件夹 eg: mkdir aaa4,touch 创建一个文件 rouch a.txt5,rm 删除文件 eg: rm a.txt6,rm -rf 删除文件夹 eg: rm -rf /home/bigdata/aaa7,diff ...

2018-09-03 00:47:44 397

原创 Linux学习—关于系统目录结构

说明1,ls 命令是展示linux系统的当前目录的命令,ls+目录就是对应目录的目录结构说明。 2,/ 代表了用户的根目录。 3,ls / 就能够查看用户根目录下有哪些子目录。 每一个目录的说明1,bin 它是binary的缩写,它存放着我们经常使用的一些命令等等。如 su,pwd等等。 2,dev 是Device的缩写,是linux下外部设备的存放的地方。 3,ho...

2018-09-01 00:40:26 511

原创 大数据—数据收集系统介绍(Flume,Sqoop)

概述大数据,数据收集是非常重要的一块知识体系。数据收集,一般会对不同的数据,拥有不同的手机方式,那么常见的数据来源有什么呢?非结构化数据。一般有用户访问日志、图片、视屏、网页等信息。半结构化数据。一般类似xml、json之类的数据。结构化数据。一般是传统关系型数据库(MySQL、Oracle)等存储的数据。针对结构化数据,导入到大数据系统Hadoop中,有两种导入方式,一种是全...

2018-08-29 00:48:11 6093

原创 分布式文件系统——HDFS

HDFS是什么HDFS最早源于谷歌的分布式文件系统GFS,在2003年的时候,谷歌发表了论文——“The Google File System”,介绍了GFS产生的背景、架构、实现等。谷歌虽然发布了这样的论文,但是没有把GFS进行开源,而HDFS就是针对谷歌的GFS的开源实现。为什么要用HDFS期初的时候,当数据量变大的时候,人们想到的方式,是买一个更贵的更大的服务器,来支撑我们现...

2018-08-26 03:06:41 1147

原创 一篇文章读懂什么是大数据

大数据概述如果说,作为目前IT行业最火热、薪资最具有发展前景的两个方向——大数据和人工智能。现在甚至火热到凡是一个公司,都在说自己做大数据相关的业务,那么作为当前时代的程序员,我们应当了解,什么是大数据?通俗的来讲,大数据就是基于海量的数据,提取其中具有借鉴意义,具有商业价值的东西,最终呈现给用户的这么一个过程,就叫大数据。大数据技术体系从概念上讲,上面所说的东西,都是比较笼统的概...

2018-08-25 19:42:42 1549

原创 @Decorator — ES7的一种新的提案。

@decorator模块学习Decorator简介修饰器(Decorator)是一个函数,用于修饰类的行为,这是ES7的一个提案,目前已经被babel支持。在TypeScript中,就是修饰器的概念,比如用于组件传值的 @input @output等等。一个简单的修饰器的使用如下:function testAble(target){ target.isTest ...

2018-08-16 15:05:24 1487

原创 Generator函数解读

generator的基本概念generator是一种函数,这种函数是ES6提出的一种异步编程的解决方案,在它内部,使用yield关键字封装了一个个状态机。这个函数的执行结果,就是一个遍历器对象。function* next() { yield 1+1; yield 2+2; return 5;}var x = next();console.log(x.ne...

2018-08-10 22:04:55 1542

原创 Generator函数的基本语法介绍

Generator基本概念Generator是ES6提供的一种异步的编程解决方案。它的行为特点就是,在function关键字和函数名之间有一个 * 号。在函数的内部,使用yield关键字,标识不同的状态。Generator函数,也是一种函数,不过这种函数在它的内部,封装了多个状态机,并且这个函数的执行结果,返回的是一个遍历器对象,这个遍历器对象可以通过其next()方法,得到这个Gener...

2018-07-23 12:14:43 895

原创 浅谈前端常见的数组和对象的遍历问题

前端遍历有多种情况,除最常用的for循环外,还有for in、for of 等等,有针对数组的map遍历、forEach遍历,有针对对象的Object.keys、object.values等等。1、for循环,for in,for of的区别在哪里?先说说数组,举个栗子。普通的for循环,就是遍历我们的数组。for in循环,会把原型上的属性和属性值都遍历下来,遍历的是键名。...

2018-07-14 19:51:01 6515

原创 ES6新增数据类型:Symbol类型

什么是Symbol类型作为一个对象,如果这个对象是一个全局变量,在每一个模块中,我们都要使用这个对象,这个时候就会出现一个问题,我如何保证我的对象的属性是唯一的?//全局对象objvar obj = { name: 'mapbar_front', age: 27}//在另一个文件a.js中obj.name = 'mapbar';//在新的b.js文件中con...

2018-07-05 14:48:36 924

原创 Map和Set

1、SetSet是一种新的数据结构。类似于数组,但是里面的成员的值都是唯一的。Set本身是一个构造函数。可以接受一个数组(或者具有 iterable 接口的其他数据结构)作为参数,用于初始化Set类型的对象,可以通过add方法添加一个成员元素。Set是一种好的数组去重的方法。var arr = [1,2,3,2,2,5];var arr = [...new Set(arr)]...

2018-06-26 19:59:06 1235

原创 HTTP知识体系总结

HTTP与HTTPSHTTP是明文传输的,所以在传输请求的过程中,凡是http经过的站点都可以获取你的HTTP请求,甚至更该你的HTTP请求。所以我们需要给HTTP进行加密处理。HTTP + TLS => HTTPS这是目前的HTTPS的方案由来。其中TLS是一种加密协议。HTTP缓存HTTP缓存是通过HTTP中的headers中的cache-contrl属性决定的,...

2018-06-20 00:47:08 1237

原创 Web安全——SQL注入、DOS攻击

SQL注入的危害猜解密码获取数据删库删表拖库,本来展示的一部分数据,但是可能通过SQL注入的方式得到更多的数据。SQL注入防御关闭错误提示。检查数据类型。对数据进行转义(connectoin.escape)。使用参数化查询。(这是目前最好的解决方案,在node中,可以使用mysql2这个模块来实现)。使用ORM(对象关系映射)。DOS攻击的方式一个用户进行...

2018-06-19 00:38:31 2468

原创 Web安全——密码安全

1、密码的作用是什么? 就是为了证明“你就是你的问题”。计算机为了识别人的时候,需要密码。2、密码的泄漏渠道。 数据库被偷 服务器被入侵 通讯被窃听(http协议被窃听) 内部人员泄密 通过撞库的方式3、密码存储 严禁明文存储(防泄漏) 单向变换 变换复杂度分析 密码复杂度的要求4、哈希算法 明文-密文————是一一对应的。 雪崩效应————只要明文一点点不一样...

2018-06-18 14:20:11 2019

原创 Web安全——http窃听

http的弊端Web前端,进行数据请求的方式,一般是使用http的方式进行的,一般而言,http协议的传输是一种明文的方式进行传输。前端向后端进行http请求,中间会经过各种各样的网关、服务器节点等,最终到达我们的目标服务器。但是在这个中间的每个节点上,只要对象想获取你的http的信息,它是可以随意的进行数据的劫持和篡改的!(这就是http进行明文传输的弊端),最后,服务端向你返回数据的时...

2018-06-17 01:25:45 2770

原创 Web安全——关于cookies

cookie的特性如果要认识cookie是如何对web安全很重要,首先你要了解它是什么?cookie是一种前端的数据存储。后端可以通过http头进行设置cookie。请求是通过http头传输给后端。前端可读写。document.cookie。遵守同源策略。(协议、端口、域名都要相同)。cookie的应用场景cookie一般是用来做用户登录状态的验证的。 它有这么几种方...

2018-06-16 15:45:42 670

原创 Web安全——CSRF攻击和防御

什么是CSRFCross site Request Forgy(跨站请求伪造) 主要是我们打开一个钓鱼网站,进去之后,这个钓鱼网站会得到你的信息,比如你的cookie的验证信息。它会在你不知情的情况下,做一些操作。一般在一些社交、评论等地方,一定要注意CSRF攻击。千万不要随便进去一些钓鱼网站。一般而言,你的接口是post的话,就相对get安全一点,因为如果是post方式,CSRF只...

2018-06-15 23:11:34 1021

原创 Web安全——XSS攻击以及防御

XSS(跨站脚本攻击)XSS——Cross site scripting 这是最常见的一种web安全问题。引起这种问题的原因是什么呢?主要是由于不合理的数据引起的。<div> { content }</div>一般这样的页面结构,我们的页面解析出来的期望是这样的。<div&

2018-06-13 23:18:12 1538

原创 属性指令的解析原理——以 v-if 为例

问题提出面试中,面试官不免要问,关于v-if这类的指令,实现的原理是什么?效果图示:HTNL:<body><div id="root"> <div v-if="true">我是指令的展示和隐藏</div> <div v-if="false">我是要隐藏的</

2018-05-30 07:53:10 7605

原创 路由的基本实现——hash路由

问题提出vue、react在路由的实现上,都有基于hash的路由。那么如何使用原生来实现呢?比如类似下面这样的路由: hashchange事件是实现路由的核心hash实现路由的时候,最本质的原理就是hash值的变化,会引发一个hashchange事件,可以根据这个hash值的变化,加载不同的DOM。html:<div class="box flex-box">...

2018-05-29 12:12:25 6859

原创 Vue中,数据绑定视图的实现原理

示例比如说,在body中的数据模板是这样的:<body> <div id="root"> <div>{{message}}</div> </div></body>而message的值在数据中是这样表示的:var data = { message: 'hell

2018-05-29 11:50:04 1008

原创 使用object.defineProperty()方法监听属性变化

问题提出定义一个对象,改变这个对象的属性,或者说是读取这个对象属性以及属性值的时候,我们自己定义的对象,一般不会知道这个对象什么时候被赋值,什么时候被改变。var object = { name: 'mapbar_front'};console.log(object.name);//这个时候我们不知道这个对象的name属性被读取。object.name = '中国';//...

2018-05-27 20:46:42 9578 1

原创 前端网页的分享功能

分享是现在的web开发,最常用的功能,对于前端网页,有很多现成的别人已经做好的东西,提供给我们使用。第一类——常用分享方式<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" con

2018-05-25 17:47:13 18997 2

原创 MySql的基本使用——多表查询

连接的使用joininner join:代表选择的是两个表的交差部分。left join:代表选择的是前面一个表的全部。right join:代表选择的是后面一个表的全部。语法规则:select a.column1, a.column2... from table a inner join table b on a.column = b.column;使用NULL值...

2018-05-23 00:48:11 6641

原创 MySql数据库的基本使用——单表查询

MySql安装可以去MySql的官网上,安装对应的版本。本人是Mac osx,安装地址如下:Mac 版本的MySql的安装地址登录MySqlmysql -u root -p就会让你输入密码,也就是你自己在安装的时候设置的密码,如下图: 输入密码之后,展示mysql命令行窗口: 查看数据库使用命令:SHOW DATABASES;得到相关数据...

2018-05-21 01:50:51 1183

原创 node操作数据库

问题描述对于一个前端开发人员来说,学习node可能没什么难度,单独的来学习 mysql,可能也没有什么难度,但是使用 nodejs对 mysql数据库,进行操作,可能对于初学者是一大挑战。如果你确实要学习node是如何操作数据库的,最起码,你需要知道一些基本的东西:nodejs、mysql。其中,nodejs你最好知道一些基本的模块——Stream流、Buffer对象、fs文件系统、模...

2018-05-20 10:41:13 6455

原创 express框架

express框架是基于node环境的一个用于web应用开发的服务端框架。学习express之前,最好对node的基本模块有一定的了解。下载expressnpm install --save express搭配使用的库body-parser:用于处理JSON、Raw、Text和Url编码的数据。cookie-parser:解析Cookie的工具,通过req.cookie...

2018-05-19 16:24:08 904

原创 Nodejs学习——get方式、post方式请求数据

本篇不涉及Nodejs的框架,仅仅从http模块的角度,来实现一个简单的get和post的请求:GET方式var http = require('http');var url = require('url');var util = require('util');var server = http.createServer((req,res)=>{ res.wri...

2018-05-16 22:20:13 768

转载 NodeJs学习——模块系统

module.exports与exports的区别每一个node.js执行文件,都自动创建一个module对象,同时,module对象会创建一个叫exports的属性,初始化的值是 {}module.exports = {};Node.js为了方便地导出功能函数,node.js会自动地实现以下这个语句foo.jsexports.a = function(){ conso...

2018-05-15 13:36:40 314

原创 NodeJs学习(流)——Stream

1、流是一个抽象接口,在NodeJs中,流是很多内置对象的的接口实现,比如:http的request请求就是一个流,标准的输出stdout也有对流的接口实现。流分为这样的几种类型:Readable——可读Writable——可写Duplex——可读且可写Transform——操作被写入数据,然后读出结果流的接口实现,一般有以下几种事件:data——有数据读取的时候触发...

2018-05-15 09:57:35 490

原创 angular2生命周期函数

周期函数 周期函数名 主要作用 ngOnChanges 当一个组件的传递一个输入props的时候会调用 ngOnInit 发生在ngChanges之后,做一些数据初始化的东西,可进行接口请求 ngDoCheck 用这个方法来检测那些被 Angular 忽略的更改,性能开销很大! ngAfterContentInit 当界面的内容被改...

2018-05-14 09:29:23 1377

空空如也

空空如也

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

TA关注的人

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