<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Java_Soldier的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Java_Soldier</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Java_Soldier]]></copyright><item><title><![CDATA[好久没来了]]></title><link>https://blog.youkuaiyun.com/Java_Soldier/article/details/103495955</link><guid>https://blog.youkuaiyun.com/Java_Soldier/article/details/103495955</guid><author>Java_Soldier</author><pubDate>Wed, 11 Dec 2019 17:06:53 +0800</pubDate><description><![CDATA[好久没来了
工作真的很充实，笔记的习惯没有停，但是整理的习惯却有些怠慢

]]></description><category></category></item><item><title><![CDATA[spark深度解析：调度算法]]></title><link>https://blog.youkuaiyun.com/Java_Soldier/article/details/84584271</link><guid>https://blog.youkuaiyun.com/Java_Soldier/article/details/84584271</guid><author>Java_Soldier</author><pubDate>Wed, 28 Nov 2018 14:55:29 +0800</pubDate><description><![CDATA[基于spark1.3.1的源码解读
不得不佩服spark源码的精炼，standalone模式中，不到100行就搞定了资源调度，spark提供两种资源调度方式，尽量打散：即我们的executor会尽量的分配更多的worker上；尽量集中：即我们的executor会尽量的分配更少的worker上；这其中是通过spreadOutApps变量来控制的，true为尽量分散。
 private def sch...]]></description><category></category></item><item><title><![CDATA[inux shell脚本攻略06-循环结构、选择结构、算术比较、字符串比较]]></title><link>https://blog.youkuaiyun.com/Java_Soldier/article/details/83446649</link><guid>https://blog.youkuaiyun.com/Java_Soldier/article/details/83446649</guid><author>Java_Soldier</author><pubDate>Sat, 27 Oct 2018 15:28:22 +0800</pubDate><description><![CDATA[for 循环
for var in list
do
   commands
done

echo {1…50}能够生成一个数字列表，echo{a…z}生成小写字母列表
for var in {A..Z}
do
   commands
done

也可以采用c语言的写法
for((i=0;i&amp;lt;10;i++))
{
   command
}

while循环
while condition
do...]]></description><category></category></item><item><title><![CDATA[linux shell脚本攻略05-字段分隔符]]></title><link>https://blog.youkuaiyun.com/Java_Soldier/article/details/83446617</link><guid>https://blog.youkuaiyun.com/Java_Soldier/article/details/83446617</guid><author>Java_Soldier</author><pubDate>Sat, 27 Oct 2018 15:23:55 +0800</pubDate><description><![CDATA[内部字段分隔符（Internal Field Separator,IFS）存储定界符的环境变量，IFS默认符为空白字符（换行符，制表符，或者空格）
比如一个数据为逗号分隔
data=&quot;name,age,rollno,location&quot;

如果直接输出
for item in $data
do
echo $item
done

将输出
name,age,rollno,location

如果修改了I...]]></description><category></category></item><item><title><![CDATA[linux shell脚本攻略04-将命令序列的输出读入变量，管道]]></title><link>https://blog.youkuaiyun.com/Java_Soldier/article/details/83446587</link><guid>https://blog.youkuaiyun.com/Java_Soldier/article/details/83446587</guid><author>Java_Soldier</author><pubDate>Sat, 27 Oct 2018 15:21:48 +0800</pubDate><description><![CDATA[ls | cat -n &amp;amp;gt; out.txt

①子shell的方式
output=$(ls |cat -n)

②反引用
output=`ls | cat -n`

第一种方式是子shell的这种方式，利用子shell生成一个独立的进程，可以使用()操作符来定义一个子shell；注意：命令在子shell中执行不会对当前shell有任何影响，所有的改变仅限于子shell
pwd;
(cd /b...]]></description><category></category></item><item><title><![CDATA[linux shell脚本攻略03-数组与关联数组]]></title><link>https://blog.youkuaiyun.com/Java_Soldier/article/details/83446571</link><guid>https://blog.youkuaiyun.com/Java_Soldier/article/details/83446571</guid><author>Java_Soldier</author><pubDate>Sat, 27 Oct 2018 15:20:09 +0800</pubDate><description><![CDATA[定义数组
①单行中使用一列值来定义一个索引
array_var=(1 2 3 4 5 6)，这些值会被存储在以0为起始索引的连续位置上

②还可以将数组定义成一组“索引-值”
array_var[0]=&quot;test1&quot;
array_var[1]=&quot;test2&quot;

数组的打印
echo ${array_var[0]}

打印数组清单，数组内所有的值
echo ${array_var[*]}
或者
ec...]]></description><category></category></item><item><title><![CDATA[linux shell脚本攻略02-算术运算]]></title><link>https://blog.youkuaiyun.com/Java_Soldier/article/details/83446547</link><guid>https://blog.youkuaiyun.com/Java_Soldier/article/details/83446547</guid><author>Java_Soldier</author><pubDate>Sat, 27 Oct 2018 15:18:01 +0800</pubDate><description><![CDATA[bash shell环境中，可以使用let 、(()) 、[]执行基本的算术运算，而在进行高级操作时，也可以用expr、bc两个工具
（1）let命令，当使用let的时候，变量前面不需要加$
let result=no1+no2
echo ${result}

自加自减操作
let no1++
let no2--

简写形式
let no1+=6

（2）[]使用方法与let相似
result=$...]]></description><category></category></item><item><title><![CDATA[linux shell脚本攻略01-文件描述符和重定向]]></title><link>https://blog.youkuaiyun.com/Java_Soldier/article/details/83446446</link><guid>https://blog.youkuaiyun.com/Java_Soldier/article/details/83446446</guid><author>Java_Soldier</author><pubDate>Sat, 27 Oct 2018 15:07:44 +0800</pubDate><description><![CDATA[文件描述符是与某个打开的文件或数据流相关联的整数，文件描述符0、1、2是系统预留的
标准输入（stdin）----------0
标准输出（stdout）---------1
标准错误（stderr）----------2
覆盖
echo “hello world” &amp;amp;amp;gt; a.txt   重定向覆盖，a.txt的内容首先被清空
追加
echo “hello world” &amp;amp;amp;gt;&amp;amp;amp;gt; a....]]></description><category></category></item><item><title><![CDATA[sparkstreaming控制消费速率]]></title><link>https://blog.youkuaiyun.com/Java_Soldier/article/details/83384087</link><guid>https://blog.youkuaiyun.com/Java_Soldier/article/details/83384087</guid><author>Java_Soldier</author><pubDate>Thu, 25 Oct 2018 18:19:01 +0800</pubDate><description><![CDATA[反压机制：
spark1.5以后，通过动态收集系统的一些数据来自动的适配集群数据处理能力
在默认情况下，Spark Streaming 通过 receivers (或者是 Direct 方式) 以生产者生产数据的速率接收数据。当 batch processing time &amp;gt; batch interval 的时候，也就是每个批次数据处理的时间要比 Spark Streaming 批处理间隔时...]]></description><category></category></item><item><title><![CDATA[记一次Kafka生产问题]]></title><link>https://blog.youkuaiyun.com/Java_Soldier/article/details/83070061</link><guid>https://blog.youkuaiyun.com/Java_Soldier/article/details/83070061</guid><author>Java_Soldier</author><pubDate>Tue, 16 Oct 2018 11:13:15 +0800</pubDate><description><![CDATA[最近北京电信的生产服务器突然间磁盘报警，发现是kafka-log的__consumer__offsets–55数据量过大导致，这个topic是kafka记录偏移量的主题，这个分区的数据量达到3.1个T；
默认配置server.conf里的核心配置项
#最大日志保留大小 log.retention.bytes=1073741824
#日志保留时间长度 log.retention.minutes=10...]]></description><category></category></item><item><title><![CDATA[反射小结]]></title><link>https://blog.youkuaiyun.com/Java_Soldier/article/details/82761740</link><guid>https://blog.youkuaiyun.com/Java_Soldier/article/details/82761740</guid><author>Java_Soldier</author><pubDate>Tue, 18 Sep 2018 18:01:10 +0800</pubDate><description><![CDATA[1.简单的来说，反射机制指的是程序在运行时能够获取自身的信息。在java中，只要给定类的名字， 那么就可以通过反射机制来获得类的所有信息。
2. 通过类的class文件获取类或者类对象
常用方法：
获取类的class文件：①peopleClass = Class.forName(People)；
②peopleClass = People.class；
通过类文件创建一个实例：（底层调用的是这个类...]]></description><category></category></item><item><title><![CDATA[hive sql注意事项]]></title><link>https://blog.youkuaiyun.com/Java_Soldier/article/details/81410839</link><guid>https://blog.youkuaiyun.com/Java_Soldier/article/details/81410839</guid><author>Java_Soldier</author><pubDate>Sat, 04 Aug 2018 14:37:19 +0800</pubDate><description><![CDATA[如果是按时间分区的表，查询时一定要使用分区限制，如果没有分区限制，会从该表的所有数据里面遍历。

注意sql中or的使用，or 这个逻辑必须单独括起来，否则可能引起无分区限制，下面举个例子，想查询到的是gd或gx的某天的数据。 
Select x from t where ds=d1 and province=’gd’ or province=’gx’ 
该语句会从所有的分区里面查询！也没有得到自...]]></description><category></category></item><item><title><![CDATA[shell特殊变量-$?,$@,$*,$$,$n等]]></title><link>https://blog.youkuaiyun.com/Java_Soldier/article/details/80744899</link><guid>https://blog.youkuaiyun.com/Java_Soldier/article/details/80744899</guid><author>Java_Soldier</author><pubDate>Wed, 20 Jun 2018 13:40:28 +0800</pubDate><description><![CDATA[$0 ： 输出函数或脚本的名字

$n ： 输出函数或脚本的第n个参数



$$ ：输出当前shell所属的pid ，可通过这个命令获取shell运行时的pid

$# ：输出函数或脚本的输入参数个数

$@ ：输出函数或脚本的输入参数

$* ：输出函数或脚本的输入参数

$* 和 $@ 都表示传递给函数或脚本的所有参数，不被双引号(&quot; &quot;)包含时，都以&quot;$1&quot; &quot;$2&quot; … &quot;$n&quot; 的形式...]]></description><category></category></item><item><title><![CDATA[linux常用命令-文件编辑类（cat，vim，more）]]></title><link>https://blog.youkuaiyun.com/Java_Soldier/article/details/80742929</link><guid>https://blog.youkuaiyun.com/Java_Soldier/article/details/80742929</guid><author>Java_Soldier</author><pubDate>Wed, 20 Jun 2018 10:42:58 +0800</pubDate><description><![CDATA[cat 
描述： 
将数据显示到基本输出中 
参数： 
-n：显示行号（包括空行） 
-b：显示行号（不包括空行） 
-s：将两个及以上空行合并为一个空行 
样例： 
cat -sb a.txt b.txt &amp;gt;&amp;gt; c.txt 将a.txt，b.txt的数据加上行号，追加到c.txt中，将两个及以上空行合并为一个空行

[jiangt@BDI10 command]$ cat -sb 1....]]></description><category></category></item><item><title><![CDATA[hbase快速入门文章传送门]]></title><link>https://blog.youkuaiyun.com/Java_Soldier/article/details/80708346</link><guid>https://blog.youkuaiyun.com/Java_Soldier/article/details/80708346</guid><author>Java_Soldier</author><pubDate>Fri, 15 Jun 2018 17:43:25 +0800</pubDate><description><![CDATA[归纳hbase文章入口

hbase快速入门之—简介 
 https://blog.youkuaiyun.com/java_soldier/article/details/78776605

hbase快速入门之—逻辑视图 https://blog.youkuaiyun.com/java_soldier/article/details/78776647

hbase快速入门之—物理存储 
https://blog.csd...]]></description><category></category></item><item><title><![CDATA[【菜鸟系列】hbase（java）接口--基于hbase1.1.2]]></title><link>https://blog.youkuaiyun.com/Java_Soldier/article/details/80708240</link><guid>https://blog.youkuaiyun.com/Java_Soldier/article/details/80708240</guid><author>Java_Soldier</author><pubDate>Fri, 15 Jun 2018 17:36:36 +0800</pubDate><description><![CDATA[更多hbase简介：请查看hbase入门系列 
传送门：https://blog.youkuaiyun.com/java_soldier/article/details/78776605 
最近集群升级，开启kerberos认证，所有的应用都要改造，所以复习了下hbase的接口操作，代码见下方

先讲解下主要的接口类

HBaseConfiguration


  org.apache.hadoop.hbas...]]></description><category></category></item><item><title><![CDATA[【菜鸟系列】spark常用算子总结（java）--union,intersection,coalesce,repartition,cartesian,distinct]]></title><link>https://blog.youkuaiyun.com/Java_Soldier/article/details/80624473</link><guid>https://blog.youkuaiyun.com/Java_Soldier/article/details/80624473</guid><author>Java_Soldier</author><pubDate>Fri, 08 Jun 2018 16:03:10 +0800</pubDate><description><![CDATA[/**
 * union
 * 合并
  */
JavaRDD rdd1 = jsc.parallelize(Arrays.asList(1,2,3,4,5,6,7),2);
JavaRDD rdd2 = jsc.parallelize(Arrays.asList(1,21,31,41,51,61,7),2);
JavaRDD rdd3 = rdd1.union(rdd2);
//System.o...]]></description><category></category></item><item><title><![CDATA[redis事务]]></title><link>https://blog.youkuaiyun.com/Java_Soldier/article/details/80621172</link><guid>https://blog.youkuaiyun.com/Java_Soldier/article/details/80621172</guid><author>Java_Soldier</author><pubDate>Fri, 08 Jun 2018 11:47:49 +0800</pubDate><description><![CDATA[redis的事务不同于关系型数据库的事务，不完全遵从ACID的4个特点；redis事务是指可以一次执行多个命令。 
  ● 批量操作在发送 EXEC 命令前被放入队列缓存。 
  ● 收到 EXEC 命令后进入事务执行，事务中任意命令执行失败，其余的命令依然被执行。 
  ● 在事务执行过程，其他客户端提交的命令请求不会插入到事务执行命令序列中。

一个redis事务从开始到结束经过三个过程： 
...]]></description><category></category></item><item><title><![CDATA[【菜鸟系列】spark常用算子总结（scala、java）--map，flatMap，flatMapToPair]]></title><link>https://blog.youkuaiyun.com/Java_Soldier/article/details/80583336</link><guid>https://blog.youkuaiyun.com/Java_Soldier/article/details/80583336</guid><author>Java_Soldier</author><pubDate>Tue, 05 Jun 2018 16:31:52 +0800</pubDate><description><![CDATA[map，flatMap，flatMapToPair是最常用的算子，map算子的输入和输出是一对一的，也就是子RDD的分区与父RDD的分区时一对一的关系；flatMap是压平，输入和输出是一对多的关系；需要注意的是：scala版本的map可以将RDD转成PairRDD，但是在java版本中，这个功能是通过mapToPair函数实现的，需要实现PairFunction函数；scala版本没有flatM...]]></description><category></category></item><item><title><![CDATA[【菜鸟系列】spark常用算子总结（scala、java）--groupByKey，reduceByKey]]></title><link>https://blog.youkuaiyun.com/Java_Soldier/article/details/80582336</link><guid>https://blog.youkuaiyun.com/Java_Soldier/article/details/80582336</guid><author>Java_Soldier</author><pubDate>Tue, 05 Jun 2018 15:41:41 +0800</pubDate><description><![CDATA[groupByKey和reduceByKey是常用的聚合函数，作用的数据集为PairRDD

scala 
reduceByKey函数原型


  def reduceByKey(partitioner: Partitioner, func: (V, V) =&amp;amp;gt; V): RDD[(K, V)] = self.withScope { 
      combineByKeyWithClassTa...]]></description><category></category></item></channel></rss>