<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[anbashi7271的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/anbashi7271</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; anbashi7271]]></copyright><item><title><![CDATA[ArrayList源码]]></title><link>https://blog.youkuaiyun.com/anbashi7271/article/details/101405094</link><guid>https://blog.youkuaiyun.com/anbashi7271/article/details/101405094</guid><author>anbashi7271</author><pubDate>Sat, 16 Feb 2019 11:11:00 +0800</pubDate><description><![CDATA[/** * Resizable-array implementation of the &lt;tt&gt;List&lt;/tt&gt; interface.  Implements * all optional list operations, and permits all elements, including * &lt;tt&gt;null&lt;/tt&gt;.  In a...]]></description><category></category></item><item><title><![CDATA[flume配置——数据流的复制、分流、负载均衡、故障转移]]></title><link>https://blog.youkuaiyun.com/anbashi7271/article/details/101405089</link><guid>https://blog.youkuaiyun.com/anbashi7271/article/details/101405089</guid><author>anbashi7271</author><pubDate>Thu, 02 Aug 2018 23:48:00 +0800</pubDate><description><![CDATA[1、多个 agent 顺序连接：

可以将多个Agent顺序连接起来，将最初的数据源经过收集，存储到最终的存储系统中。这是最简单的情况，一般情况下，应该控制这种顺序连接的Agent的数量，因为数据流经的路径变长了，如果不考虑failover的话，出现故障将影响整个Flow上的Agent收集服务。
2、多个agent的数据汇聚到一个agent：

这种情况应用的场景比较多，比如要...]]></description><category></category></item><item><title><![CDATA[忙等待中的互斥]]></title><link>https://blog.youkuaiyun.com/anbashi7271/article/details/101405092</link><guid>https://blog.youkuaiyun.com/anbashi7271/article/details/101405092</guid><author>anbashi7271</author><pubDate>Wed, 13 Jun 2018 21:14:00 +0800</pubDate><description><![CDATA[竞争条件：两个或多个进程读取某些共享数据，最后的结果取决于进程运行的精确时序，成为竞争条件。
互斥：当一个进程在使用一个共享变量或文件时，其他进程不能做同样的操作。
临界区：对共享内存进行访问的程序片段成为临界区。
实现互斥，避免竞争条件的方法：
1 屏蔽中断，cpu将不会切换到其他进程。但不适合多核系统，而且把屏蔽中断的权利交给用户进程是不明智的。
2 锁变量，初始为0，有进...]]></description><category></category></item><item><title><![CDATA[操作系统用户态和内核态]]></title><link>https://blog.youkuaiyun.com/anbashi7271/article/details/101405087</link><guid>https://blog.youkuaiyun.com/anbashi7271/article/details/101405087</guid><author>anbashi7271</author><pubDate>Mon, 04 Jun 2018 21:06:00 +0800</pubDate><description><![CDATA[内核态:CPU可以访问内存所有数据, 包括外围设备, 例如硬盘, 网卡. CPU也可以将自己从一个程序切换到另一个程序
用户态:只能受限的访问内存, 且不允许访问外围设备. 占用CPU的能力被剥夺, CPU资源可以被其他程序获取
为什么要有用户态和内核态
由于需要限制不同的程序之间的访问能力, 防止他们获取别的程序的内存数据, 或者获取外围设备的数据, 并发送到网络, CPU划...]]></description><category></category></item><item><title><![CDATA[YARN and MapReduce的【内存】优化配置详解]]></title><link>https://blog.youkuaiyun.com/anbashi7271/article/details/101405090</link><guid>https://blog.youkuaiyun.com/anbashi7271/article/details/101405090</guid><author>anbashi7271</author><pubDate>Mon, 28 May 2018 11:18:00 +0800</pubDate><description><![CDATA[在Hadoop2.x中, YARN负责管理MapReduce中的资源(内存, CPU等)并且将其打包成Container。使之专注于其擅长的数据处理任务, 将无需考虑资源调度. 如下图所示YARN会管理集群中所有机器的可用计算资源. 基于这些资源YARN会调度应用(比如MapReduce)发来的资源请求, 然后YARN会通过分配Container来给每个应用提供...]]></description><category></category></item><item><title><![CDATA[YARN的Memory和CPU调优配置详解]]></title><link>https://blog.youkuaiyun.com/anbashi7271/article/details/101405085</link><guid>https://blog.youkuaiyun.com/anbashi7271/article/details/101405085</guid><author>anbashi7271</author><pubDate>Mon, 28 May 2018 11:07:00 +0800</pubDate><description><![CDATA[Hadoop YARN同时支持内存和CPU两种资源的调度，本文介绍如何配置YARN对内存和CPU的使用。
YARN作为一个资源调度器，应该考虑到集群里面每一台机子的计算资源，然后根据application申请的资源进行分配Container。Container是YARN里面资源分配的基本单位，具有一定的内存以及CPU资源。
在YARN集群中，平衡内存、CPU、磁盘的资源的很重要的，根...]]></description><category></category></item><item><title><![CDATA[冒泡排序]]></title><link>https://blog.youkuaiyun.com/anbashi7271/article/details/101405088</link><guid>https://blog.youkuaiyun.com/anbashi7271/article/details/101405088</guid><author>anbashi7271</author><pubDate>Sat, 26 May 2018 11:27:00 +0800</pubDate><description><![CDATA[冒泡排序(Bubble Sort)，又被称为气泡排序或泡沫排序。

它是一种较简单的排序算法。它会遍历若干次要排序的数列，每次遍历时，它都会从前往后依次的比较相邻两个数的大小；如果前者比后者大，则交换它们的位置。这样，一次遍历之后，最大的元素就在数列的末尾！ 采用相同的方法再次遍历时，第二大的元素就被排列在最大元素之前。重复此操作，直到整个数列都有序为止！
下面以数列{20,40...]]></description><category></category></item><item><title><![CDATA[选择排序]]></title><link>https://blog.youkuaiyun.com/anbashi7271/article/details/101405086</link><guid>https://blog.youkuaiyun.com/anbashi7271/article/details/101405086</guid><author>anbashi7271</author><pubDate>Sat, 26 May 2018 11:23:00 +0800</pubDate><description><![CDATA[选择排序介绍
选择排序(Selection sort)是一种简单直观的排序算法。
它的基本思想是：首先在未排序的数列中找到最小(or最大)元素，然后将其存放到数列的起始位置；接着，再从剩余未排序的元素中继续寻找最小(or最大)元素，然后放到已排序序列的末尾。以此类推，直到所有元素均排序完毕。

排序流程


第1趟：i=0。找出a[1...5]中的最小值a[3]=10，然后...]]></description><category></category></item><item><title><![CDATA[操作系统用户态和内核态之间的切换过程]]></title><link>https://blog.youkuaiyun.com/anbashi7271/article/details/101405084</link><guid>https://blog.youkuaiyun.com/anbashi7271/article/details/101405084</guid><author>anbashi7271</author><pubDate>Tue, 22 May 2018 21:38:00 +0800</pubDate><description><![CDATA[1.用户态和内核态的概念区别
究竟什么是用户态，什么是内核态，这两个基本概念以前一直理解得不是很清楚，根本原因个人觉得是在于因为大部分时候我们在写程序时关注的重点和着眼的角度放在了实现的功能和代码的逻辑性上，先看一个例子：
1）例子
void testfork(){
if(0 = = fork()){
printf(“create new p...]]></description><category></category></item><item><title><![CDATA[SpringMVC工作原理]]></title><link>https://blog.youkuaiyun.com/anbashi7271/article/details/101405083</link><guid>https://blog.youkuaiyun.com/anbashi7271/article/details/101405083</guid><author>anbashi7271</author><pubDate>Mon, 21 May 2018 19:06:00 +0800</pubDate><description><![CDATA[---恢复内容开始---
SpringMVC的工作原理图：


SpringMVC流程



用户发送请求至前端控制器DispatcherServlet。


DispatcherServlet收到请求调用HandlerMapping处理器映射器。


处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找)，生成处理器对象及处理器拦截器(如果有则...]]></description><category></category></item><item><title><![CDATA[CentOS6.5 修改主机名]]></title><link>https://blog.youkuaiyun.com/anbashi7271/article/details/101405082</link><guid>https://blog.youkuaiyun.com/anbashi7271/article/details/101405082</guid><author>anbashi7271</author><pubDate>Sat, 19 May 2018 16:47:00 +0800</pubDate><description><![CDATA[1.编辑/etc/sysconfig/network
[root@localhost ~]# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=hadoop-01
2.hostname 直接命名
[root@localhost ~]#hostname hadoop-01
3.编辑/etc/hosts
[root@localh...]]></description><category></category></item><item><title><![CDATA[linux 常用命令]]></title><link>https://blog.youkuaiyun.com/anbashi7271/article/details/101405081</link><guid>https://blog.youkuaiyun.com/anbashi7271/article/details/101405081</guid><author>anbashi7271</author><pubDate>Thu, 10 May 2018 10:06:00 +0800</pubDate><description><![CDATA[pwd
查看当前目录

cd
cd  和 cd ~		        进用户的家目录 标识是~   /home/用户名称
cd /etc				进目录
cd ../        			退回上一层目录
cd ../../     			退回上两层目录
cd -          			退回上一次的目录

hostname
hostname         	查看机器...]]></description><category></category></item><item><title><![CDATA[数据依赖性]]></title><link>https://blog.youkuaiyun.com/anbashi7271/article/details/101405080</link><guid>https://blog.youkuaiyun.com/anbashi7271/article/details/101405080</guid><author>anbashi7271</author><pubDate>Sun, 15 Oct 2017 20:42:00 +0800</pubDate><description><![CDATA[如果两个操作访问同一个变量，且这两个操作中有一个为写操作，此时这两个操作之间就存在数据依赖性。数据依赖分下列三种类型：



名称
代码示例
说明


写后读
a = 1;b = a;
写一个变量之后，再读这个位置。


写后写
a = 1;a = 2;
写一个变量之后，再写这个变量。


读后写
a = b;b = 1;
读一个变量之后，...]]></description><category></category></item><item><title><![CDATA[ssh多台机器通信]]></title><link>https://blog.youkuaiyun.com/anbashi7271/article/details/101405078</link><guid>https://blog.youkuaiyun.com/anbashi7271/article/details/101405078</guid><author>anbashi7271</author><pubDate>Wed, 11 Oct 2017 10:44:00 +0800</pubDate><description><![CDATA[1.3台机器执行[root@hadoop001 ~]# ssh-keygenGenerating public/private rsa key pair.Enter file in which to save the key (/root/.ssh/id_rsa): Created directory '/root/.ssh'.Enter passphrase (empty for no...]]></description><category></category></item><item><title><![CDATA[Hadoop学习之HDFS/MapReduce/YARN进程介绍]]></title><link>https://blog.youkuaiyun.com/anbashi7271/article/details/101405079</link><guid>https://blog.youkuaiyun.com/anbashi7271/article/details/101405079</guid><author>anbashi7271</author><pubDate>Wed, 11 Oct 2017 10:24:00 +0800</pubDate><description><![CDATA[一、Hadoop之三大组件HDFS———-&gt;数据存储MapReduce—&gt;作业计算框架Yarn———–&gt;资源调度二、HDFS1、启动HDFS查看进程
[hadoop@hadoop001 hadoop]$ sbin/start-dfs.sh
Starting namenodes on [hadoop001]
hadoop001: starting name...]]></description><category></category></item><item><title><![CDATA[设计模式遵循的原则]]></title><link>https://blog.youkuaiyun.com/anbashi7271/article/details/101405075</link><guid>https://blog.youkuaiyun.com/anbashi7271/article/details/101405075</guid><author>anbashi7271</author><pubDate>Sat, 09 Sep 2017 16:53:00 +0800</pubDate><description><![CDATA[单一原则：负责类的粒度大小。简单的说就是一个类或者方法让它负责一种功能开闭原则: 一个类或者功能对扩展开放，对修改关闭。就是在程序扩展的时候不能去修改原有的代码，里氏替换原则：所有引用基类（父类）的地方都能，都能用子类来代替。实际就是子类可以扩展父类的功能，但不能改变父类原有的功能依赖倒置原则：面向接口编程，依赖抽象而不是依赖具体的类接口隔离原则: 使用多个隔离的接口，比使用单个接口要好...]]></description><category></category></item><item><title><![CDATA[java内存模型先行发生原则]]></title><link>https://blog.youkuaiyun.com/anbashi7271/article/details/101405076</link><guid>https://blog.youkuaiyun.com/anbashi7271/article/details/101405076</guid><author>anbashi7271</author><pubDate>Fri, 01 Sep 2017 23:21:00 +0800</pubDate><description><![CDATA[java语言天生有一个 先行发生原则，无须借助任何同步器就存在 这是判断线程是否存在竞争，线程是否安全的主要依据，
1、程序次序规则：在一个线程内，书写在前面的代码先行发生于后面的。确切地说应该是，按照程序的控制流顺序，因为存在一些分支结构。
2、管程锁定规则。一个unlock操作先行发生于后面对同一个锁的lock操作。
3、Volatile变量规则：对一个volatile修饰...]]></description><category></category></item><item><title><![CDATA[hdfs 读写流程]]></title><link>https://blog.youkuaiyun.com/anbashi7271/article/details/101405074</link><guid>https://blog.youkuaiyun.com/anbashi7271/article/details/101405074</guid><author>anbashi7271</author><pubDate>Mon, 28 Aug 2017 23:21:00 +0800</pubDate><description><![CDATA[读文件的过程
1.hdfs client调用FileSystem的open()函数打开文件
2.DistributedFileSystem用RPC调用namenode节点，返回文件部分或全部的block列表（也包含该列表各个block块的分布在datanode的地址信息）并返回fsdataInputstream
3.hdfs client 调用fsdataInputStream的r...]]></description><category></category></item><item><title><![CDATA[java 内存模型]]></title><link>https://blog.youkuaiyun.com/anbashi7271/article/details/101405066</link><guid>https://blog.youkuaiyun.com/anbashi7271/article/details/101405066</guid><author>anbashi7271</author><pubDate>Mon, 28 Aug 2017 21:04:00 +0800</pubDate><description><![CDATA[先了解一下硬件的内存架构，由于计算机的处理器和存储设备运行速度相差几个数量及，所以现代计算及系统不得不加入一层与处理器速度近似相近的高速缓存，来解决处理器和内存之间的缓冲，将运算需要使用的数据复制到缓存中，让计算机快速运行，当运算结束后在同步到主内存中。这个处理器就无需等待缓慢的内存读写了，但是随之也带来了新的问题，缓存一致性行为。
解决缓存一致性行为：当CPU写数据时，如果发现操作的...]]></description><category></category></item><item><title><![CDATA[hdfs学习总结]]></title><link>https://blog.youkuaiyun.com/anbashi7271/article/details/101405067</link><guid>https://blog.youkuaiyun.com/anbashi7271/article/details/101405067</guid><author>anbashi7271</author><pubDate>Sun, 27 Aug 2017 23:11:00 +0800</pubDate><description><![CDATA[1.启动hdfs进程名称
namenode 名称节点datanode   数据节点secondary namenode  第二名称节点
2.分块存储之前默认64m，现在默认128m （dfs.blocksize 128m）例子：
一个文件 110M  110/128  分为1 块   第一块 110M         130M  130/128 分为2 块  第一块...]]></description><category></category></item></channel></rss>