<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[莲芸轩的书房]]></title><description><![CDATA[灾难总是接踵而至，这正是世间的常理。你以为只要解释一下，就有谁会来救你吗？要是死了，就只能说明我不过是如此程度的男人。 　 --索隆]]></description><link>https://blog.youkuaiyun.com/qq994467433</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq994467433]]></copyright><item><title><![CDATA[Shell脚本基础认识]]></title><link>https://blog.youkuaiyun.com/qq994467433/article/details/108283671</link><guid>https://blog.youkuaiyun.com/qq994467433/article/details/108283671</guid><author>qq994467433</author><pubDate>Fri, 28 Aug 2020 17:34:28 +0800</pubDate><description><![CDATA[对于开发人员而言特别是和Linux打交道的朋友来说,简单的shel命令我们还是需要有基本的认识的.
1.至少能写个简单的shell脚本
2.能看懂别人写的脚本.
文章较长耐心阅读让你对shell达到上述两个要求
*注意：本文默认你对Linux有基本的认识,如果没有额请先对Linux基本命令做点了解. *
目录结构
一.shell脚本入门
二.变量
三.运算符
四.条件判断
五.流程控制
六.read读取控制台输入
七.函数
八.Shell工具
一.shell脚本入门
1．脚本格式
脚本以#!/bin/bas]]></description><category></category></item><item><title><![CDATA[HDFS安全模式解决方案]]></title><link>https://blog.youkuaiyun.com/qq994467433/article/details/107691084</link><guid>https://blog.youkuaiyun.com/qq994467433/article/details/107691084</guid><author>qq994467433</author><pubDate>Thu, 30 Jul 2020 15:26:57 +0800</pubDate><description><![CDATA[由于我使用的vnmare搭建的centos7虚拟机,最近跑了一个比较大的任务,结果发现HDFS强行进入了安全模式.
使用命令hdfs dfsadmin -safemode get可以看到结果是ON
然后我使用了离开安全模式命令hdfs dfsadmin -safemode leave
然后再次查看安全模式仍然是ON,好吧查阅资料发现是磁盘满了.
使用df -hl查看发现/dev/sda/centos_root已经使用了100%
只能扩容磁盘了
具体操作手册请参见VMware虚拟机中CentOS7的硬盘空间扩]]></description><category></category></item><item><title><![CDATA[Yarn资源调度]]></title><link>https://blog.youkuaiyun.com/qq994467433/article/details/107431207</link><guid>https://blog.youkuaiyun.com/qq994467433/article/details/107431207</guid><author>qq994467433</author><pubDate>Sat, 18 Jul 2020 16:48:28 +0800</pubDate><description><![CDATA[Hadoop包括了四个模块进入apache官网即可看到如下介绍

当然这是最新的版本介绍,其实在hadoop2.0之前是没有YARN这个模块的。那么前面我们介绍了HDFS和MapReduce,今天我们介绍YARN。
YARN架构
主从结构,主是ResourceManager从是Nodemanager。YARN主要由ResourceManager、NodeManager、ApplicationMaster和Container等组件构成。
YARN工作机制

简化流程;


用户使用客户端向 RM 提交一个任务]]></description><category></category></item><item><title><![CDATA[MapReduce完整流程]]></title><link>https://blog.youkuaiyun.com/qq994467433/article/details/107430750</link><guid>https://blog.youkuaiyun.com/qq994467433/article/details/107430750</guid><author>qq994467433</author><pubDate>Sat, 18 Jul 2020 16:24:13 +0800</pubDate><description><![CDATA[上一篇文章介绍了MapReduce编程模型
这次我们介绍MapReduce完整流程
Map阶段其实主要就是将输入的文件切割成一个个的(K,V)对，主要是******maptask工作机制******

（1）Read阶段：MapTask通过用户编写的RecordReader，从输入InputSplit中解析出一个个key/value。
（2）Map阶段：该节点主要是将解析出的key/value交给用户编写map()函数处理，并产生一系列新的key/value。
（3）Collect收集阶段：在用户编写map]]></description><category></category></item><item><title><![CDATA[数据结构与算法基础认知]]></title><link>https://blog.youkuaiyun.com/qq994467433/article/details/107318607</link><guid>https://blog.youkuaiyun.com/qq994467433/article/details/107318607</guid><author>qq994467433</author><pubDate>Mon, 13 Jul 2020 16:18:03 +0800</pubDate><description><![CDATA[为什么要学习数据结构和算法？
如果你是一个程序员（或者正打算从事这份工作）那么你一定经常听到有人告诉你，数据结构和算法很重要。可是为什么重要呢？这里我不打算长篇大乱来介绍数据结构和算法的重要性（主要是我也没那实力哈哈哈），但是学好数据结构和算法一定会帮助你很多最起码也是最重要的一点就是面试你一定会遇到。所谓即使为了工作你也该去学习它们。本文只会介绍学习数据结构和算法必须了解的基础入门知识。
1.什么是数据结构？
相互之间存在一种或者多种特定对应关系的数据元素的集合。常见的数据结构包括数据，链表，队列，图，树]]></description><category></category></item><item><title><![CDATA[MapReduce编程模型]]></title><link>https://blog.youkuaiyun.com/qq994467433/article/details/107304376</link><guid>https://blog.youkuaiyun.com/qq994467433/article/details/107304376</guid><author>qq994467433</author><pubDate>Sun, 12 Jul 2020 20:27:24 +0800</pubDate><description><![CDATA[1.MapReduce简介
MapReduce是一个分布式运算程序的编程框架，核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序，并发运行在Hadoop集群上。
一个完整的mapreduce程序在分布式运行时有三类实例进程：
MRAppMaster 负责整个程序的过程调度及状态协调
MapTask 负责map阶段的整个数据处理流程
ReduceTask 负责reduce阶段的整个数据处理流程
2.MapReduce核心编程思想

1）分布式的运算程序往往需要分成至少2个阶段。
2]]></description><category></category></item><item><title><![CDATA[HDFS读写数据流程]]></title><link>https://blog.youkuaiyun.com/qq994467433/article/details/107298566</link><guid>https://blog.youkuaiyun.com/qq994467433/article/details/107298566</guid><author>qq994467433</author><pubDate>Sun, 12 Jul 2020 14:11:23 +0800</pubDate><description><![CDATA[HDFS作为分布式文件系统，储存文件的时候与我们自己常用的PC机自带的文件系统区别还是很大的。首先HDFS文件系统储存文件的时候会将文件分为块储存，2.0以及之后的版本默认是128M一块 之前是默认64M；并且每一个块默认保存3副本（副本之间无主从概念）。接下来看看
HDFS写数据流程
先来一张图镇楼

这是写数据的流程图旁白注释已经很清楚了但是这只是理想的情况，如果在传输的时候出问题了该怎么解决呢？其实HDFS已经解决了这个容错问题了

在这个流程中客户端需要向namenode申请可用的datanode来]]></description><category></category></item><item><title><![CDATA[Hadoop 之HDFS常用命令]]></title><link>https://blog.youkuaiyun.com/qq994467433/article/details/107139422</link><guid>https://blog.youkuaiyun.com/qq994467433/article/details/107139422</guid><author>qq994467433</author><pubDate>Sun, 05 Jul 2020 15:29:15 +0800</pubDate><description><![CDATA[Hadoop组件之HDFS常用命令
Hadoop作为大数据基础组件，解决了海量数据的存储（HDFS）和计算(Map-Reduce)问题。虽然Map-Reduce计算已经很少在生产中使用，但是关于HDFS的一些常用命令还是需要掌握的。HDFS命令有两种方式 一种是hdfs dfs -ls /  一种是hadoop fs -ls / 根据个人喜好用就可以了。下面列出一些常用命令。
（1）-help：输出这个命令参数
bin/hdfs dfs -help rm
（2）-ls: 显示目录信息
hadoop fs -]]></description><category></category></item><item><title><![CDATA[Chrome主页被恶意篡改锁定解决方案]]></title><link>https://blog.youkuaiyun.com/qq994467433/article/details/105471346</link><guid>https://blog.youkuaiyun.com/qq994467433/article/details/105471346</guid><author>qq994467433</author><pubDate>Sun, 12 Apr 2020 16:23:59 +0800</pubDate><description><![CDATA[之前我的Chrome浏览器主页被hao123锁定了，网上搜索了一下解决方案发现很多朋友都和我一样中过招，但是有很多方法其实没用。给大家推荐一个经过实践绝对有效的方法。
在浏览器网址导航栏输入chrome://version/查看结果如下

如果你的网页被hao123锁定的话应该会是下面这样的结果

解决方法
将命令行这一栏的内容复制到一个文本编辑器里面然后删掉那个锁定你主页的网址，然后在你的桌面找...]]></description><category></category></item><item><title><![CDATA[单例模式的认识]]></title><link>https://blog.youkuaiyun.com/qq994467433/article/details/86681925</link><guid>https://blog.youkuaiyun.com/qq994467433/article/details/86681925</guid><author>qq994467433</author><pubDate>Mon, 28 Jan 2019 19:45:28 +0800</pubDate><description><![CDATA[单例模式的介绍
1.什么是单例模式？
实现1个类只有1个实例化对象并提供一个全局访问点
2.单例模式的作用？
保证1个类只有1个对象，降低对象之间的耦合度，减少对象的创建减少系统开销。
3.实现单例的几种常用方式。
  1.饿汉式单例模式
  public class SingleInstance {
    //饿汉式单例模式  类被加载的时候就初始化一个实例化对象
    private st...]]></description><category></category></item><item><title><![CDATA[Bitmap 小结]]></title><link>https://blog.youkuaiyun.com/qq994467433/article/details/86660644</link><guid>https://blog.youkuaiyun.com/qq994467433/article/details/86660644</guid><author>qq994467433</author><pubDate>Sat, 26 Jan 2019 20:22:50 +0800</pubDate><description><![CDATA[在Android开发中离不开Bitmap的使用，而Bitmap又是一个吃内存的大胖子（最怕这个胖子和你的应用来个OOM亲密接触）所以在应用中使用Bitmap的时候你得十分小心，不然很有可能就会造成OOM了。本文针对Bitmap做一个简单认识以及在加载bitmap的时候应该怎么防止出现OOM。
一.为什么会出现OOM？
1.每个机型在编译ROM时都设置了一个应用堆内存VM值上限dalvik.vm.h...]]></description><category></category></item><item><title><![CDATA[ListView加载不同的布局]]></title><link>https://blog.youkuaiyun.com/qq994467433/article/details/84109781</link><guid>https://blog.youkuaiyun.com/qq994467433/article/details/84109781</guid><author>qq994467433</author><pubDate>Thu, 15 Nov 2018 19:40:37 +0800</pubDate><description><![CDATA[我们平常使用ListView多半都是用来展示数据的，且每个item的模式都是一样的。但是还有更多的时候会出现不一样的布局，比如你手机联系人的方式。好了不多说，看效果图吧！

为什么我会想到写这篇文章，事情的起因是我在项目中遇到一个需求。需要实现一个WiFi列表界面，熟悉手机的盆友应该知道WiFi列表不是我们随便写一个ListVIew就能实现的了。开始我的想法是用线性布局，中间夹杂需要的标题栏布局等...]]></description><category></category></item><item><title><![CDATA[EditText隐藏系统软键盘以及常用属性]]></title><link>https://blog.youkuaiyun.com/qq994467433/article/details/83996941</link><guid>https://blog.youkuaiyun.com/qq994467433/article/details/83996941</guid><author>qq994467433</author><pubDate>Mon, 12 Nov 2018 19:12:34 +0800</pubDate><description><![CDATA[首先我的需求是进入页面有个EditText，点击要弹出自定义的视图不能弹出系统的软键盘。于是我想到了搜索前任造好的轮子原则开始上网搜索。发现关于EditText隐藏软键盘的方法网上有很多了，但是我试了几种以后发现没有任何效果（难道是我打开的方式不对 ）最后还是找到了方法来解决。好了总结一些常用的方法以及最后采用的方法。
第一种方法：在XML文件下添加：
android:focusable=“tru...]]></description><category></category></item><item><title><![CDATA[GridView长按进入多选模式的解决方案]]></title><link>https://blog.youkuaiyun.com/qq994467433/article/details/83626762</link><guid>https://blog.youkuaiyun.com/qq994467433/article/details/83626762</guid><author>qq994467433</author><pubDate>Thu, 01 Nov 2018 20:48:49 +0800</pubDate><description><![CDATA[先来个效果图，但是我很奇怪为什么上次我的gif会无法显示希望这次可以显示吧！

其实关于适配器系列（GridView,ListView等）的多选模式已经有太多人写过了。且基本思路都是一致的，需要两个标志位。一个是是否是多选模式，一个是是否被选中。但是大部分的文章都是告诉你需要写个bean文件，然后在List里面指定泛型为bean文件，但是这样做有个问题，那就是你获取到的数据在很多情况下无法和bea...]]></description><category></category></item><item><title><![CDATA[自定义Toast]]></title><link>https://blog.youkuaiyun.com/qq994467433/article/details/83547500</link><guid>https://blog.youkuaiyun.com/qq994467433/article/details/83547500</guid><author>qq994467433</author><pubDate>Tue, 30 Oct 2018 19:39:13 +0800</pubDate><description><![CDATA[我相信你一定会用系统自带的Toast，否则你就不会看到这篇文章了。正是由于系统自带的（往往是显示在屏幕的底部）很多时候并不能满足我们的需求所以才需要自定义。好了不多说直接看代码吧。
首先是自定义的工具类
public class ToastUtil {

    private Toast mToast;
    private TextView mTextView;
    private Ti...]]></description><category></category></item><item><title><![CDATA[自定义Dialog遇到的坑]]></title><link>https://blog.youkuaiyun.com/qq994467433/article/details/83547366</link><guid>https://blog.youkuaiyun.com/qq994467433/article/details/83547366</guid><author>qq994467433</author><pubDate>Tue, 30 Oct 2018 19:28:32 +0800</pubDate><description><![CDATA[dialog在项目中运用应该是相当的多了，特别是在删除某些内容的时候一般会有确认提示。因为设计的需要我得自定义一套dialog用来显示，但是遇到了一些坑，记录下来防止继续掉进坑里。

这三个图分别是错误的自定义 正确的自定义以及系统默认的效果。
下面贴上源码
public class MainActivity extends AppCompatActivity implements View.On...]]></description><category></category></item><item><title><![CDATA[ViewPager +Fragment实现数据懒加载]]></title><link>https://blog.youkuaiyun.com/qq994467433/article/details/83448981</link><guid>https://blog.youkuaiyun.com/qq994467433/article/details/83448981</guid><author>qq994467433</author><pubDate>Sat, 27 Oct 2018 19:38:04 +0800</pubDate><description><![CDATA[关于ViewPager延时加载的问题，网上有很多都给了案例了，我自己也看了很多。总结起来就是在用户能看到当前页面才加载数据。然后就是所谓的懒加载只是在需要的时候才加载数据，而其他的控件如TextView这些还是会因为ViewPager 的预加载机制而缓存好。还有懒加载不会把你需要的时间缩短比如你扫描需要10秒，这个时间并不会改变除非你优化性能。
先来个效果图好了
如果效果图看不到，那你可以把你的微...]]></description><category></category></item><item><title><![CDATA[ViewPager + Fragment重复销毁加载视图的解决办法]]></title><link>https://blog.youkuaiyun.com/qq994467433/article/details/83448663</link><guid>https://blog.youkuaiyun.com/qq994467433/article/details/83448663</guid><author>qq994467433</author><pubDate>Sat, 27 Oct 2018 18:53:37 +0800</pubDate><description><![CDATA[因为项目里面的ViewPager + Fragment只有三个碎片，然后就没留意Fragment视图的加载和销毁的事情。只是最近要求要新增加一个碎片，我先加了一个空白的碎片，然后来回切换的时候发现视图被反复加载和销毁了。就开始找方法解决。发现方法挺多的，记录下来分享给大家。
首先之所以会出现这种情况是因为ViewPager有个缓冲机制，它里面有个方法setOffscreenPageLimit();...]]></description><category></category></item><item><title><![CDATA[Android 屏幕适配]]></title><link>https://blog.youkuaiyun.com/qq994467433/article/details/83448522</link><guid>https://blog.youkuaiyun.com/qq994467433/article/details/83448522</guid><author>qq994467433</author><pubDate>Sat, 27 Oct 2018 18:28:43 +0800</pubDate><description><![CDATA[Android 屏幕适配讲真的是贼恶心，虽然已经有很多大神写过怎么适配了，但是我还是想将我自己也是从网络上学习到的适配方案记录下来。首先是一些基本的概念
PPI = Pixels per inch，每英寸上的像素数,即 “像素密度”
xhdpi: 2.0
hdpi: 1.5
mdpi: 1.0 (baseline)
ldpi: 0.75

drawable-ldpi、drawable-mdpi、d...]]></description><category></category></item><item><title><![CDATA[工作中常用的IDEA快捷键]]></title><link>https://blog.youkuaiyun.com/qq994467433/article/details/83447302</link><guid>https://blog.youkuaiyun.com/qq994467433/article/details/83447302</guid><author>qq994467433</author><pubDate>Sat, 27 Oct 2018 16:22:54 +0800</pubDate><description><![CDATA[有时候用的编辑器多了，快捷键容易记混淆，所以我们只用记最实用的快捷键就行了，其他效率不高的到要用的时候再查也不迟
生成常用的if while try catch等语句
首先选中可能跑出异常的代码 然后 Ctrl + Alt + t

给大家分享一下：
Ctrl + R 查询并替换
1.格式化代码:Ctrl+Alt+L
2.自动导入包路径:Ctrl+Alt+O
3.重命名文件、类名、变量名:Shif...]]></description><category></category></item></channel></rss>