自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 hadoop docker安装部署

前置条件1.jdk镜像2.hadoop安装包解压安装包tar -zxvf cenos-6.5-hadoop-2.6.4.tar.gz -C /usr/localcd /usr/localmv hadoop-2.6.4 hadoop修改配置文件:cd hadoop/etc/hadoop1.首先修改hadoop-env.shvim hadoop-

2018-01-07 23:55:31 889 1

原创 docker kafka集群安装部署

安装包下载http://kafka.apache.org/downloads.html前置准备jdk镜像kafka安装包解压tar -zxvf kafka_2.10-0.8.2.1.tgz -C /usr/localmv kafka_2.10-0.8.2.1 kafkacd /usr/local/kafka/config修改配置文件:cp

2018-01-07 23:46:56 1191

原创 zookeeper概念和部署

1.Zookeeper概念简介Zookeeper是一个分布式协调服务;就是为用户的分布式应用程序提供协调服务A、zookeeper是为别的分布式程序服务的B、Zookeeper本身就是一个分布式程序(只要有半数以上节点存活,zk就能正常服务)C、Zookeeper所提供的服务涵盖:主从协调、服务器节点动态上下线、统一配置管理、分布式共享锁、统一名称服务……D、虽然说可以提供

2018-01-05 00:00:09 529

原创 docker创建ssh镜像并分配固定ip

最近做一个大数据项目,由于服务器数量问题,使用docker进行开发。所以首先需要创建一个可以ssh进入的服务器,并为容器分配固定ip。1.为容器分配固定ipcentOs安装docker:yum install docker安装centOs镜像:docker pull hub.c.163.com/public/centos:6.7-toolsps:如果

2018-01-04 23:48:45 4063

转载 Java 并发工具包 java.util.concurrent 用户指南

译序本指南根据 Jakob Jenkov 最新博客翻译,请随时关注博客更新:http://tutorials.jenkov.com/java-util-concurrent/index.html。本指南已做成中英文对照阅读版的 pdf 文档,有兴趣的朋友可以去 Java并发工具包java.util.concurrent用户指南中英文对照阅读版.pdf[带书签] 进行下载。1. java.util.c

2017-10-11 17:26:10 540

转载 Java ConcurrentModificationException异常原因和解决方法

Java ConcurrentModificationException异常原因和解决方法  在前面一篇文章中提到,对Vector、ArrayList在迭代的时候如果同时对其进行修改就会抛出java.util.ConcurrentModificationException异常。下面我们就来讨论以下这个异常出现的原因以及解决办法。  以下是本文目录大纲:  一.ConcurrentModific

2017-10-05 15:59:58 374

原创 JAVA多线程——线程安全之原子性,有序性和可见性

对于Java并发编程,一般来说有以下的关注点:1.线程安全性,正确性。2.线程的活跃性(死锁,活锁)3.性能其中线程的安全性问题是首要解决的问题,线程不安全,运行出来的结果和预期不一致,那就连基本要求都没达到了。保证线程的安全性问题,本质上就是保证线程同步,实际上就是线程之间的通信问题。我们知道,在操作系统中线程通信有以下几种方式:1.信号量    2.信号

2017-09-02 23:00:06 12400 3

原创 JAVA多线程1

提到多线程,那么不可避免的就会提到进程和线程。我们回顾一下进程和线程的概念:进程:进程是资源分配的最小单位,是程序的运行实体,是正在运行的程序。线程:线程是CPU调度的最小单位,线程们共享所属进程的资源。那么为什么会有线程呢?线程有什么优势呢?首先是为什么会有线程呢?这是因为某些聪明的人,为了让执行速度更快,而创建的线程。我们知道,在最初,为了达到交互的

2017-09-01 21:01:09 324

原创 Hive安装

Hive安装。Hive是基于hadoop的,如果没安装hadoop的小伙伴请先去安装hadoop。Hive安装非常简单,分成三种模式。1.嵌入模式2.伪分布模式。3.完全分布模式。首先,无论哪个模式,都需要先下载Hive安装包。直接去官网https://hive.apache.org/下载一个和你的hadoop版本契合的hive版本即可。这里我使用已经编译好的bin

2017-07-18 13:21:42 454

原创 Hive基础使用

Hive启动方式:1.CLI界面:使用hive命令或hive --service cli即可进入hive cli。2.远程服务:使用hive --service hiveserver &方式启动远程服务,这样就可以使用jdbc或thrift客户端调用hive数据仓库。Hive数据类型我们可以在官网的hive wiki中查看到所有的数据类型。Hive wiki

2017-07-18 11:24:57 887

原创 Hive 介绍

Hive是什么?Hive是一个数据仓库基础工具在Hadoop中用来处理结构化数据。它架构在Hadoop之上,总归为大数据,并使得查询和分析方便。并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。Hive是一个数据仓库,那么Hive和传统意义上的数据库有什么不一样的呢?1.hive和关系数据库存储文件的系统不同,hive使用的是hadoop的H

2017-07-18 09:37:54 583

原创 算法——图之加权有向图

这篇讨论加权有向图。加权有向图是在有向图的基础上,边的赋予权重信息的。加权有向图有很多应用。最典型的就是最短路径问题。我们日常生活中也经常遇到这种问题,例如从一个点出发,到达另外一个点,怎么过去才是最快的等等。而由于图的复杂性,最短路径问题并不十分的容易。例如,给定图的边的权重可能是负权重等。为了解决最短路径问题,我们首先要定义一种加权有向图的数据结构,良好的数据结构是成功

2017-05-27 15:26:17 20667 1

原创 算法——图之加权图

加权图这里指无向加权图。加权图是一种为每条边关联一个权值或成本的图模型。也就是在无向图的基础上,每条边加上权值。加权图有很多应用,例如航空图中,边表示航线,权值表示距离或是费用。还能表示电路图,边表示导线,权值表示导线长度或是成本等等。在这些情形下,我们最感兴趣的当然是成本最小化,也就是最小生成树问题。最小生成树一副加权无向图的最小生成树(MST)是一棵权值之和最小的生

2017-05-25 19:32:55 17993

原创 算法——图之有向图

我们主要讨论一下方面:1.有向图的表示有向图的可达性有向图的路径2.判断有向图中是否有环拓扑排序,优先级限制下的调度问题3.有向图的强连通性有向图的可达性有向图的表示和无向图中的一样,我们也采用邻接表矩阵的方式来表示有向图。只需要修改addEdge方法,只增加一条边,而不是增加双向边就可以了。public class DiGraph

2017-05-24 20:02:43 7415 1

原创 算法——图之无向图

图的概念图是算法中是树的拓展,树是从上向下的数据结构,结点都有一个父结点(根结点除外),从上向下排列。而图没有了父子结点的概念,图中的结点都是平等关系,结果更加复杂。图的分类图可以分为无向图(简单连接),有向图(连接有方向),加权图(连接带权值),加权有向图(连接既有方向又有权值)。这篇讨论无向图。无向图的表示方法:1.邻接矩阵2.边的数组3.邻接表

2017-05-23 19:25:51 13383

原创 算法——查找之散列表

前面我们了解二叉树查找,虽然二叉树的查找已经很快了,但是仍然需要O(logn)的时间复杂度。我们能不能更快呢?我们就想到了一个方法,如果我们能够把所有查找的键转化为一个唯一的数字,那么我们就可以采用数组的形式来存放键和值,那么存取的速度就会非常快了,时间复杂度是O(1)。如果没有内存限制,我们可以做一个超大的数组来存放,那么所有查找都只需要一次访问就可以得到了。但是显然,我们并没有这么大的

2017-05-22 21:52:41 407

转载 平衡二叉树之红黑树

前面一篇文章介绍了2-3查找树,可以看到,2-3查找树能保证在插入元素之后能保持树的平衡状态,最坏情况下即所有的子节点都是2-node,树的高度为lgN,从而保证了最坏情况下的时间复杂度。但是2-3树实现起来比较复杂,本文介绍一种简单实现2-3树的数据结构,即红黑树(Red-Black Tree)定义红黑树的主要是想对2-3查找树进行编码,尤其是对2-3查找树中的3-nodes节点添加额外的信息。红

2017-05-20 23:11:35 526

转载 平衡查找树之2-3树

本文转载自:http://www.cnblogs.com/yangecnu/p/Introduce-2-3-Search-Tree.html 前面介绍了二叉查找树(Binary Search Tree),他对于大多数情况下的查找和插入在效率上来说是没有问题的,但是他在最差的情况下效率比较低。本文及后面文章介绍的平衡查找树的数据结构能够保证在最差的情况下也能达到lgN的效率,要实现这

2017-05-20 23:07:08 626

原创 算法——查找之二叉查找树

我们之前了解了二分查找,对于二分查找,仅仅盯着查找的话,二分查找确实是不错的。但是如果我们需要查找的数组,会改变呢?如果数组会改变,例如会删除其中某个元素,增加某个元素等。删除的话,如果需要删除的元素在数组的前面,那删除以后元素的移动又是一个很大的开销了。增加元素,也就是插入元素,需要再进行一次排序,开销也并不小。所以能不能在保持查找效率的同时,数组的修改的开销也不大的方法呢?这就提到了二

2017-05-19 13:27:09 574

原创 算法——查找之二分查找

对于查找,我们最容易想到的就是遍历了,但是当数组很大的时候,遍历查找的开销是很大的,时间复杂度是O(n)。而二分查找的开销就小了很多,时间复杂度是O(logn)。但是它是有前提条件的,数组必须是有序的。我们知道排序的时间复杂度是O(nlogn)。乍一看下去,似乎排序+二分查找的时间复杂度比顺序查找要大。但是我们排序是一次的,查找是多次的。例如查找n次的话顺序查找需要花费开销

2017-05-18 16:59:06 424

原创 算法——排序之堆排序

堆排序是一种基于堆的排序。要了解堆排序,首先我们要了解堆的特性。那么什么是堆呢?这里我们使用大顶堆,并且是二叉堆,且用数组实现的方式作为例子。在二叉堆的数组中,每个元素都要保证大于等于两个特定位置的元素,这里所说的特定位置,在树结构中就是它的子节点。所有节点都要满足上面所说的情况。如果我们画成二叉树的形式,我们就很容易理解了。可以看到,如果满足上面的特点的话,那么树的根节点

2017-05-17 15:51:39 364

原创 算法——排序之快速排序

快速排序可能是应用最为广泛的排序算法了。应用广泛的主要原因是因为它实现简单,并且在一般应用中比其他算法要快得多。并且它具有良好的特性,他的时间复杂度是O(nlogn)。空间复杂度是O(1),也就是它可以进行原地排序,他只有递归调用产生的空间。原理:快速排序是一种分治的排序算法。他根据一个标杆元素,将一个数组分成两个部分,使得左边的部分的元素小于等于标杆元素,而右边的部分大于标杆元素。然后在

2017-05-16 20:02:34 815

原创 算法——排序之归并排序

归并排序首先将数组分成两个(或两个以上)部分,分别进行排序,然后将这些有序的子数组归并起来。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 将已有序的子数组合并,得到完全有序的数组;即先使每个子数组有序,再使子数组间有序。归并排序最吸引人的是它能够保证任意长度为N的数组排序的时间和NlogN成正比。缺点是他需要的额外的空间也和N成正比。

2017-05-15 21:45:29 267

原创 算法——排序之简单排序

简单排序:直接选择排序冒泡排序直接插入排序希尔排序高级排序:归并快排堆排

2017-05-14 20:23:17 328

原创 分布式事务——单机事务拾遗

要了解分布式事务,首先要了解单机事务。要了解单机事务,首先则要了解事务的概念。事务任何一个对数据库的操作都是一个事务单元,也可以是多个对数据库的操作的集合。尽管看起来计算机可以并行处理很多事情,但实际上每个CPU单位时间内只能做一件事,要么读取数据、要么计算数据、要么写入数据,所有的任务都可以看成这三件事的集合。计算机的这种特性引出了一个问题:当多个人去读、算、写操作时,如果不

2017-05-11 22:22:55 1267

转载 Spring Data

Spring Data是什么Spring Data 项目的目的是为了简化构建基于 Spring 框架应用的数据访问计数,包括非关系数据库、Map-Reduce 框架、云数据服务等等;另外也包含对关系数据库的访问支持。使用spring data可以简单的通过配置就达到切换数据库的目的,给我们一种通用的编码模式统一接口Spring Data JPA开发环境搭建Spring Data JPA快速起步开发环

2017-05-10 17:55:06 362

原创 Linux——系统管理

进程管理首先我们要知道进程管理的目的:1.判断服务器的健康状况2.查看进程状态3.杀死进程当然杀死进程不是一个正常操作,不像在windows中打开任务管理器随便kill掉,杀死进程一般不是一个正常的退出方式,可能会导致某些问题。我们按照顺序来说,如何查看进程的健康状态呢?使用top命令:top - 13:55:33 up 3 min, 2 users,

2017-05-07 13:16:20 561

原创 Hadoop大数据平台入门——第一个小程序WordCount

首先我们需要安装Hadoop,并对Hadoop进行配置。这里我们就不赘述了,详情看这篇博客:Hadoop安装配置值得注意的是,配置的时候,需要给Hadoop权限才能正确执行。最简单的办法就是讲hadoop以及其目录下所有文件都归在一个组中。chown -R hadoop:hadoop hadoop文件夹就可以了。配置完成之后,我们我们还需要什么?1.需要在HDFS

2017-05-07 10:42:30 31292 1

原创 Hadoop大数据平台入门——HDFS和MapReduce

随着硬件水平的不断提高,需要处理数据的大小也越来越大。大家都知道,现在大数据有多火爆,都认为21世纪是大数据的世纪。当然我也想打上时代的便车。所以今天来学习一下大数据存储和处理。随着数据的不断变大,数据的处理就出现了瓶颈:存储容量,读写速率,计算效率等等。google不愧是走在世界前列的大公司,为了处理大数据,google提出了大数据技术,MapReduce,BigTable和GFS。

2017-05-06 21:58:57 8298 1

原创 Linux——软件安装

Linux下的软件安装对于初学者来说非常糊涂和混乱,并不像windows操作系统一样简单易懂,要想灵活的使用Linux系统,掌握软件安装方法必不可少。软件安装的方法:(redhat系列,如果的debian则使用dpkg和apt-get)1.rpm安装 2.yum在线安装3.源码包安装 4.脚本安装。安装的软件包,也就是安装包分为下面两类:1.源码包(tar.gz

2017-05-04 20:28:41 303

原创 Linux——Shell编程

Shell是用户与Linux操作系统沟通的桥梁。用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作。在Linux GUI日益完善的今天,在系统管理等领域,Shell编程仍然起着不可忽视的作用。Shell脚本可以让我们管理Linux操作系统变得更加方便,自动化。学会Shell编程可以让我们对Linux理解更加深入。目前发行版一般使用的Shell是Bash。

2017-05-03 20:06:54 973

原创 Linux权限管理——基本权限

修改权限命令chmodchmod [选项] 模式 文件名选项:-R递归修改权限模式:模式分为两类:1.ugoa字母依次代表所属人,所属组,其他人和所有人(全部人)。在这个模式下,使用+-增加或者删除某个权限即可。例如:chmod u+x 文件名意思即为所属人增加执行权限。这种模式使用的并不常见,需要事先知道文件的权限。2.421模式意思即为用数

2017-05-03 13:02:39 431

原创 Linux用户与用户组

Linux不同于windows,windows可以说基本是个人用户,而对于Linux确不是这样的。Linux是多用户多任务的分时系统,多用户多任务就是可以在系统上建立多个用户,而多个用户可以在同一时间内登录同一个系统执行各自不同的任务,而互不影响。多用户的设定让用户管理变得十分重要。linux下用户的角色分类在linux下用户是根据角色定义的,具体分为三种角色:1. 超级用户:

2017-04-30 00:30:16 461

原创 Linux磁盘管理

要进行磁盘管理,首先我们需要知道磁盘的基本使用状况,使用了多少,还剩多少等等。df命令可以帮助我们看到它。查看磁盘分区使用状况df [选项] [文件]显示指定磁盘文件的可用空间。如果没有文件名被指定,则所有当前被挂载的文件系统的可用空间将被显示。默认情况下,磁盘空间将以 1KB 为单位进行显示。选项:-a 全部文件系统列表-h 方便阅读方式显示-H 等于“-h”,但是计算

2017-04-29 18:18:29 2251

原创 Linux入门7(手记)——Shell基础

Shell基础Shell是什么

2017-04-28 12:32:13 380

原创 Linux入门6(手记)——用户登录查看与退出

用户登录查看w查看目前登入系统的用户有那些人,以及他们正在执行的程序。[root@localhost /]# w 12:31:16 up 2:46, 2 users, load average: 0.00, 0.01, 0.05USER TTY FROM LOGIN@ IDLE JCPU PCPU WHATroot

2017-04-28 12:08:22 3901

原创 Linux入门5(手记)——挂载

mount查看系统中已经挂载的设备。可以看到许多已经挂载了的设备,这是根据系统的自动挂载文件进行挂载的。自动挂载文件:/etc/fstab[root@localhost etc]# cat /etc/fstab ## /etc/fstab# Created by anaconda on Tue Apr 25 11:11:31 2017## Accessible file

2017-04-28 10:28:03 284

原创 Linux入门4(手记)——关机和重启

关机和重启命令:shutdownshutdown [选项] 时间选项:-c : 取消一个关机命令-h: 关机-r : 重启

2017-04-27 12:45:41 321

原创 Linux入门3(手记)

Linux搜索命令:文件搜索命令:locatelocate 文件名注意:在后台数据库中按文件名搜索,搜索速度很快(比find命令要快得多)locate命令所搜索的后台数据库的位置:/var/bin/mlocate支持模糊搜索后台数据库一天一更,所以新建的文件无法找到。强制更新数据库:updatedb文件搜索的筛选规则:配置文件位置:/etc/updatedb

2017-04-26 23:02:19 260

原创 Linux入门2(手记)

首先要了解命令行提示符的信息:1.root:当前登录账户。2.@localhost主机名3.~当前目录,~表示当前用户的家目录。root为/root。如果是普通用户,例如user1,则是/home/user1。4.#超级用户的标志,如果是普通用户,则是$。用来区分是否是超级用户一般命令的格式:命令 [选项] [参数]当存在多个选项时,可以将多个选项写在一起。

2017-04-25 18:25:34 242

空空如也

空空如也

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

TA关注的人

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