<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[zhm1002的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/zhm1002</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; zhm1002]]></copyright><item><title><![CDATA[2021-03-15http statusCode(状态码) 200、300、400、500序列]]></title><link>https://blog.youkuaiyun.com/zhm1002/article/details/114824266</link><guid>https://blog.youkuaiyun.com/zhm1002/article/details/114824266</guid><author>zhm1002</author><pubDate>Mon, 15 Mar 2021 11:28:13 +0800</pubDate><description><![CDATA[201-206都表示服务器成功处理了请求的状态代码，说明网页可以正常访问。
200（成功） 服务器已成功处理了请求。通常，这表示服务器提供了请求的网页。
201（已创建） 请求成功且服务器已创建了新的资源。
202（已接受） 服务器已接受了请求，但尚未对其进行处理。
203（非授权信息） 服务器已成功处理了请求，但返回了可能来自另一来源的信息。
204（无内容） 服务器成功处理了请求，但未返回任何内容。
...]]></description><category></category></item><item><title><![CDATA[yarn 显示 vcores、memory 机制]]></title><link>https://blog.youkuaiyun.com/zhm1002/article/details/111597575</link><guid>https://blog.youkuaiyun.com/zhm1002/article/details/111597575</guid><author>zhm1002</author><pubDate>Wed, 23 Dec 2020 19:43:49 +0800</pubDate><description><![CDATA[以spark 提交 任务为例：

yarn作为cluster manager时，spark（以client模式为例）用spark-submit提交应用程序（或者是spark-shell交互操作）不加任何资源参数时，会使用如下几个默认配置来向yarn的resourcemanager申请container资源：

spark.executor.memory   1gspark.executor.cores     1spark.executor.instances  2spark.yarn.am...]]></description><category></category></item><item><title><![CDATA[hadoop2.x常用端口列表]]></title><link>https://blog.youkuaiyun.com/zhm1002/article/details/110231576</link><guid>https://blog.youkuaiyun.com/zhm1002/article/details/110231576</guid><author>zhm1002</author><pubDate>Fri, 27 Nov 2020 14:54:52 +0800</pubDate><description><![CDATA[Hadoop集群的常用端口列表

这里包含我们使用到的组件：HDFS, YARN, HBase, Hive, ZooKeeper:



组件
			节点
			默认端口
			配置
			用途说明
		HDFS
			DataNode
			50010
			dfs.datanode.address
			datanode服务端口，用于数据传输
		HDFS
			DataNode
			50075
			dfs.datanode.http.address
			http服务的端口
		HDFS
			.]]></description><category></category></item><item><title><![CDATA[Hive 2.3 decimal精度损失问题]]></title><link>https://blog.youkuaiyun.com/zhm1002/article/details/110223957</link><guid>https://blog.youkuaiyun.com/zhm1002/article/details/110223957</guid><author>zhm1002</author><pubDate>Fri, 27 Nov 2020 10:47:56 +0800</pubDate><description><![CDATA[1.准备测试数据

使用如下建表语句，并插入测试数据：


CREATETABLEIFNOTEXISTS test_decimal(

  md5 string,

  id int,

  ty int,

  amount decimal(38, 12)

) stored as orc;

insert into table test_decimal values

('9F99855A44BD41FE592B69E0D36BF3E8', 4591, 2, 18859...]]></description><category></category></item><item><title><![CDATA[HDFS滚动升级]]></title><link>https://blog.youkuaiyun.com/zhm1002/article/details/110118259</link><guid>https://blog.youkuaiyun.com/zhm1002/article/details/110118259</guid><author>zhm1002</author><pubDate>Wed, 25 Nov 2020 10:27:33 +0800</pubDate><description><![CDATA[1.说明

HDFS滚动升级允许独立的升级单个HDFS守护进程。比如说：datanodes可以独立于namenodes单独升级，一个namenode可以独立于其它的namenodes单独升级，namenodes可以独立于datanodes和journal nodes单独升级。

2.升级

在hadoop v2中，HDFS支持高可用的namenodes提供服务和线性的兼容。这两个功能使得升级HDFS而不用停机成为可能，为了在不停机的情况下升级HDFS集群，集群必须是HA方式。

如果一个特性在新版本的软件可]]></description><category></category></item><item><title><![CDATA[Hadoop 垃圾回收机制原理及其源码分析]]></title><link>https://blog.youkuaiyun.com/zhm1002/article/details/109576419</link><guid>https://blog.youkuaiyun.com/zhm1002/article/details/109576419</guid><author>zhm1002</author><pubDate>Mon, 09 Nov 2020 14:07:50 +0800</pubDate><description><![CDATA[一、两个主要的配置参数：

fs.trash.interval

默认值为：0（代表删除的数据不进入垃圾桶，直接删除）

单位：分钟

描述：垃圾数据保存的时间

fs.trash.checkpoint.interval

默认值为：0

单位：分钟

描述：多久进行一次垃圾清理和创建检查点的检测，默认值为0，此时如果设置了 fs.trash.interval，则该值就会和 fs.trash.interval 的值保持一致，另外该值只能小于等于 fs.trash.interval 的值。

二、原理介绍：
]]></description><category></category></item><item><title><![CDATA[springboot 配置]]></title><link>https://blog.youkuaiyun.com/zhm1002/article/details/108024869</link><guid>https://blog.youkuaiyun.com/zhm1002/article/details/108024869</guid><author>zhm1002</author><pubDate>Sat, 15 Aug 2020 17:09:26 +0800</pubDate><description><![CDATA[mvc
spring.mvc.async.request-timeout

设定async请求的超时时间，以毫秒为单位，如果没有设置的话，以具体实现的超时时间为准，比如tomcat的servlet3的话是10秒.

spring.mvc.date-format

设定日期的格式，比如dd/MM/yyyy.

spring.mvc.favicon.enabled

是否支持favicon.ico，默认为: true

spring.mvc.ignore-default-model-on-redirect

在]]></description><category></category></item><item><title><![CDATA[Kerberos  常见错误]]></title><link>https://blog.youkuaiyun.com/zhm1002/article/details/108022612</link><guid>https://blog.youkuaiyun.com/zhm1002/article/details/108022612</guid><author>zhm1002</author><pubDate>Sat, 15 Aug 2020 14:49:59 +0800</pubDate><description><![CDATA[本节按字母顺序 (A-M) 列出了 Kerberos 命令、Kerberos 守护进程、PAM 框架、GSS 接口、NFS 服务和 Kerberos 库的常见错误消息。

备注：下面这些错误有部分是通用的错误，所以解决方法并不一定适用所有场景，具体的解决方案是需要具体分析。不能一概而论。



All authentication systems disabled; connection refused

原因:

此版本的 rlogind 不支持任何验证机制。

解决方法:

请确保调用的 rlogin.]]></description><category></category></item><item><title><![CDATA[sprint datasource 配置属性]]></title><link>https://blog.youkuaiyun.com/zhm1002/article/details/107834507</link><guid>https://blog.youkuaiyun.com/zhm1002/article/details/107834507</guid><author>zhm1002</author><pubDate>Thu, 06 Aug 2020 10:58:26 +0800</pubDate><description><![CDATA[datasource


	spring.dao.exceptiontranslation.enabled
	是否开启PersistenceExceptionTranslationPostProcessor，默认为true
	
	
	spring.datasource.abandon-when-percentage-full
	设定超时被废弃的连接占到多少比例时要被关闭或上报
	
	
	spring.datasource.allow-pool-suspension
	使用Hikari pool时，是否允许连]]></description><category></category></item><item><title><![CDATA[Linux tar打包和split分割]]></title><link>https://blog.youkuaiyun.com/zhm1002/article/details/107823695</link><guid>https://blog.youkuaiyun.com/zhm1002/article/details/107823695</guid><author>zhm1002</author><pubDate>Wed, 05 Aug 2020 19:57:23 +0800</pubDate><description><![CDATA[打包分割：tar zcvf - tj-krb-ide.image | split -b 3000m - tj-krb-ide.tar.gz 

合并：cat tj-krb-ide.tar.gza* &gt; tj-krb-ide.tar.gz

解压：tar zxvf tj-krb-ide.tar.gz
]]></description><category></category></item><item><title><![CDATA[非递减，桶排序]]></title><link>https://blog.youkuaiyun.com/zhm1002/article/details/107607287</link><guid>https://blog.youkuaiyun.com/zhm1002/article/details/107607287</guid><author>zhm1002</author><pubDate>Mon, 27 Jul 2020 11:07:11 +0800</pubDate><description><![CDATA[做非递减的最小移动个数

输入：heights =[1,1,4,2,1,3]
输出：3
解释：
当前数组：[1,1,4,2,1,3]
目标数组：[1,1,1,2,3,4]
在下标 2 处（从 0 开始计数）出现 4 vs 1 ，所以我们必须移动。
在下标 4 处（从 0 开始计数）出现 1 vs 3 ，所以我们必须移动。
在下标 5 处（从 0 开始计数）出现 3 vs 4 ，所以我们必须移动。
示例 2：

输入：heights = [5,1,2,3,4]
输出：5
示例 3：

输入：heights..]]></description><category></category></item><item><title><![CDATA[Markdown 语法]]></title><link>https://blog.youkuaiyun.com/zhm1002/article/details/107045484</link><guid>https://blog.youkuaiyun.com/zhm1002/article/details/107045484</guid><author>zhm1002</author><pubDate>Tue, 30 Jun 2020 16:49:14 +0800</pubDate><description><![CDATA[Markdown是一种纯文本格式的标记语言。通过简单的标记语法，它可以使普通文本内容具有一定的格式。

相比WYSIWYG编辑器

优点：
1、因为是纯文本，所以只要支持Markdown的地方都能获得一样的编辑效果，可以让作者摆脱排版的困扰，专心写作。
2、操作简单。比如:WYSIWYG编辑时标记个标题，先选中内容，再点击导航栏的标题按钮，选择几级标题。要三个步骤。而Markdown只需要在标题内容前加#即可

缺点：
1、需要记一些语法（当然，是很简单。五分钟学会）。
2、有些平台不支持Markdown编]]></description><category></category></item><item><title><![CDATA[并发编程 synchronized 的探究]]></title><link>https://blog.youkuaiyun.com/zhm1002/article/details/106960381</link><guid>https://blog.youkuaiyun.com/zhm1002/article/details/106960381</guid><author>zhm1002</author><pubDate>Sun, 28 Jun 2020 17:53:21 +0800</pubDate><description><![CDATA[多线程并发编程中synchronized 一直是元老级别的角色。在java se1.6 以后为了减少获得锁和释放锁带来的性能消耗引入了偏向锁和轻量级锁，以及锁的存储结构和升级过程。

   1、 java 中每一个对象都有可以作为锁，具体表现为：

   1）对于普通同步方法，锁是当前的实例对象。

   2）对于静态同步方法，锁是当前类的Class对象

   3）对于同步方法块，锁是synchronized 括号里配置的对象。

   2、同步机...]]></description><category></category></item><item><title><![CDATA[并发编程中 volatile 的探究]]></title><link>https://blog.youkuaiyun.com/zhm1002/article/details/106958195</link><guid>https://blog.youkuaiyun.com/zhm1002/article/details/106958195</guid><author>zhm1002</author><pubDate>Thu, 25 Jun 2020 16:55:41 +0800</pubDate><description><![CDATA[在多线程并发编程中，synchronized 和 volatile 都扮演着重要的角色，这边文章主要探究 volatile 的相关应用。

    volatile 是 轻量级的synchronized 它在处理器开发中保证了共享变量的 “可见性“-- 当一个线程修改一个共享变量时，另外一个线程能读取到这个修改的值。如果volatile 使用的恰当的话，它比synchronized 的使用和执行成本更低。因为它不会引起上下文的切换和调度。

  一、volatile 的定义

   ...]]></description><category></category></item><item><title><![CDATA[并发编程的CPU术语定义]]></title><link>https://blog.youkuaiyun.com/zhm1002/article/details/106957921</link><guid>https://blog.youkuaiyun.com/zhm1002/article/details/106957921</guid><author>zhm1002</author><pubDate>Thu, 25 Jun 2020 14:47:16 +0800</pubDate><description><![CDATA[术语
			英文单词
			术语描述
		内存屏障
			memory barriers
			是一组处理器指令，用于实现对内存操作的顺序限制
		缓冲行
			cache line
			CPU 高速缓存中可以分配的最小存储单元。处理器填写缓存行时会加载整个缓存行，现代CPU需要执行几百次CPU执行
		原子操作
			atomic operations
			不可中断的一个或者一系列操作
		缓存行填充
			cache line fill
			当处理器识别到从内存中读取操作数是可缓存的，处理器读取整]]></description><category></category></item><item><title><![CDATA[tmux 命令介绍]]></title><link>https://blog.youkuaiyun.com/zhm1002/article/details/106931422</link><guid>https://blog.youkuaiyun.com/zhm1002/article/details/106931422</guid><author>zhm1002</author><pubDate>Tue, 23 Jun 2020 20:31:18 +0800</pubDate><description><![CDATA[Tmux 是一个终端复用器（terminal multiplexer），非常有用，属于常用的开发工具。

1.1 会话与进程

命令行的典型使用方式是，打开一个终端窗口（terminal window，以下简称"窗口"），在里面输入命令。用户与计算机的这种临时的交互，称为一次"会话"（session）。

会话的一个重要特点是，窗口与其中启动的进程是连在一起的。打开窗口，会话开始；关闭窗口，会话结束，会话内部的进程也会随之终止，不管有没有运行完。

一个典型的例子就是，SSH 登录远程计算机，打开一个远程.]]></description><category></category></item><item><title><![CDATA[基于 hadoop RPC 协议开发的服务和客户端添加 kerberos 认证]]></title><link>https://blog.youkuaiyun.com/zhm1002/article/details/106919764</link><guid>https://blog.youkuaiyun.com/zhm1002/article/details/106919764</guid><author>zhm1002</author><pubDate>Tue, 23 Jun 2020 12:06:55 +0800</pubDate><description><![CDATA[服务端：

这次开发的服务有两个前提设置：

1）是基于NN启动而启动的。

2）使用了 kerberos 认证。

3）使用自己设置的端口和进程单独服务。

所以，在服务启动时可以使用NN的kerberos 认证信息进行认证。在启动服务前，通过HADOOP 的配置文件获取到 principal 和 keyTabPath 并将principal 的值赋于CommonConfigurationKeys.HADOOP_SECURITY_SERVICE_USER_NAME_KEY 这个配置参数。



然后获..]]></description><category></category></item><item><title><![CDATA[Idea运行时报错Error running  Application Command line is too long的解决方法]]></title><link>https://blog.youkuaiyun.com/zhm1002/article/details/106919412</link><guid>https://blog.youkuaiyun.com/zhm1002/article/details/106919412</guid><author>zhm1002</author><pubDate>Tue, 23 Jun 2020 11:27:03 +0800</pubDate><description><![CDATA[在IDEA 运行有时会报：

Error running ‘Application’: Command line is too long. Shorten command line for Application or aalso for Spring Boot default configuration

解决方法：

1）找到项目里面的idea/workspace.xml文件。



2）再找到&lt;component name="PropertiesComponent"&gt;&lt;/compon]]></description><category></category></item><item><title><![CDATA[hadoop 序列化]]></title><link>https://blog.youkuaiyun.com/zhm1002/article/details/106648064</link><guid>https://blog.youkuaiyun.com/zhm1002/article/details/106648064</guid><author>zhm1002</author><pubDate>Tue, 09 Jun 2020 18:13:59 +0800</pubDate><description><![CDATA[HADOOP 的 I/O 是由传统的 I/O 系统发展而来，需要处理 PB、TB级别的数据，所以包含类一些面向海量数据处理的基本输入输出工具。

1）序列化：

 对象的序列化用于将对象编码为一个字节流，以及从字节流中重新构建对象。

 将一个对象编码成一个自己流称为序列化该对象（Serializing）

 相反的处理过程称为反序列化（Deserializing）

序列化有三种主要的用途：

 1）作为一种持久化格式，存储到磁盘。

 2）作为一种通信数据格式，从一个服务器传到另一个...]]></description><category></category></item><item><title><![CDATA[org.apache.hadoop.conf.Configuration 成员变量]]></title><link>https://blog.youkuaiyun.com/zhm1002/article/details/106646932</link><guid>https://blog.youkuaiyun.com/zhm1002/article/details/106646932</guid><author>zhm1002</author><pubDate>Tue, 09 Jun 2020 17:28:40 +0800</pubDate><description><![CDATA[非静态成员变量：

1）private boolean quietmode = true;

设置加载的配置模式，默认为 true,加载解析配置文件的过程中不会打印日志。开发人员的调试变量。

2）private ArrayList&lt;Resource&gt; resources = new ArrayList&lt;Resource&gt;();

保存了addResource() 方法添加 Configuration 对象的资源。有以下几种形式：

#CLASSPATH 资源

public voi]]></description><category></category></item></channel></rss>