<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[a60782885的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/a60782885</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; a60782885]]></copyright><item><title><![CDATA[hadoop docker安装部署]]></title><link>https://blog.youkuaiyun.com/a60782885/article/details/78998846</link><guid>https://blog.youkuaiyun.com/a60782885/article/details/78998846</guid><author>a60782885</author><pubDate>Sun, 07 Jan 2018 23:55:31 +0800</pubDate><description><![CDATA[前置条件

1.jdk镜像
2.hadoop安装包

解压安装包
tar -zxvf cenos-6.5-hadoop-2.6.4.tar.gz -C /usr/local
cd /usr/local
mv hadoop-2.6.4 hadoop


修改配置文件:
cd hadoop/etc/hadoop


1.首先修改hadoop-env.sh
vim hadoop-]]></description><category></category></item><item><title><![CDATA[docker kafka集群安装部署]]></title><link>https://blog.youkuaiyun.com/a60782885/article/details/78998811</link><guid>https://blog.youkuaiyun.com/a60782885/article/details/78998811</guid><author>a60782885</author><pubDate>Sun, 07 Jan 2018 23:46:56 +0800</pubDate><description><![CDATA[安装包下载

http://kafka.apache.org/downloads.html

前置准备

jdk镜像
kafka安装包

解压
tar -zxvf kafka_2.10-0.8.2.1.tgz -C /usr/local
mv kafka_2.10-0.8.2.1 kafka
cd /usr/local/kafka/config


修改配置文件:
cp ]]></description><category></category></item><item><title><![CDATA[zookeeper概念和部署]]></title><link>https://blog.youkuaiyun.com/a60782885/article/details/78976751</link><guid>https://blog.youkuaiyun.com/a60782885/article/details/78976751</guid><author>a60782885</author><pubDate>Fri, 05 Jan 2018 00:00:09 +0800</pubDate><description><![CDATA[1.Zookeeper概念简介

Zookeeper是一个分布式协调服务；就是为用户的分布式应用程序提供协调服务
A、zookeeper是为别的分布式程序服务的
B、Zookeeper本身就是一个分布式程序（只要有半数以上节点存活，zk就能正常服务）
C、Zookeeper所提供的服务涵盖：主从协调、服务器节点动态上下线、统一配置管理、分布式共享锁、统一名称服务……
D、虽然说可以提供]]></description><category></category></item><item><title><![CDATA[docker创建ssh镜像并分配固定ip]]></title><link>https://blog.youkuaiyun.com/a60782885/article/details/78976715</link><guid>https://blog.youkuaiyun.com/a60782885/article/details/78976715</guid><author>a60782885</author><pubDate>Thu, 04 Jan 2018 23:48:45 +0800</pubDate><description><![CDATA[最近做一个大数据项目，由于服务器数量问题，使用docker进行开发。
所以首先需要创建一个可以ssh进入的服务器，并为容器分配固定ip。
1.为容器分配固定ip


centOs安装docker:
yum install docker


安装centOs镜像:
docker pull hub.c.163.com/public/centos:6.7-tools


ps:如果]]></description><category></category></item><item><title><![CDATA[Java 并发工具包 java.util.concurrent 用户指南]]></title><link>https://blog.youkuaiyun.com/a60782885/article/details/78206168</link><guid>https://blog.youkuaiyun.com/a60782885/article/details/78206168</guid><author>a60782885</author><pubDate>Wed, 11 Oct 2017 17:26:10 +0800</pubDate><description><![CDATA[译序本指南根据 Jakob Jenkov 最新博客翻译，请随时关注博客更新：http://tutorials.jenkov.com/java-util-concurrent/index.html。本指南已做成中英文对照阅读版的 pdf 文档，有兴趣的朋友可以去 Java并发工具包java.util.concurrent用户指南中英文对照阅读版.pdf[带书签] 进行下载。1. java.util.c]]></description><category></category></item><item><title><![CDATA[Java ConcurrentModificationException异常原因和解决方法]]></title><link>https://blog.youkuaiyun.com/a60782885/article/details/78161620</link><guid>https://blog.youkuaiyun.com/a60782885/article/details/78161620</guid><author>a60782885</author><pubDate>Thu, 05 Oct 2017 15:59:58 +0800</pubDate><description><![CDATA[Java ConcurrentModificationException异常原因和解决方法
　　在前面一篇文章中提到，对Vector、ArrayList在迭代的时候如果同时对其进行修改就会抛出java.util.ConcurrentModificationException异常。下面我们就来讨论以下这个异常出现的原因以及解决办法。
　　以下是本文目录大纲：
　　一.ConcurrentModific]]></description><category></category></item><item><title><![CDATA[JAVA多线程——线程安全之原子性，有序性和可见性]]></title><link>https://blog.youkuaiyun.com/a60782885/article/details/77803757</link><guid>https://blog.youkuaiyun.com/a60782885/article/details/77803757</guid><author>a60782885</author><pubDate>Sat, 02 Sep 2017 23:00:06 +0800</pubDate><description><![CDATA[对于Java并发编程，一般来说有以下的关注点：
1.线程安全性，正确性。
2.线程的活跃性(死锁，活锁)
3.性能


其中线程的安全性问题是首要解决的问题，线程不安全，运行出来的结果和预期不一致，那就连基本要求都没达到了。
保证线程的安全性问题，本质上就是保证线程同步，实际上就是线程之间的通信问题。我们知道，在操作系统中线程通信有以下几种方式：
1.信号量    2.信号]]></description><category></category></item><item><title><![CDATA[JAVA多线程1]]></title><link>https://blog.youkuaiyun.com/a60782885/article/details/77727117</link><guid>https://blog.youkuaiyun.com/a60782885/article/details/77727117</guid><author>a60782885</author><pubDate>Fri, 01 Sep 2017 21:01:09 +0800</pubDate><description><![CDATA[提到多线程，那么不可避免的就会提到进程和线程。
我们回顾一下进程和线程的概念：
进程：
进程是资源分配的最小单位，是程序的运行实体，是正在运行的程序。
线程：
线程是CPU调度的最小单位，线程们共享所属进程的资源。


那么为什么会有线程呢？线程有什么优势呢？
首先是为什么会有线程呢？
这是因为某些聪明的人，为了让执行速度更快，而创建的线程。
我们知道，在最初，为了达到交互的]]></description><category></category></item><item><title><![CDATA[Hive安装]]></title><link>https://blog.youkuaiyun.com/a60782885/article/details/75274248</link><guid>https://blog.youkuaiyun.com/a60782885/article/details/75274248</guid><author>a60782885</author><pubDate>Tue, 18 Jul 2017 13:21:42 +0800</pubDate><description><![CDATA[Hive安装。
Hive是基于hadoop的，如果没安装hadoop的小伙伴请先去安装hadoop。
Hive安装非常简单，分成三种模式。
1.嵌入模式
2.伪分布模式。
3.完全分布模式。


首先，无论哪个模式，都需要先下载Hive安装包。直接去官网https://hive.apache.org/下载一个和你的hadoop版本契合的hive版本即可。这里我使用已经编译好的bin]]></description><category></category></item><item><title><![CDATA[Hive基础使用]]></title><link>https://blog.youkuaiyun.com/a60782885/article/details/75286388</link><guid>https://blog.youkuaiyun.com/a60782885/article/details/75286388</guid><author>a60782885</author><pubDate>Tue, 18 Jul 2017 11:24:57 +0800</pubDate><description><![CDATA[Hive启动方式：
1.CLI界面：使用hive命令或hive --service cli即可进入hive cli。
2.远程服务：使用hive --service hiveserver &方式启动远程服务，这样就可以使用jdbc或thrift客户端调用hive数据仓库。



Hive数据类型

我们可以在官网的hive wiki中查看到所有的数据类型。Hive wiki]]></description><category></category></item><item><title><![CDATA[Hive 介绍]]></title><link>https://blog.youkuaiyun.com/a60782885/article/details/75270913</link><guid>https://blog.youkuaiyun.com/a60782885/article/details/75270913</guid><author>a60782885</author><pubDate>Tue, 18 Jul 2017 09:37:54 +0800</pubDate><description><![CDATA[Hive是什么？
Hive是一个数据仓库基础工具在Hadoop中用来处理结构化数据。它架构在Hadoop之上，总归为大数据，并使得查询和分析方便。并提供简单的sql查询功能，可以将sql语句转换为MapReduce任务进行运行。



Hive是一个数据仓库，那么Hive和传统意义上的数据库有什么不一样的呢？
1.hive和关系数据库存储文件的系统不同，hive使用的是hadoop的H]]></description><category></category></item><item><title><![CDATA[算法——图之加权有向图]]></title><link>https://blog.youkuaiyun.com/a60782885/article/details/72781811</link><guid>https://blog.youkuaiyun.com/a60782885/article/details/72781811</guid><author>a60782885</author><pubDate>Sat, 27 May 2017 15:26:17 +0800</pubDate><description><![CDATA[这篇讨论加权有向图。
加权有向图是在有向图的基础上，边的赋予权重信息的。
加权有向图有很多应用。最典型的就是最短路径问题。我们日常生活中也经常遇到这种问题，例如从一个点出发，到达另外一个点，怎么过去才是最快的等等。
而由于图的复杂性，最短路径问题并不十分的容易。例如，给定图的边的权重可能是负权重等。


为了解决最短路径问题，我们首先要定义一种加权有向图的数据结构，良好的数据结构是成功]]></description><category></category></item><item><title><![CDATA[算法——图之加权图]]></title><link>https://blog.youkuaiyun.com/a60782885/article/details/72742557</link><guid>https://blog.youkuaiyun.com/a60782885/article/details/72742557</guid><author>a60782885</author><pubDate>Thu, 25 May 2017 19:32:55 +0800</pubDate><description><![CDATA[加权图这里指无向加权图。
加权图是一种为每条边关联一个权值或成本的图模型。也就是在无向图的基础上，每条边加上权值。
加权图有很多应用，例如航空图中，边表示航线，权值表示距离或是费用。还能表示电路图，边表示导线，权值表示导线长度或是成本等等。
在这些情形下，我们最感兴趣的当然是成本最小化，也就是最小生成树问题。


最小生成树
一副加权无向图的最小生成树(MST)是一棵权值之和最小的生]]></description><category></category></item><item><title><![CDATA[算法——图之有向图]]></title><link>https://blog.youkuaiyun.com/a60782885/article/details/72705627</link><guid>https://blog.youkuaiyun.com/a60782885/article/details/72705627</guid><author>a60782885</author><pubDate>Wed, 24 May 2017 20:02:43 +0800</pubDate><description><![CDATA[我们主要讨论一下方面：
1.有向图的表示
有向图的可达性
有向图的路径

2.
判断有向图中是否有环
拓扑排序，优先级限制下的调度问题

3.
有向图的强连通性
有向图的可达性


有向图的表示
和无向图中的一样，我们也采用邻接表矩阵的方式来表示有向图。只需要修改addEdge方法，只增加一条边，而不是增加双向边就可以了。
public class DiGraph]]></description><category></category></item><item><title><![CDATA[算法——图之无向图]]></title><link>https://blog.youkuaiyun.com/a60782885/article/details/72655041</link><guid>https://blog.youkuaiyun.com/a60782885/article/details/72655041</guid><author>a60782885</author><pubDate>Tue, 23 May 2017 19:25:51 +0800</pubDate><description><![CDATA[图的概念
图是算法中是树的拓展，树是从上向下的数据结构，结点都有一个父结点（根结点除外），从上向下排列。而图没有了父子结点的概念，图中的结点都是平等关系，结果更加复杂。


图的分类
图可以分为无向图(简单连接)，有向图(连接有方向)，加权图(连接带权值)，加权有向图(连接既有方向又有权值)。


这篇讨论无向图。
无向图的表示方法：
1.邻接矩阵
2.边的数组
3.邻接表]]></description><category></category></item><item><title><![CDATA[算法——查找之散列表]]></title><link>https://blog.youkuaiyun.com/a60782885/article/details/72630581</link><guid>https://blog.youkuaiyun.com/a60782885/article/details/72630581</guid><author>a60782885</author><pubDate>Mon, 22 May 2017 21:52:41 +0800</pubDate><description><![CDATA[前面我们了解二叉树查找，虽然二叉树的查找已经很快了，但是仍然需要O(logn)的时间复杂度。我们能不能更快呢？我们就想到了一个方法，如果我们能够把所有查找的键转化为一个唯一的数字，那么我们就可以采用数组的形式来存放键和值，那么存取的速度就会非常快了，时间复杂度是O(1)。
如果没有内存限制，我们可以做一个超大的数组来存放，那么所有查找都只需要一次访问就可以得到了。
但是显然，我们并没有这么大的]]></description><category></category></item><item><title><![CDATA[平衡二叉树之红黑树]]></title><link>https://blog.youkuaiyun.com/a60782885/article/details/72590205</link><guid>https://blog.youkuaiyun.com/a60782885/article/details/72590205</guid><author>a60782885</author><pubDate>Sat, 20 May 2017 23:11:35 +0800</pubDate><description><![CDATA[前面一篇文章介绍了2-3查找树，可以看到，2-3查找树能保证在插入元素之后能保持树的平衡状态，最坏情况下即所有的子节点都是2-node，树的高度为lgN，从而保证了最坏情况下的时间复杂度。但是2-3树实现起来比较复杂，本文介绍一种简单实现2-3树的数据结构，即红黑树（Red-Black Tree）定义红黑树的主要是想对2-3查找树进行编码，尤其是对2-3查找树中的3-nodes节点添加额外的信息。红]]></description><category></category></item><item><title><![CDATA[平衡查找树之2-3树]]></title><link>https://blog.youkuaiyun.com/a60782885/article/details/72590048</link><guid>https://blog.youkuaiyun.com/a60782885/article/details/72590048</guid><author>a60782885</author><pubDate>Sat, 20 May 2017 23:07:08 +0800</pubDate><description><![CDATA[本文转载自：http://www.cnblogs.com/yangecnu/p/Introduce-2-3-Search-Tree.html 
 
      前面介绍了二叉查找树(Binary Search Tree)，他对于大多数情况下的查找和插入在效率上来说是没有问题的，但是他在最差的情况下效率比较低。本文及后面文章介绍的平衡查找树的数据结构能够保证在最差的情况下也能达到lgN的效率，要实现这]]></description><category></category></item><item><title><![CDATA[算法——查找之二叉查找树]]></title><link>https://blog.youkuaiyun.com/a60782885/article/details/72526910</link><guid>https://blog.youkuaiyun.com/a60782885/article/details/72526910</guid><author>a60782885</author><pubDate>Fri, 19 May 2017 13:27:09 +0800</pubDate><description><![CDATA[我们之前了解了二分查找，对于二分查找，仅仅盯着查找的话，二分查找确实是不错的。但是如果我们需要查找的数组，会改变呢？
如果数组会改变，例如会删除其中某个元素，增加某个元素等。删除的话，如果需要删除的元素在数组的前面，那删除以后元素的移动又是一个很大的开销了。增加元素，也就是插入元素，需要再进行一次排序，开销也并不小。
所以能不能在保持查找效率的同时，数组的修改的开销也不大的方法呢？这就提到了二]]></description><category></category></item><item><title><![CDATA[算法——查找之二分查找]]></title><link>https://blog.youkuaiyun.com/a60782885/article/details/72475913</link><guid>https://blog.youkuaiyun.com/a60782885/article/details/72475913</guid><author>a60782885</author><pubDate>Thu, 18 May 2017 16:59:06 +0800</pubDate><description><![CDATA[对于查找，我们最容易想到的就是遍历了，但是当数组很大的时候，遍历查找的开销是很大的，时间复杂度是O(n)。


而二分查找的开销就小了很多，时间复杂度是O(logn)。但是它是有前提条件的，数组必须是有序的。
我们知道排序的时间复杂度是O(nlogn)。乍一看下去，似乎排序+二分查找的时间复杂度比顺序查找要大。但是我们排序是一次的，查找是多次的。
例如查找n次的话
顺序查找需要花费开销]]></description><category></category></item></channel></rss>