From 5249b0476ebc6c403d2fd8e0b12d4bd3d7c4a251 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=BD=97=E7=A5=A5?= <1366971433@qq.com>
Date: Mon, 1 Jun 2020 14:35:36 +0800
Subject: [PATCH] add pictures
---
...0_\347\232\204\344\275\277\347\224\250.md" | 3 +++
...0_\347\232\204\344\275\277\347\224\250.md" | 3 +++
"notes/Azkaban\347\256\200\344\273\213.md" | 3 +++
notes/Flink_Data_Sink.md | 3 +++
notes/Flink_Data_Source.md | 3 +++
notes/Flink_Data_Transformation.md | 3 +++
notes/Flink_Windows.md | 3 +++
...57\345\242\203\346\220\255\345\273\272.md" | 3 +++
...02\345\277\265\347\273\274\350\277\260.md" | 3 +++
...45\347\202\271\346\234\272\345\210\266.md" | 3 +++
"notes/Flume\346\225\264\345\220\210Kafka.md" | 3 +++
...72\346\234\254\344\275\277\347\224\250.md" | 3 +++
notes/HDFS-Java-API.md | 3 +++
...7\224\250Shell\345\221\275\344\273\244.md" | 3 +++
notes/Hadoop-HDFS.md | 3 +++
notes/Hadoop-MapReduce.md | 3 +++
notes/Hadoop-YARN.md | 3 +++
notes/Hbase_Java_API.md | 3 +++
notes/Hbase_Shell.md | 3 +++
...06\345\231\250\350\257\246\350\247\243.md" | 3 +++
...76\344\270\216\345\244\207\344\273\275.md" | 3 +++
...70\255\351\227\264\345\261\202_Phoenix.md" | 3 +++
"notes/Hbase\347\256\200\344\273\213.md" | 3 +++
...60\346\215\256\347\273\223\346\236\204.md" | 3 +++
...44\345\231\250\350\257\246\350\247\243.md" | 3 +++
...72\346\234\254\344\275\277\347\224\250.md" | 3 +++
...14\345\210\206\346\241\266\350\241\250.md" | 3 +++
...347\224\250DDL\346\223\215\344\275\234.md" | 3 +++
...347\224\250DML\346\223\215\344\275\234.md" | 3 +++
...45\350\257\242\350\257\246\350\247\243.md" | 3 +++
...70\345\277\203\346\246\202\345\277\265.md" | 3 +++
...76\345\222\214\347\264\242\345\274\225.md" | 3 +++
...71\350\200\205\350\257\246\350\247\243.md" | 3 +++
...57\346\234\254\346\234\272\345\210\266.md" | 3 +++
...47\350\200\205\350\257\246\350\247\243.md" | 3 +++
"notes/Kafka\347\256\200\344\273\213.md" | 3 +++
...60\345\222\214\351\227\255\345\214\205.md" | 3 +++
...27\350\241\250\345\222\214\351\233\206.md" | 3 +++
...14\350\277\220\347\256\227\347\254\246.md" | 3 +++
"notes/Scala\346\225\260\347\273\204.md" | 3 +++
...04\345\222\214\345\205\203\347\273\204.md" | 3 +++
...41\345\274\217\345\214\271\351\205\215.md" | 3 +++
...47\345\210\266\350\257\255\345\217\245.md" | 3 +++
...57\345\242\203\351\205\215\347\275\256.md" | 3 +++
...73\345\222\214\345\257\271\350\261\241.md" | 3 +++
...73\345\236\213\345\217\202\346\225\260.md" | 3 +++
...77\345\222\214\347\211\271\350\264\250.md" | 3 +++
...20\345\274\217\345\217\202\346\225\260.md" | 3 +++
...06\345\220\210\347\261\273\345\236\213.md" | 3 +++
...2\214DataFrame\347\256\200\344\273\213.md" | 3 +++
...50\346\225\260\346\215\256\346\272\220.md" | 3 +++
...32\345\220\210\345\207\275\346\225\260.md" | 3 +++
...24\347\273\223\346\223\215\344\275\234.md" | 3 +++
notes/Spark_RDD.md | 3 +++
...16\346\265\201\345\244\204\347\220\206.md" | 3 +++
...72\346\234\254\346\223\215\344\275\234.md" | 3 +++
...Streaming\346\225\264\345\220\210Flume.md" | 3 +++
...Streaming\346\225\264\345\220\210Kafka.md" | 3 +++
...72\346\234\254\344\275\277\347\224\250.md" | 3 +++
...\222\214Action\347\256\227\345\255\220.md" | 3 +++
"notes/Spark\347\256\200\344\273\213.md" | 3 +++
...77\346\222\255\345\217\230\351\207\217.md" | 3 +++
...34\344\270\232\346\217\220\344\272\244.md" | 3 +++
...ybtais+Phoenix\346\225\264\345\220\210.md" | 3 +++
...72\346\234\254\344\275\277\347\224\250.md" | 3 +++
...13\344\270\216\345\256\211\350\243\205.md" | 3 +++
...71\346\257\224\345\210\206\346\236\220.md" | 3 +++
...04\347\220\206\347\256\200\344\273\213.md" | 3 +++
...02\345\277\265\350\257\246\350\247\243.md" | 3 +++
...41\345\236\213\350\257\246\350\247\243.md" | 3 +++
...3\206\346\210\220HBase\345\222\214HDFS.md" | 3 +++
"notes/Storm\351\233\206\346\210\220Kakfa.md" | 3 +++
...6\210\220Redis\350\257\246\350\247\243.md" | 3 +++
...03\351\231\220\346\216\247\345\210\266.md" | 3 +++
...256\242\346\210\267\347\253\257Curator.md" | 3 +++
...7\224\250Shell\345\221\275\344\273\244.md" | 3 +++
...70\345\277\203\346\246\202\345\277\265.md" | 3 +++
...21\345\217\212\351\203\250\347\275\262.md" | 3 +++
.../installation/Flink_Standalone_Cluster.md | 3 +++
...57\345\242\203\346\220\255\345\273\272.md" | 3 +++
...57\345\242\203\346\220\255\345\273\272.md" | 3 +++
...57\345\242\203\346\220\255\345\273\272.md" | 3 +++
...57\345\242\203\346\220\255\345\273\272.md" | 3 +++
...me\347\232\204\345\256\211\350\243\205.md" | 3 +++
...344\270\213JDK\345\256\211\350\243\205.md" | 3 +++
...\270\213Python\345\256\211\350\243\205.md" | 3 +++
...11\350\243\205\351\203\250\347\275\262.md" | 3 +++
...57\345\242\203\346\220\255\345\273\272.md" | 3 +++
...57\345\242\203\346\220\255\345\273\272.md" | 3 +++
...57\345\242\203\346\220\255\345\273\272.md" | 3 +++
...57\345\242\203\346\220\255\345\273\272.md" | 3 +++
...57\345\242\203\346\220\255\345\273\272.md" | 3 +++
...57\347\224\250\351\233\206\347\276\244.md" | 3 +++
...57\347\224\250\351\233\206\347\276\244.md" | 3 +++
...\345\244\232IP\351\205\215\347\275\256.md" | 3 +++
...46\344\271\240\350\267\257\347\272\277.md" | 3 +++
...11\350\243\205\346\214\207\345\215\227.md" | 3 +++
...23\345\214\205\346\226\271\345\274\217.md" | 3 +++
...35\347\273\264\345\257\274\345\233\276.md" | 3 +++
...45\345\205\267\346\216\250\350\215\220.md" | 3 +++
pictures/weixin-desc.png | Bin 45299 -> 34582 bytes
101 files changed, 300 insertions(+)
diff --git "a/notes/Azkaban_Flow_1.0_\347\232\204\344\275\277\347\224\250.md" "b/notes/Azkaban_Flow_1.0_\347\232\204\344\275\277\347\224\250.md"
index 0f1b05bc..a4b61f40 100644
--- "a/notes/Azkaban_Flow_1.0_\347\232\204\344\275\277\347\224\250.md"
+++ "b/notes/Azkaban_Flow_1.0_\347\232\204\344\275\277\347\224\250.md"
@@ -223,3 +223,6 @@ memCheck.enabled=false
+
+
+
\ No newline at end of file
diff --git "a/notes/Azkaban_Flow_2.0_\347\232\204\344\275\277\347\224\250.md" "b/notes/Azkaban_Flow_2.0_\347\232\204\344\275\277\347\224\250.md"
index ff303387..51e47194 100644
--- "a/notes/Azkaban_Flow_2.0_\347\232\204\344\275\277\347\224\250.md"
+++ "b/notes/Azkaban_Flow_2.0_\347\232\204\344\275\277\347\224\250.md"
@@ -294,3 +294,6 @@ nodes:
1. [Azkaban Flow 2.0 Design](https://github.com/azkaban/azkaban/wiki/Azkaban-Flow-2.0-Design)
2. [Getting started with Azkaban Flow 2.0](https://github.com/azkaban/azkaban/wiki/Getting-started-with-Azkaban-Flow-2.0)
+
+
+
\ No newline at end of file
diff --git "a/notes/Azkaban\347\256\200\344\273\213.md" "b/notes/Azkaban\347\256\200\344\273\213.md"
index 668fd693..625fe3d3 100644
--- "a/notes/Azkaban\347\256\200\344\273\213.md"
+++ "b/notes/Azkaban\347\256\200\344\273\213.md"
@@ -74,3 +74,6 @@ Azkaban 和 Oozie 都是目前使用最为广泛的工作流调度程序,其
+ **配置方面**:Azkaban Flow 1.0 基于 Properties 文件来定义工作流,这个时候的限制可能会多一点。但是在 Flow 2.0 就支持了 YARM。YARM 语法更加灵活简单,著名的微服务框架 Spring Boot 就采用的 YAML 代替了繁重的 XML。
+
+
+
\ No newline at end of file
diff --git a/notes/Flink_Data_Sink.md b/notes/Flink_Data_Sink.md
index f77559c0..c1ee9900 100644
--- a/notes/Flink_Data_Sink.md
+++ b/notes/Flink_Data_Sink.md
@@ -266,3 +266,6 @@ env.execute();
2. Streaming Connectors:https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/connectors/index.html
3. Apache Kafka Connector: https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/connectors/kafka.html
+
+
+
\ No newline at end of file
diff --git a/notes/Flink_Data_Source.md b/notes/Flink_Data_Source.md
index a8d065fb..ec1bb86a 100644
--- a/notes/Flink_Data_Source.md
+++ b/notes/Flink_Data_Source.md
@@ -282,3 +282,6 @@ bin/kafka-console-producer.sh --broker-list hadoop001:9092 --topic flink-stream-
1. data-sources:https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/datastream_api.html#data-sources
2. Streaming Connectors:https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/connectors/index.html
3. Apache Kafka Connector: https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/connectors/kafka.html
+
+
+
\ No newline at end of file
diff --git a/notes/Flink_Data_Transformation.md b/notes/Flink_Data_Transformation.md
index 3f5a1c80..94781620 100644
--- a/notes/Flink_Data_Transformation.md
+++ b/notes/Flink_Data_Transformation.md
@@ -309,3 +309,6 @@ someStream.filter(...).slotSharingGroup("slotSharingGroupName");
## 参考资料
Flink Operators: https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/stream/operators/
+
+
+
\ No newline at end of file
diff --git a/notes/Flink_Windows.md b/notes/Flink_Windows.md
index 816a6ed1..7615f7fc 100644
--- a/notes/Flink_Windows.md
+++ b/notes/Flink_Windows.md
@@ -126,3 +126,6 @@ public WindowedStream countWindow(long size, long slide) {
## 参考资料
Flink Windows: https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/stream/operators/windows.html
+
+
+
\ No newline at end of file
diff --git "a/notes/Flink\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272.md" "b/notes/Flink\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272.md"
index a933e048..1b319cff 100644
--- "a/notes/Flink\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272.md"
+++ "b/notes/Flink\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272.md"
@@ -302,3 +302,6 @@ Flink 大多数版本都提供有 Scala 2.11 和 Scala 2.12 两个版本的安
+
+
+
\ No newline at end of file
diff --git "a/notes/Flink\346\240\270\345\277\203\346\246\202\345\277\265\347\273\274\350\277\260.md" "b/notes/Flink\346\240\270\345\277\203\346\246\202\345\277\265\347\273\274\350\277\260.md"
index 397ecc73..c4ae5a64 100644
--- "a/notes/Flink\346\240\270\345\277\203\346\246\202\345\277\265\347\273\274\350\277\260.md"
+++ "b/notes/Flink\346\240\270\345\277\203\346\246\202\345\277\265\347\273\274\350\277\260.md"
@@ -171,3 +171,6 @@ Flink 的所有组件都基于 Actor System 来进行通讯。Actor system是多
+
+
+
\ No newline at end of file
diff --git "a/notes/Flink\347\212\266\346\200\201\347\256\241\347\220\206\344\270\216\346\243\200\346\237\245\347\202\271\346\234\272\345\210\266.md" "b/notes/Flink\347\212\266\346\200\201\347\256\241\347\220\206\344\270\216\346\243\200\346\237\245\347\202\271\346\234\272\345\210\266.md"
index e5d3da2a..d678daa4 100644
--- "a/notes/Flink\347\212\266\346\200\201\347\256\241\347\220\206\344\270\216\346\243\200\346\237\245\347\202\271\346\234\272\345\210\266.md"
+++ "b/notes/Flink\347\212\266\346\200\201\347\256\241\347\220\206\344\270\216\346\243\200\346\237\245\347\202\271\346\234\272\345\210\266.md"
@@ -368,3 +368,6 @@ state.checkpoints.dir: hdfs://namenode:40010/flink/checkpoints
+
+
+
\ No newline at end of file
diff --git "a/notes/Flume\346\225\264\345\220\210Kafka.md" "b/notes/Flume\346\225\264\345\220\210Kafka.md"
index 9cc34d11..c1f80ddd 100644
--- "a/notes/Flume\346\225\264\345\220\210Kafka.md"
+++ "b/notes/Flume\346\225\264\345\220\210Kafka.md"
@@ -114,3 +114,6 @@ flume-ng agent \
可以看到 `flume-kafka` 主题的消费端已经收到了对应的消息:
+
+
+
\ No newline at end of file
diff --git "a/notes/Flume\347\256\200\344\273\213\345\217\212\345\237\272\346\234\254\344\275\277\347\224\250.md" "b/notes/Flume\347\256\200\344\273\213\345\217\212\345\237\272\346\234\254\344\275\277\347\224\250.md"
index f5f752ec..f98c8049 100644
--- "a/notes/Flume\347\256\200\344\273\213\345\217\212\345\237\272\346\234\254\344\275\277\347\224\250.md"
+++ "b/notes/Flume\347\256\200\344\273\213\345\217\212\345\237\272\346\234\254\344\275\277\347\224\250.md"
@@ -373,3 +373,6 @@ flume-ng agent \
可以看到已经从 8888 端口监听到内容,并成功输出到控制台:
+
+
+
\ No newline at end of file
diff --git a/notes/HDFS-Java-API.md b/notes/HDFS-Java-API.md
index f5ec70df..5d28f1e2 100644
--- a/notes/HDFS-Java-API.md
+++ b/notes/HDFS-Java-API.md
@@ -386,3 +386,6 @@ public void getFileBlockLocations() throws Exception {
**以上所有测试用例下载地址**:[HDFS Java API](https://github.com/heibaiying/BigData-Notes/tree/master/code/Hadoop/hdfs-java-api)
+
+
+
\ No newline at end of file
diff --git "a/notes/HDFS\345\270\270\347\224\250Shell\345\221\275\344\273\244.md" "b/notes/HDFS\345\270\270\347\224\250Shell\345\221\275\344\273\244.md"
index 933eceb5..d6cf7871 100644
--- "a/notes/HDFS\345\270\270\347\224\250Shell\345\221\275\344\273\244.md"
+++ "b/notes/HDFS\345\270\270\347\224\250Shell\345\221\275\344\273\244.md"
@@ -139,3 +139,6 @@ hadoop fs -test - [defsz] URI
# 示例
hadoop fs -test -e filename
```
+
+
+
\ No newline at end of file
diff --git a/notes/Hadoop-HDFS.md b/notes/Hadoop-HDFS.md
index 5e88e955..cfa57b0b 100644
--- a/notes/Hadoop-HDFS.md
+++ b/notes/Hadoop-HDFS.md
@@ -174,3 +174,6 @@ HDFS 具有良好的跨平台移植性,这使得其他大数据计算框架都
2. Tom White . hadoop 权威指南 [M] . 清华大学出版社 . 2017.
3. [翻译经典 HDFS 原理讲解漫画](https://blog.csdn.net/hudiefenmu/article/details/37655491)
+
+
+
\ No newline at end of file
diff --git a/notes/Hadoop-MapReduce.md b/notes/Hadoop-MapReduce.md
index 616bc9e4..2163a09a 100644
--- a/notes/Hadoop-MapReduce.md
+++ b/notes/Hadoop-MapReduce.md
@@ -382,3 +382,6 @@ job.setNumReduceTasks(WordCountDataUtils.WORD_LIST.size());
+
+
+
\ No newline at end of file
diff --git a/notes/Hadoop-YARN.md b/notes/Hadoop-YARN.md
index cd7cb903..10a87558 100644
--- a/notes/Hadoop-YARN.md
+++ b/notes/Hadoop-YARN.md
@@ -126,3 +126,6 @@ YARN 中的任务将其进度和状态 (包括 counter) 返回给应用管理器
+
+
+
\ No newline at end of file
diff --git a/notes/Hbase_Java_API.md b/notes/Hbase_Java_API.md
index c75522e4..66dfef45 100644
--- a/notes/Hbase_Java_API.md
+++ b/notes/Hbase_Java_API.md
@@ -759,3 +759,6 @@ connection = ConnectionFactory.createConnection(config);
1. [连接 HBase 的正确姿势](https://yq.aliyun.com/articles/581702?spm=a2c4e.11157919.spm-cont-list.1.146c27aeFxoMsN%20%E8%BF%9E%E6%8E%A5HBase%E7%9A%84%E6%AD%A3%E7%A1%AE%E5%A7%BF%E5%8A%BF)
2. [Apache HBase ™ Reference Guide](http://hbase.apache.org/book.htm)
+
+
+
\ No newline at end of file
diff --git a/notes/Hbase_Shell.md b/notes/Hbase_Shell.md
index d9417f25..6404c31e 100644
--- a/notes/Hbase_Shell.md
+++ b/notes/Hbase_Shell.md
@@ -277,3 +277,6 @@ scan 'Student', FILTER=>"PrefixFilter('wr')"
+
+
+
\ No newline at end of file
diff --git "a/notes/Hbase\345\215\217\345\244\204\347\220\206\345\231\250\350\257\246\350\247\243.md" "b/notes/Hbase\345\215\217\345\244\204\347\220\206\345\231\250\350\257\246\350\247\243.md"
index eb55627a..50bdae70 100644
--- "a/notes/Hbase\345\215\217\345\244\204\347\220\206\345\231\250\350\257\246\350\247\243.md"
+++ "b/notes/Hbase\345\215\217\345\244\204\347\220\206\345\231\250\350\257\246\350\247\243.md"
@@ -488,3 +488,6 @@ hbase > get 'magazine','rowkey1','article:content'
1. [Apache HBase Coprocessors](http://hbase.apache.org/book.html#cp)
2. [Apache HBase Coprocessor Introduction](https://blogs.apache.org/hbase/entry/coprocessor_introduction)
3. [HBase 高階知識](https://www.itread01.com/content/1546245908.html)
+
+
+
\ No newline at end of file
diff --git "a/notes/Hbase\345\256\271\347\201\276\344\270\216\345\244\207\344\273\275.md" "b/notes/Hbase\345\256\271\347\201\276\344\270\216\345\244\207\344\273\275.md"
index 2a3d150c..bdebc1ef 100644
--- "a/notes/Hbase\345\256\271\347\201\276\344\270\216\345\244\207\344\273\275.md"
+++ "b/notes/Hbase\345\256\271\347\201\276\344\270\216\345\244\207\344\273\275.md"
@@ -194,3 +194,6 @@ hbase> restore_snapshot '快照名'
1. [Online Apache HBase Backups with CopyTable](https://blog.cloudera.com/blog/2012/06/online-hbase-backups-with-copytable-2/)
2. [Apache HBase ™ Reference Guide](http://hbase.apache.org/book.htm)
+
+
+
\ No newline at end of file
diff --git "a/notes/Hbase\347\232\204SQL\344\270\255\351\227\264\345\261\202_Phoenix.md" "b/notes/Hbase\347\232\204SQL\344\270\255\351\227\264\345\261\202_Phoenix.md"
index 9c4f004a..7b64e3b5 100644
--- "a/notes/Hbase\347\232\204SQL\344\270\255\351\227\264\345\261\202_Phoenix.md"
+++ "b/notes/Hbase\347\232\204SQL\344\270\255\351\227\264\345\261\202_Phoenix.md"
@@ -239,3 +239,6 @@ public class PhoenixJavaApi {
# 参考资料
1. http://phoenix.apache.org/
+
+
+
\ No newline at end of file
diff --git "a/notes/Hbase\347\256\200\344\273\213.md" "b/notes/Hbase\347\256\200\344\273\213.md"
index 9a2f4720..b406d922 100644
--- "a/notes/Hbase\347\256\200\344\273\213.md"
+++ "b/notes/Hbase\347\256\200\344\273\213.md"
@@ -86,3 +86,6 @@ Hbase 的表具有以下特点:
+
+
+
\ No newline at end of file
diff --git "a/notes/Hbase\347\263\273\347\273\237\346\236\266\346\236\204\345\217\212\346\225\260\346\215\256\347\273\223\346\236\204.md" "b/notes/Hbase\347\263\273\347\273\237\346\236\266\346\236\204\345\217\212\346\225\260\346\215\256\347\273\223\346\236\204.md"
index eb66f4f7..3d61164e 100644
--- "a/notes/Hbase\347\263\273\347\273\237\346\236\266\346\236\204\345\217\212\346\225\260\346\215\256\347\273\223\346\236\204.md"
+++ "b/notes/Hbase\347\263\273\347\273\237\346\236\266\346\236\204\345\217\212\346\225\260\346\215\256\347\273\223\346\236\204.md"
@@ -220,3 +220,6 @@ HBase 系统遵循 Master/Salve 架构,由三种不同类型的组件组成:
+
+
+
\ No newline at end of file
diff --git "a/notes/Hbase\350\277\207\346\273\244\345\231\250\350\257\246\350\247\243.md" "b/notes/Hbase\350\277\207\346\273\244\345\231\250\350\257\246\350\247\243.md"
index 69188cb5..614d04e6 100644
--- "a/notes/Hbase\350\277\207\346\273\244\345\231\250\350\257\246\350\247\243.md"
+++ "b/notes/Hbase\350\277\207\346\273\244\345\231\250\350\257\246\350\247\243.md"
@@ -443,3 +443,6 @@ scan.setFilter(filterList);
## 参考资料
[HBase: The Definitive Guide _> Chapter 4. Client API: Advanced Features](https://www.oreilly.com/library/view/hbase-the-definitive/9781449314682/ch04.html)
+
+
+
\ No newline at end of file
diff --git "a/notes/HiveCLI\345\222\214Beeline\345\221\275\344\273\244\350\241\214\347\232\204\345\237\272\346\234\254\344\275\277\347\224\250.md" "b/notes/HiveCLI\345\222\214Beeline\345\221\275\344\273\244\350\241\214\347\232\204\345\237\272\346\234\254\344\275\277\347\224\250.md"
index cdbd8d7f..38ad9925 100644
--- "a/notes/HiveCLI\345\222\214Beeline\345\221\275\344\273\244\350\241\214\347\232\204\345\237\272\346\234\254\344\275\277\347\224\250.md"
+++ "b/notes/HiveCLI\345\222\214Beeline\345\221\275\344\273\244\350\241\214\347\232\204\345\237\272\346\234\254\344\275\277\347\224\250.md"
@@ -277,3 +277,6 @@ Hive 可选的配置参数非常多,在用到时查阅官方文档即可[Admin
1. [HiveServer2 Clients](https://cwiki.apache.org/confluence/display/Hive/HiveServer2+Clients)
2. [LanguageManual Cli](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Cli)
3. [AdminManual Configuration](https://cwiki.apache.org/confluence/display/Hive/AdminManual+Configuration)
+
+
+
\ No newline at end of file
diff --git "a/notes/Hive\345\210\206\345\214\272\350\241\250\345\222\214\345\210\206\346\241\266\350\241\250.md" "b/notes/Hive\345\210\206\345\214\272\350\241\250\345\222\214\345\210\206\346\241\266\350\241\250.md"
index d5525755..e1d79247 100644
--- "a/notes/Hive\345\210\206\345\214\272\350\241\250\345\222\214\345\210\206\346\241\266\350\241\250.md"
+++ "b/notes/Hive\345\210\206\345\214\272\350\241\250\345\222\214\345\210\206\346\241\266\350\241\250.md"
@@ -166,3 +166,6 @@ SELECT * FROM page_view WHERE dt='2009-02-25';
## 参考资料
1. [LanguageManual DDL BucketedTables](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL+BucketedTables)
+
+
+
\ No newline at end of file
diff --git "a/notes/Hive\345\270\270\347\224\250DDL\346\223\215\344\275\234.md" "b/notes/Hive\345\270\270\347\224\250DDL\346\223\215\344\275\234.md"
index dc8f387d..299ae809 100644
--- "a/notes/Hive\345\270\270\347\224\250DDL\346\223\215\344\275\234.md"
+++ "b/notes/Hive\345\270\270\347\224\250DDL\346\223\215\344\275\234.md"
@@ -448,3 +448,6 @@ SHOW CREATE TABLE ([db_name.]table_name|view_name);
## 参考资料
[LanguageManual DDL](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL)
+
+
+
\ No newline at end of file
diff --git "a/notes/Hive\345\270\270\347\224\250DML\346\223\215\344\275\234.md" "b/notes/Hive\345\270\270\347\224\250DML\346\223\215\344\275\234.md"
index 6e633fa0..28af9be0 100644
--- "a/notes/Hive\345\270\270\347\224\250DML\346\223\215\344\275\234.md"
+++ "b/notes/Hive\345\270\270\347\224\250DML\346\223\215\344\275\234.md"
@@ -327,3 +327,6 @@ SELECT * FROM emp_ptn;
1. [Hive Transactions](https://cwiki.apache.org/confluence/display/Hive/Hive+Transactions)
2. [Hive Data Manipulation Language](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DML)
+
+
+
\ No newline at end of file
diff --git "a/notes/Hive\346\225\260\346\215\256\346\237\245\350\257\242\350\257\246\350\247\243.md" "b/notes/Hive\346\225\260\346\215\256\346\237\245\350\257\242\350\257\246\350\247\243.md"
index 33d7838c..12ca4cd5 100644
--- "a/notes/Hive\346\225\260\346\215\256\346\237\245\350\257\242\350\257\246\350\247\243.md"
+++ "b/notes/Hive\346\225\260\346\215\256\346\237\245\350\257\242\350\257\246\350\247\243.md"
@@ -392,3 +392,6 @@ SET hive.exec.mode.local.auto=true;
2. [LanguageManual Joins](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Joins)
3. [LanguageManual GroupBy](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+GroupBy)
4. [LanguageManual SortBy](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+SortBy)
+
+
+
\ No newline at end of file
diff --git "a/notes/Hive\347\256\200\344\273\213\345\217\212\346\240\270\345\277\203\346\246\202\345\277\265.md" "b/notes/Hive\347\256\200\344\273\213\345\217\212\346\240\270\345\277\203\346\246\202\345\277\265.md"
index 284159ba..50915c70 100644
--- "a/notes/Hive\347\256\200\344\273\213\345\217\212\346\240\270\345\277\203\346\246\202\345\277\265.md"
+++ "b/notes/Hive\347\256\200\344\273\213\345\217\212\346\240\270\345\277\203\346\246\202\345\277\265.md"
@@ -200,3 +200,6 @@ CREATE TABLE page_view(viewTime INT, userid BIGINT)
3. [LanguageManual DDL](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL)
4. [LanguageManual Types](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types)
5. [Managed vs. External Tables](https://cwiki.apache.org/confluence/display/Hive/Managed+vs.+External+Tables)
+
+
+
\ No newline at end of file
diff --git "a/notes/Hive\350\247\206\345\233\276\345\222\214\347\264\242\345\274\225.md" "b/notes/Hive\350\247\206\345\233\276\345\222\214\347\264\242\345\274\225.md"
index 89aa9be6..a269c417 100644
--- "a/notes/Hive\350\247\206\345\233\276\345\222\214\347\264\242\345\274\225.md"
+++ "b/notes/Hive\350\247\206\345\233\276\345\222\214\347\264\242\345\274\225.md"
@@ -234,3 +234,6 @@ SHOW INDEX ON emp;
2. [Materialized views](https://cwiki.apache.org/confluence/display/Hive/Materialized+views)
3. [Hive 索引](http://lxw1234.com/archives/2015/05/207.htm)
4. [Overview of Hive Indexes](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Indexing)
+
+
+
\ No newline at end of file
diff --git "a/notes/Kafka\346\266\210\350\264\271\350\200\205\350\257\246\350\247\243.md" "b/notes/Kafka\346\266\210\350\264\271\350\200\205\350\257\246\350\247\243.md"
index 8c8b2340..0642de1a 100644
--- "a/notes/Kafka\346\266\210\350\264\271\350\200\205\350\257\246\350\247\243.md"
+++ "b/notes/Kafka\346\266\210\350\264\271\350\200\205\350\257\246\350\247\243.md"
@@ -390,3 +390,6 @@ broker 返回给消费者数据的等待时间,默认是 500ms。
1. Neha Narkhede, Gwen Shapira ,Todd Palino(著) , 薛命灯 (译) . Kafka 权威指南 . 人民邮电出版社 . 2017-12-26
+
+
+
\ No newline at end of file
diff --git "a/notes/Kafka\346\267\261\345\205\245\347\220\206\350\247\243\345\210\206\345\214\272\345\211\257\346\234\254\346\234\272\345\210\266.md" "b/notes/Kafka\346\267\261\345\205\245\347\220\206\350\247\243\345\210\206\345\214\272\345\211\257\346\234\254\346\234\272\345\210\266.md"
index 20a5499a..2b7c92fe 100644
--- "a/notes/Kafka\346\267\261\345\205\245\347\220\206\350\247\243\345\210\206\345\214\272\345\211\257\346\234\254\346\234\272\345\210\266.md"
+++ "b/notes/Kafka\346\267\261\345\205\245\347\220\206\350\247\243\345\210\206\345\214\272\345\211\257\346\234\254\346\234\272\345\210\266.md"
@@ -159,3 +159,6 @@ Exception: Replication factor: 3 larger than available brokers: 1.
1. Neha Narkhede, Gwen Shapira ,Todd Palino(著) , 薛命灯 (译) . Kafka 权威指南 . 人民邮电出版社 . 2017-12-26
2. [Kafka 高性能架构之道](http://www.jasongj.com/kafka/high_throughput/)
+
+
+
\ No newline at end of file
diff --git "a/notes/Kafka\347\224\237\344\272\247\350\200\205\350\257\246\350\247\243.md" "b/notes/Kafka\347\224\237\344\272\247\350\200\205\350\257\246\350\247\243.md"
index 862db023..177a3c60 100644
--- "a/notes/Kafka\347\224\237\344\272\247\350\200\205\350\257\246\350\247\243.md"
+++ "b/notes/Kafka\347\224\237\344\272\247\350\200\205\350\257\246\350\247\243.md"
@@ -362,3 +362,6 @@ acks 参数指定了必须要有多少个分区副本收到消息,生产者才
## 参考资料
1. Neha Narkhede, Gwen Shapira ,Todd Palino(著) , 薛命灯 (译) . Kafka 权威指南 . 人民邮电出版社 . 2017-12-26
+
+
+
\ No newline at end of file
diff --git "a/notes/Kafka\347\256\200\344\273\213.md" "b/notes/Kafka\347\256\200\344\273\213.md"
index 802e7912..81808c44 100644
--- "a/notes/Kafka\347\256\200\344\273\213.md"
+++ "b/notes/Kafka\347\256\200\344\273\213.md"
@@ -65,3 +65,6 @@ Broker 是集群 (Cluster) 的组成部分。每一个集群都会选举出一
## 参考资料
Neha Narkhede, Gwen Shapira ,Todd Palino(著) , 薛命灯 (译) . Kafka 权威指南 . 人民邮电出版社 . 2017-12-26
+
+
+
\ No newline at end of file
diff --git "a/notes/Scala\345\207\275\346\225\260\345\222\214\351\227\255\345\214\205.md" "b/notes/Scala\345\207\275\346\225\260\345\222\214\351\227\255\345\214\205.md"
index 482255cf..2c1f59b3 100644
--- "a/notes/Scala\345\207\275\346\225\260\345\222\214\351\227\255\345\214\205.md"
+++ "b/notes/Scala\345\207\275\346\225\260\345\222\214\351\227\255\345\214\205.md"
@@ -310,3 +310,6 @@ object ScalaApp extends App {
+
+
+
\ No newline at end of file
diff --git "a/notes/Scala\345\210\227\350\241\250\345\222\214\351\233\206.md" "b/notes/Scala\345\210\227\350\241\250\345\222\214\351\233\206.md"
index 208d42ea..3da271f4 100644
--- "a/notes/Scala\345\210\227\350\241\250\345\222\214\351\233\206.md"
+++ "b/notes/Scala\345\210\227\350\241\250\345\222\214\351\233\206.md"
@@ -540,3 +540,6 @@ object ScalaApp extends App {
1. Martin Odersky . Scala 编程 (第 3 版)[M] . 电子工业出版社 . 2018-1-1
2. 凯.S.霍斯特曼 . 快学 Scala(第 2 版)[M] . 电子工业出版社 . 2017-7
+
+
+
\ No newline at end of file
diff --git "a/notes/Scala\345\237\272\346\234\254\346\225\260\346\215\256\347\261\273\345\236\213\345\222\214\350\277\220\347\256\227\347\254\246.md" "b/notes/Scala\345\237\272\346\234\254\346\225\260\346\215\256\347\261\273\345\236\213\345\222\214\350\277\220\347\256\227\347\254\246.md"
index d54fb462..308d5e03 100644
--- "a/notes/Scala\345\237\272\346\234\254\346\225\260\346\215\256\347\261\273\345\236\213\345\222\214\350\277\220\347\256\227\347\254\246.md"
+++ "b/notes/Scala\345\237\272\346\234\254\346\225\260\346\215\256\347\261\273\345\236\213\345\222\214\350\277\220\347\256\227\347\254\246.md"
@@ -272,3 +272,6 @@ res6: Boolean = true
## 参考资料
1. Martin Odersky . Scala 编程 (第 3 版)[M] . 电子工业出版社 . 2018-1-1
+
+
+
\ No newline at end of file
diff --git "a/notes/Scala\346\225\260\347\273\204.md" "b/notes/Scala\346\225\260\347\273\204.md"
index d7215a89..d5762439 100644
--- "a/notes/Scala\346\225\260\347\273\204.md"
+++ "b/notes/Scala\346\225\260\347\273\204.md"
@@ -191,3 +191,6 @@ object ScalaApp extends App {
1. Martin Odersky . Scala 编程 (第 3 版)[M] . 电子工业出版社 . 2018-1-1
2. 凯.S.霍斯特曼 . 快学 Scala(第 2 版)[M] . 电子工业出版社 . 2017-7
+
+
+
\ No newline at end of file
diff --git "a/notes/Scala\346\230\240\345\260\204\345\222\214\345\205\203\347\273\204.md" "b/notes/Scala\346\230\240\345\260\204\345\222\214\345\205\203\347\273\204.md"
index ec47e12c..eb4b5af0 100644
--- "a/notes/Scala\346\230\240\345\260\204\345\222\214\345\205\203\347\273\204.md"
+++ "b/notes/Scala\346\230\240\345\260\204\345\222\214\345\205\203\347\273\204.md"
@@ -280,3 +280,6 @@ object ScalaApp extends App {
1. Martin Odersky . Scala 编程 (第 3 版)[M] . 电子工业出版社 . 2018-1-1
2. 凯.S.霍斯特曼 . 快学 Scala(第 2 版)[M] . 电子工业出版社 . 2017-7
+
+
+
\ No newline at end of file
diff --git "a/notes/Scala\346\250\241\345\274\217\345\214\271\351\205\215.md" "b/notes/Scala\346\250\241\345\274\217\345\214\271\351\205\215.md"
index 7c652674..91ddad50 100644
--- "a/notes/Scala\346\250\241\345\274\217\345\214\271\351\205\215.md"
+++ "b/notes/Scala\346\250\241\345\274\217\345\214\271\351\205\215.md"
@@ -170,3 +170,6 @@ object ScalaApp extends App {
1. Martin Odersky . Scala 编程 (第 3 版)[M] . 电子工业出版社 . 2018-1-1
2. 凯.S.霍斯特曼 . 快学 Scala(第 2 版)[M] . 电子工业出版社 . 2017-7
+
+
+
\ No newline at end of file
diff --git "a/notes/Scala\346\265\201\347\250\213\346\216\247\345\210\266\350\257\255\345\217\245.md" "b/notes/Scala\346\265\201\347\250\213\346\216\247\345\210\266\350\257\255\345\217\245.md"
index 8b1c2191..78f9988e 100644
--- "a/notes/Scala\346\265\201\347\250\213\346\216\247\345\210\266\350\257\255\345\217\245.md"
+++ "b/notes/Scala\346\265\201\347\250\213\346\216\247\345\210\266\350\257\255\345\217\245.md"
@@ -209,3 +209,6 @@ println(s"Hello, ${name}! Next year, you will be ${age + 1}.")
1. Martin Odersky . Scala 编程 (第 3 版)[M] . 电子工业出版社 . 2018-1-1
2. 凯.S.霍斯特曼 . 快学 Scala(第 2 版)[M] . 电子工业出版社 . 2017-7
+
+
+
\ No newline at end of file
diff --git "a/notes/Scala\347\256\200\344\273\213\345\217\212\345\274\200\345\217\221\347\216\257\345\242\203\351\205\215\347\275\256.md" "b/notes/Scala\347\256\200\344\273\213\345\217\212\345\274\200\345\217\221\347\216\257\345\242\203\351\205\215\347\275\256.md"
index e16065e1..57f64db1 100644
--- "a/notes/Scala\347\256\200\344\273\213\345\217\212\345\274\200\345\217\221\347\216\257\345\242\203\351\205\215\347\275\256.md"
+++ "b/notes/Scala\347\256\200\344\273\213\345\217\212\345\274\200\345\217\221\347\216\257\345\242\203\351\205\215\347\275\256.md"
@@ -131,3 +131,6 @@ IDEA 默认不支持 Scala 语言的开发,需要通过插件进行扩展。
1. Martin Odersky(著),高宇翔 (译) . Scala 编程 (第 3 版)[M] . 电子工业出版社 . 2018-1-1
2. https://www.scala-lang.org/download/
+
+
+
\ No newline at end of file
diff --git "a/notes/Scala\347\261\273\345\222\214\345\257\271\350\261\241.md" "b/notes/Scala\347\261\273\345\222\214\345\257\271\350\261\241.md"
index 881ebe2b..65cb39ae 100644
--- "a/notes/Scala\347\261\273\345\222\214\345\257\271\350\261\241.md"
+++ "b/notes/Scala\347\261\273\345\222\214\345\257\271\350\261\241.md"
@@ -410,3 +410,6 @@ true
1. Martin Odersky . Scala 编程 (第 3 版)[M] . 电子工业出版社 . 2018-1-1
2. 凯.S.霍斯特曼 . 快学 Scala(第 2 版)[M] . 电子工业出版社 . 2017-7
+
+
+
\ No newline at end of file
diff --git "a/notes/Scala\347\261\273\345\236\213\345\217\202\346\225\260.md" "b/notes/Scala\347\261\273\345\236\213\345\217\202\346\225\260.md"
index 26be482f..299391f4 100644
--- "a/notes/Scala\347\261\273\345\236\213\345\217\202\346\225\260.md"
+++ "b/notes/Scala\347\261\273\345\236\213\345\217\202\346\225\260.md"
@@ -465,3 +465,6 @@ def min[T <: SuperComparable[T]](p: Pair[T]) = {}
1. Martin Odersky . Scala 编程 (第 3 版)[M] . 电子工业出版社 . 2018-1-1
2. 凯.S.霍斯特曼 . 快学 Scala(第 2 版)[M] . 电子工业出版社 . 2017-7
+
+
+
\ No newline at end of file
diff --git "a/notes/Scala\347\273\247\346\211\277\345\222\214\347\211\271\350\264\250.md" "b/notes/Scala\347\273\247\346\211\277\345\222\214\347\211\271\350\264\250.md"
index 5b6bd4a1..9e871cbc 100644
--- "a/notes/Scala\347\273\247\346\211\277\345\222\214\347\211\271\350\264\250.md"
+++ "b/notes/Scala\347\273\247\346\211\277\345\222\214\347\211\271\350\264\250.md"
@@ -416,3 +416,6 @@ class Employee extends Person with InfoLogger with ErrorLogger {...}
+
+
+
\ No newline at end of file
diff --git "a/notes/Scala\351\232\220\345\274\217\350\275\254\346\215\242\345\222\214\351\232\220\345\274\217\345\217\202\346\225\260.md" "b/notes/Scala\351\232\220\345\274\217\350\275\254\346\215\242\345\222\214\351\232\220\345\274\217\345\217\202\346\225\260.md"
index 37b63cea..fcf9e211 100644
--- "a/notes/Scala\351\232\220\345\274\217\350\275\254\346\215\242\345\222\214\351\232\220\345\274\217\345\217\202\346\225\260.md"
+++ "b/notes/Scala\351\232\220\345\274\217\350\275\254\346\215\242\345\222\214\351\232\220\345\274\217\345\217\202\346\225\260.md"
@@ -354,3 +354,6 @@ object Pair extends App {
+
+
+
\ No newline at end of file
diff --git "a/notes/Scala\351\233\206\345\220\210\347\261\273\345\236\213.md" "b/notes/Scala\351\233\206\345\220\210\347\261\273\345\236\213.md"
index edcb8319..33d2819b 100644
--- "a/notes/Scala\351\233\206\345\220\210\347\261\273\345\236\213.md"
+++ "b/notes/Scala\351\233\206\345\220\210\347\261\273\345\236\213.md"
@@ -257,3 +257,6 @@ res8: Boolean = false
1. https://docs.scala-lang.org/overviews/collections/overview.html
2. https://docs.scala-lang.org/overviews/collections/trait-traversable.html
3. https://docs.scala-lang.org/overviews/collections/trait-iterable.html
+
+
+
\ No newline at end of file
diff --git "a/notes/SparkSQL_Dataset\345\222\214DataFrame\347\256\200\344\273\213.md" "b/notes/SparkSQL_Dataset\345\222\214DataFrame\347\256\200\344\273\213.md"
index 3ddc40c8..d6e06722 100644
--- "a/notes/SparkSQL_Dataset\345\222\214DataFrame\347\256\200\344\273\213.md"
+++ "b/notes/SparkSQL_Dataset\345\222\214DataFrame\347\256\200\344\273\213.md"
@@ -145,3 +145,6 @@ DataFrame、DataSet 和 Spark SQL 的实际执行流程都是相同的:
2. [Spark SQL, DataFrames and Datasets Guide](https://spark.apache.org/docs/latest/sql-programming-guide.html)
3. [且谈 Apache Spark 的 API 三剑客:RDD、DataFrame 和 Dataset(译文)](https://www.infoq.cn/article/three-apache-spark-apis-rdds-dataframes-and-datasets)
4. [A Tale of Three Apache Spark APIs: RDDs vs DataFrames and Datasets(原文)](https://databricks.com/blog/2016/07/14/a-tale-of-three-apache-spark-apis-rdds-dataframes-and-datasets.html)
+
+
+
\ No newline at end of file
diff --git "a/notes/SparkSQL\345\244\226\351\203\250\346\225\260\346\215\256\346\272\220.md" "b/notes/SparkSQL\345\244\226\351\203\250\346\225\260\346\215\256\346\272\220.md"
index f2dd0fee..765a75f3 100644
--- "a/notes/SparkSQL\345\244\226\351\203\250\346\225\260\346\215\256\346\272\220.md"
+++ "b/notes/SparkSQL\345\244\226\351\203\250\346\225\260\346\215\256\346\272\220.md"
@@ -497,3 +497,6 @@ df.write.option(“maxRecordsPerFile”, 5000)
1. Matei Zaharia, Bill Chambers . Spark: The Definitive Guide[M] . 2018-02
2. https://spark.apache.org/docs/latest/sql-data-sources.html
+
+
+
\ No newline at end of file
diff --git "a/notes/SparkSQL\345\270\270\347\224\250\350\201\232\345\220\210\345\207\275\346\225\260.md" "b/notes/SparkSQL\345\270\270\347\224\250\350\201\232\345\220\210\345\207\275\346\225\260.md"
index c94a15c6..cf70bce4 100644
--- "a/notes/SparkSQL\345\270\270\347\224\250\350\201\232\345\220\210\345\207\275\346\225\260.md"
+++ "b/notes/SparkSQL\345\270\270\347\224\250\350\201\232\345\220\210\345\207\275\346\225\260.md"
@@ -337,3 +337,6 @@ object SparkSqlApp {
## 参考资料
1. Matei Zaharia, Bill Chambers . Spark: The Definitive Guide[M] . 2018-02
+
+
+
\ No newline at end of file
diff --git "a/notes/SparkSQL\350\201\224\347\273\223\346\223\215\344\275\234.md" "b/notes/SparkSQL\350\201\224\347\273\223\346\223\215\344\275\234.md"
index 23178f14..5b178ae2 100644
--- "a/notes/SparkSQL\350\201\224\347\273\223\346\223\215\344\275\234.md"
+++ "b/notes/SparkSQL\350\201\224\347\273\223\346\223\215\344\275\234.md"
@@ -183,3 +183,6 @@ empDF.join(broadcast(deptDF), joinExpression).show()
## 参考资料
1. Matei Zaharia, Bill Chambers . Spark: The Definitive Guide[M] . 2018-02
+
+
+
\ No newline at end of file
diff --git a/notes/Spark_RDD.md b/notes/Spark_RDD.md
index 9b284455..1ae1a243 100644
--- a/notes/Spark_RDD.md
+++ b/notes/Spark_RDD.md
@@ -235,3 +235,6 @@ RDD(s) 及其之间的依赖关系组成了 DAG(有向无环图),DAG 定义了
+
+
+
\ No newline at end of file
diff --git "a/notes/Spark_Streaming\344\270\216\346\265\201\345\244\204\347\220\206.md" "b/notes/Spark_Streaming\344\270\216\346\265\201\345\244\204\347\220\206.md"
index 0c8b7191..22cd826c 100644
--- "a/notes/Spark_Streaming\344\270\216\346\265\201\345\244\204\347\220\206.md"
+++ "b/notes/Spark_Streaming\344\270\216\346\265\201\345\244\204\347\220\206.md"
@@ -77,3 +77,6 @@ storm 和 Flink 都是真正意义上的流计算框架,但 Spark Streaming
1. [Spark Streaming Programming Guide](https://spark.apache.org/docs/latest/streaming-programming-guide.html)
2. [What is stream processing?](https://www.ververica.com/what-is-stream-processing)
+
+
+
\ No newline at end of file
diff --git "a/notes/Spark_Streaming\345\237\272\346\234\254\346\223\215\344\275\234.md" "b/notes/Spark_Streaming\345\237\272\346\234\254\346\223\215\344\275\234.md"
index a1d1d971..1e8cf47f 100644
--- "a/notes/Spark_Streaming\345\237\272\346\234\254\346\223\215\344\275\234.md"
+++ "b/notes/Spark_Streaming\345\237\272\346\234\254\346\223\215\344\275\234.md"
@@ -333,3 +333,6 @@ storm storm flink azkaban
## 参考资料
Spark 官方文档:http://spark.apache.org/docs/latest/streaming-programming-guide.html
+
+
+
\ No newline at end of file
diff --git "a/notes/Spark_Streaming\346\225\264\345\220\210Flume.md" "b/notes/Spark_Streaming\346\225\264\345\220\210Flume.md"
index e2a9e6fe..e79b141c 100644
--- "a/notes/Spark_Streaming\346\225\264\345\220\210Flume.md"
+++ "b/notes/Spark_Streaming\346\225\264\345\220\210Flume.md"
@@ -357,3 +357,6 @@ spark-submit \
- [streaming-flume-integration](https://spark.apache.org/docs/latest/streaming-flume-integration.html)
- 关于大数据应用常用的打包方式可以参见:[大数据应用常用打包方式](https://github.com/heibaiying/BigData-Notes/blob/master/notes/大数据应用常用打包方式.md)
+
+
+
\ No newline at end of file
diff --git "a/notes/Spark_Streaming\346\225\264\345\220\210Kafka.md" "b/notes/Spark_Streaming\346\225\264\345\220\210Kafka.md"
index 375f30ce..67b5db4f 100644
--- "a/notes/Spark_Streaming\346\225\264\345\220\210Kafka.md"
+++ "b/notes/Spark_Streaming\346\225\264\345\220\210Kafka.md"
@@ -319,3 +319,6 @@ bin/kafka-console-producer.sh --broker-list hadoop001:9092 --topic spark-streami
## 参考资料
1. https://spark.apache.org/docs/latest/streaming-kafka-0-10-integration.html
+
+
+
\ No newline at end of file
diff --git "a/notes/Spark_Structured_API\347\232\204\345\237\272\346\234\254\344\275\277\347\224\250.md" "b/notes/Spark_Structured_API\347\232\204\345\237\272\346\234\254\344\275\277\347\224\250.md"
index 30056aa6..6be29c5a 100644
--- "a/notes/Spark_Structured_API\347\232\204\345\237\272\346\234\254\344\275\277\347\224\250.md"
+++ "b/notes/Spark_Structured_API\347\232\204\345\237\272\346\234\254\344\275\277\347\224\250.md"
@@ -242,3 +242,6 @@ spark.sql("SELECT ename,job FROM global_temp.gemp").show()
## 参考资料
[Spark SQL, DataFrames and Datasets Guide > Getting Started](https://spark.apache.org/docs/latest/sql-getting-started.html)
+
+
+
\ No newline at end of file
diff --git "a/notes/Spark_Transformation\345\222\214Action\347\256\227\345\255\220.md" "b/notes/Spark_Transformation\345\222\214Action\347\256\227\345\255\220.md"
index 150f0bba..c830bcc9 100644
--- "a/notes/Spark_Transformation\345\222\214Action\347\256\227\345\255\220.md"
+++ "b/notes/Spark_Transformation\345\222\214Action\347\256\227\345\255\220.md"
@@ -416,3 +416,6 @@ sc.parallelize(list).saveAsTextFile("/usr/file/temp")
[RDD Programming Guide](http://spark.apache.org/docs/latest/rdd-programming-guide.html#rdd-programming-guide)
+
+
+
\ No newline at end of file
diff --git "a/notes/Spark\347\256\200\344\273\213.md" "b/notes/Spark\347\256\200\344\273\213.md"
index bb91551d..53b1baf9 100644
--- "a/notes/Spark\347\256\200\344\273\213.md"
+++ "b/notes/Spark\347\256\200\344\273\213.md"
@@ -92,3 +92,6 @@ MLlib 是 Spark 的机器学习库。其设计目标是使得机器学习变得
GraphX 是 Spark 中用于图形计算和图形并行计算的新组件。在高层次上,GraphX 通过引入一个新的图形抽象来扩展 RDD(一种具有附加到每个顶点和边缘的属性的定向多重图形)。为了支持图计算,GraphX 提供了一组基本运算符(如: subgraph,joinVertices 和 aggregateMessages)以及优化后的 Pregel API。此外,GraphX 还包括越来越多的图形算法和构建器,以简化图形分析任务。
##
+
+
+
\ No newline at end of file
diff --git "a/notes/Spark\347\264\257\345\212\240\345\231\250\344\270\216\345\271\277\346\222\255\345\217\230\351\207\217.md" "b/notes/Spark\347\264\257\345\212\240\345\231\250\344\270\216\345\271\277\346\222\255\345\217\230\351\207\217.md"
index ca4da08e..a6bdcb86 100644
--- "a/notes/Spark\347\264\257\345\212\240\345\231\250\344\270\216\345\271\277\346\222\255\345\217\230\351\207\217.md"
+++ "b/notes/Spark\347\264\257\345\212\240\345\231\250\344\270\216\345\271\277\346\222\255\345\217\230\351\207\217.md"
@@ -103,3 +103,6 @@ sc.parallelize(broadcastVar.value).map(_ * 10).collect()
[RDD Programming Guide](http://spark.apache.org/docs/latest/rdd-programming-guide.html#rdd-programming-guide)
+
+
+
\ No newline at end of file
diff --git "a/notes/Spark\351\203\250\347\275\262\346\250\241\345\274\217\344\270\216\344\275\234\344\270\232\346\217\220\344\272\244.md" "b/notes/Spark\351\203\250\347\275\262\346\250\241\345\274\217\344\270\216\344\275\234\344\270\232\346\217\220\344\272\244.md"
index cb8289be..66749d22 100644
--- "a/notes/Spark\351\203\250\347\275\262\346\250\241\345\274\217\344\270\216\344\275\234\344\270\232\346\217\220\344\272\244.md"
+++ "b/notes/Spark\351\203\250\347\275\262\346\250\241\345\274\217\344\270\216\344\275\234\344\270\232\346\217\220\344\272\244.md"
@@ -246,3 +246,6 @@ spark-submit \
+
+
+
\ No newline at end of file
diff --git "a/notes/Spring+Mybtais+Phoenix\346\225\264\345\220\210.md" "b/notes/Spring+Mybtais+Phoenix\346\225\264\345\220\210.md"
index 29f06606..4a2698b1 100644
--- "a/notes/Spring+Mybtais+Phoenix\346\225\264\345\220\210.md"
+++ "b/notes/Spring+Mybtais+Phoenix\346\225\264\345\220\210.md"
@@ -384,3 +384,6 @@ UPSERT INTO us_population VALUES('CA','San Diego',1255540);
UPSERT INTO us_population VALUES('CA','San Jose',912332);
```
+
+
+
\ No newline at end of file
diff --git "a/notes/Sqoop\345\237\272\346\234\254\344\275\277\347\224\250.md" "b/notes/Sqoop\345\237\272\346\234\254\344\275\277\347\224\250.md"
index d4cec854..513a0b59 100644
--- "a/notes/Sqoop\345\237\272\346\234\254\344\275\277\347\224\250.md"
+++ "b/notes/Sqoop\345\237\272\346\234\254\344\275\277\347\224\250.md"
@@ -385,3 +385,6 @@ $ sqoop import ... --map-column-java id=String,value=Integer
## 参考资料
[Sqoop User Guide (v1.4.7)](http://sqoop.apache.org/docs/1.4.7/SqoopUserGuide.html)
+
+
+
\ No newline at end of file
diff --git "a/notes/Sqoop\347\256\200\344\273\213\344\270\216\345\256\211\350\243\205.md" "b/notes/Sqoop\347\256\200\344\273\213\344\270\216\345\256\211\350\243\205.md"
index 7603b8d7..27b4a90a 100644
--- "a/notes/Sqoop\347\256\200\344\273\213\344\270\216\345\256\211\350\243\205.md"
+++ "b/notes/Sqoop\347\256\200\344\273\213\344\270\216\345\256\211\350\243\205.md"
@@ -145,3 +145,6 @@ if [ ! -d "${ZOOKEEPER_HOME}" ]; then
fi
```
+
+
+
\ No newline at end of file
diff --git "a/notes/Storm\344\270\211\347\247\215\346\211\223\345\214\205\346\226\271\345\274\217\345\257\271\346\257\224\345\210\206\346\236\220.md" "b/notes/Storm\344\270\211\347\247\215\346\211\223\345\214\205\346\226\271\345\274\217\345\257\271\346\257\224\345\210\206\346\236\220.md"
index e0218173..5b39fa7c 100644
--- "a/notes/Storm\344\270\211\347\247\215\346\211\223\345\214\205\346\226\271\345\274\217\345\257\271\346\257\224\345\210\206\346\236\220.md"
+++ "b/notes/Storm\344\270\211\347\247\215\346\211\223\345\214\205\346\226\271\345\274\217\345\257\271\346\257\224\345\210\206\346\236\220.md"
@@ -313,3 +313,6 @@ jar:file:/usr/appjar/storm-hdfs-integration-1.0.jar!/defaults.yaml]
## 参考资料
关于 maven-shade-plugin 的更多配置可以参考: [maven-shade-plugin 入门指南](https://www.jianshu.com/p/7a0e20b30401)
+
+
+
\ No newline at end of file
diff --git "a/notes/Storm\345\222\214\346\265\201\345\244\204\347\220\206\347\256\200\344\273\213.md" "b/notes/Storm\345\222\214\346\265\201\345\244\204\347\220\206\347\256\200\344\273\213.md"
index 2949d757..e505c00e 100644
--- "a/notes/Storm\345\222\214\346\265\201\345\244\204\347\220\206\347\256\200\344\273\213.md"
+++ "b/notes/Storm\345\222\214\346\265\201\345\244\204\347\220\206\347\256\200\344\273\213.md"
@@ -96,3 +96,6 @@ storm 和 Flink 都是真正意义上的实时计算框架。其对比如下:
1. [What is stream processing?](https://www.ververica.com/what-is-stream-processing)
2. [流计算框架 Flink 与 Storm 的性能对比](http://bigdata.51cto.com/art/201711/558416.htm)
+
+
+
\ No newline at end of file
diff --git "a/notes/Storm\346\240\270\345\277\203\346\246\202\345\277\265\350\257\246\350\247\243.md" "b/notes/Storm\346\240\270\345\277\203\346\246\202\345\277\265\350\257\246\350\247\243.md"
index 11cf338f..b7208f3d 100644
--- "a/notes/Storm\346\240\270\345\277\203\346\246\202\345\277\265\350\257\246\350\247\243.md"
+++ "b/notes/Storm\346\240\270\345\277\203\346\246\202\345\277\265\350\257\246\350\247\243.md"
@@ -157,3 +157,6 @@ Task 是组成 Component 的代码单元。Topology 启动后,1 个 Component
3. [Understanding the Parallelism of a Storm Topology](http://storm.apache.org/releases/1.2.2/Understanding-the-parallelism-of-a-Storm-topology.html)
4. [Storm nimbus 单节点宕机的处理](https://blog.csdn.net/daiyutage/article/details/52049519)
+
+
+
\ No newline at end of file
diff --git "a/notes/Storm\347\274\226\347\250\213\346\250\241\345\236\213\350\257\246\350\247\243.md" "b/notes/Storm\347\274\226\347\250\213\346\250\241\345\236\213\350\257\246\350\247\243.md"
index 1cabfdcb..28f328b0 100644
--- "a/notes/Storm\347\274\226\347\250\213\346\250\241\345\236\213\350\257\246\350\247\243.md"
+++ "b/notes/Storm\347\274\226\347\250\213\346\250\241\345\236\213\350\257\246\350\247\243.md"
@@ -509,3 +509,6 @@ private String productData() {
1. [Running Topologies on a Production Cluster](http://storm.apache.org/releases/2.0.0-SNAPSHOT/Running-topologies-on-a-production-cluster.html)
2. [Pre-defined Descriptor Files](http://maven.apache.org/plugins/maven-assembly-plugin/descriptor-refs.html)
+
+
+
\ No newline at end of file
diff --git "a/notes/Storm\351\233\206\346\210\220HBase\345\222\214HDFS.md" "b/notes/Storm\351\233\206\346\210\220HBase\345\222\214HDFS.md"
index 2c9c1460..53ac3654 100644
--- "a/notes/Storm\351\233\206\346\210\220HBase\345\222\214HDFS.md"
+++ "b/notes/Storm\351\233\206\346\210\220HBase\345\222\214HDFS.md"
@@ -487,3 +487,6 @@ SimpleHBaseMapper mapper = new SimpleHBaseMapper()
1. [Apache HDFS Integration](http://storm.apache.org/releases/2.0.0-SNAPSHOT/storm-hdfs.html)
2. [Apache HBase Integration](http://storm.apache.org/releases/2.0.0-SNAPSHOT/storm-hbase.html)
+
+
+
\ No newline at end of file
diff --git "a/notes/Storm\351\233\206\346\210\220Kakfa.md" "b/notes/Storm\351\233\206\346\210\220Kakfa.md"
index 5645bc04..f27717fd 100644
--- "a/notes/Storm\351\233\206\346\210\220Kakfa.md"
+++ "b/notes/Storm\351\233\206\346\210\220Kakfa.md"
@@ -365,3 +365,6 @@ public class DefaultRecordTranslator implements RecordTranslator {
## 参考资料
1. [Storm Kafka Integration (0.10.x+)](http://storm.apache.org/releases/2.0.0-SNAPSHOT/storm-kafka-client.html)
+
+
+
\ No newline at end of file
diff --git "a/notes/Storm\351\233\206\346\210\220Redis\350\257\246\350\247\243.md" "b/notes/Storm\351\233\206\346\210\220Redis\350\257\246\350\247\243.md"
index 13cbaa49..46f2ff7b 100644
--- "a/notes/Storm\351\233\206\346\210\220Redis\350\257\246\350\247\243.md"
+++ "b/notes/Storm\351\233\206\346\210\220Redis\350\257\246\350\247\243.md"
@@ -653,3 +653,6 @@ public class CustomRedisCountApp {
## 参考资料
1. [Storm Redis Integration](http://storm.apache.org/releases/2.0.0-SNAPSHOT/storm-redis.html)
+
+
+
\ No newline at end of file
diff --git "a/notes/Zookeeper_ACL\346\235\203\351\231\220\346\216\247\345\210\266.md" "b/notes/Zookeeper_ACL\346\235\203\351\231\220\346\216\247\345\210\266.md"
index 478a7303..5b4b6fff 100644
--- "a/notes/Zookeeper_ACL\346\235\203\351\231\220\346\216\247\345\210\266.md"
+++ "b/notes/Zookeeper_ACL\346\235\203\351\231\220\346\216\247\345\210\266.md"
@@ -281,3 +281,6 @@ public class AclOperation {
```
> 完整源码见本仓库: https://github.com/heibaiying/BigData-Notes/tree/master/code/Zookeeper/curator
+
+
+
\ No newline at end of file
diff --git "a/notes/Zookeeper_Java\345\256\242\346\210\267\347\253\257Curator.md" "b/notes/Zookeeper_Java\345\256\242\346\210\267\347\253\257Curator.md"
index 0725f5f8..eba7ca5a 100644
--- "a/notes/Zookeeper_Java\345\256\242\346\210\267\347\253\257Curator.md"
+++ "b/notes/Zookeeper_Java\345\256\242\346\210\267\347\253\257Curator.md"
@@ -334,3 +334,6 @@ public void permanentChildrenNodesWatch() throws Exception {
Thread.sleep(1000 * 1000); //休眠以观察测试效果
}
```
+
+
+
\ No newline at end of file
diff --git "a/notes/Zookeeper\345\270\270\347\224\250Shell\345\221\275\344\273\244.md" "b/notes/Zookeeper\345\270\270\347\224\250Shell\345\221\275\344\273\244.md"
index 23581177..2b48bcfc 100644
--- "a/notes/Zookeeper\345\270\270\347\224\250Shell\345\221\275\344\273\244.md"
+++ "b/notes/Zookeeper\345\270\270\347\224\250Shell\345\221\275\344\273\244.md"
@@ -263,3 +263,6 @@ Mode: standalone
Node count: 167
```
+
+
+
\ No newline at end of file
diff --git "a/notes/Zookeeper\347\256\200\344\273\213\345\217\212\346\240\270\345\277\203\346\246\202\345\277\265.md" "b/notes/Zookeeper\347\256\200\344\273\213\345\217\212\346\240\270\345\277\203\346\246\202\345\277\265.md"
index 29dc72d8..6bfcd571 100644
--- "a/notes/Zookeeper\347\256\200\344\273\213\345\217\212\346\240\270\345\277\203\346\246\202\345\277\265.md"
+++ "b/notes/Zookeeper\347\256\200\344\273\213\345\217\212\346\240\270\345\277\203\346\246\202\345\277\265.md"
@@ -205,3 +205,6 @@ Zookeeper 还能解决大多数分布式系统中的问题:
+
+
+
\ No newline at end of file
diff --git "a/notes/installation/Azkaban_3.x_\347\274\226\350\257\221\345\217\212\351\203\250\347\275\262.md" "b/notes/installation/Azkaban_3.x_\347\274\226\350\257\221\345\217\212\351\203\250\347\275\262.md"
index b9984b24..d2a45b77 100644
--- "a/notes/installation/Azkaban_3.x_\347\274\226\350\257\221\345\217\212\351\203\250\347\275\262.md"
+++ "b/notes/installation/Azkaban_3.x_\347\274\226\350\257\221\345\217\212\351\203\250\347\275\262.md"
@@ -122,3 +122,6 @@ tar -zxvf azkaban-solo-server-3.70.0.tar.gz
+
+
+
\ No newline at end of file
diff --git a/notes/installation/Flink_Standalone_Cluster.md b/notes/installation/Flink_Standalone_Cluster.md
index 0ccf0d6f..bfd2025f 100644
--- a/notes/installation/Flink_Standalone_Cluster.md
+++ b/notes/installation/Flink_Standalone_Cluster.md
@@ -268,3 +268,6 @@ the classpath/dependencies.
+ [Standalone Cluster](https://ci.apache.org/projects/flink/flink-docs-release-1.9/ops/deployment/cluster_setup.html#standalone-cluster)
+ [JobManager High Availability (HA)](https://ci.apache.org/projects/flink/flink-docs-release-1.9/ops/jobmanager_high_availability.html)
+
+
+
\ No newline at end of file
diff --git "a/notes/installation/HBase\345\215\225\346\234\272\347\216\257\345\242\203\346\220\255\345\273\272.md" "b/notes/installation/HBase\345\215\225\346\234\272\347\216\257\345\242\203\346\220\255\345\273\272.md"
index 56cc598e..566b6a96 100644
--- "a/notes/installation/HBase\345\215\225\346\234\272\347\216\257\345\242\203\346\220\255\345\273\272.md"
+++ "b/notes/installation/HBase\345\215\225\346\234\272\347\216\257\345\242\203\346\220\255\345\273\272.md"
@@ -225,3 +225,6 @@ hadoop001
验证方式二 :访问 HBase Web UI 界面,需要注意的是 1.2 版本的 HBase 的访问端口为 `60010`
+
+
+
\ No newline at end of file
diff --git "a/notes/installation/HBase\351\233\206\347\276\244\347\216\257\345\242\203\346\220\255\345\273\272.md" "b/notes/installation/HBase\351\233\206\347\276\244\347\216\257\345\242\203\346\220\255\345\273\272.md"
index d57bf601..80a71828 100644
--- "a/notes/installation/HBase\351\233\206\347\276\244\347\216\257\345\242\203\346\220\255\345\273\272.md"
+++ "b/notes/installation/HBase\351\233\206\347\276\244\347\216\257\345\242\203\346\220\255\345\273\272.md"
@@ -198,3 +198,6 @@ hadoop002 上的 HBase 出于备用状态:
+
+
+
\ No newline at end of file
diff --git "a/notes/installation/Hadoop\345\215\225\346\234\272\347\216\257\345\242\203\346\220\255\345\273\272.md" "b/notes/installation/Hadoop\345\215\225\346\234\272\347\216\257\345\242\203\346\220\255\345\273\272.md"
index 05316686..1bc301df 100644
--- "a/notes/installation/Hadoop\345\215\225\346\234\272\347\216\257\345\242\203\346\220\255\345\273\272.md"
+++ "b/notes/installation/Hadoop\345\215\225\346\234\272\347\216\257\345\242\203\346\220\255\345\273\272.md"
@@ -260,3 +260,6 @@ cp mapred-site.xml.template mapred-site.xml
方式二:查看 Web UI 界面,端口号为 `8088`:
+
+
+
\ No newline at end of file
diff --git "a/notes/installation/Hadoop\351\233\206\347\276\244\347\216\257\345\242\203\346\220\255\345\273\272.md" "b/notes/installation/Hadoop\351\233\206\347\276\244\347\216\257\345\242\203\346\220\255\345\273\272.md"
index 477dea4f..88515d01 100644
--- "a/notes/installation/Hadoop\351\233\206\347\276\244\347\216\257\345\242\203\346\220\255\345\273\272.md"
+++ "b/notes/installation/Hadoop\351\233\206\347\276\244\347\216\257\345\242\203\346\220\255\345\273\272.md"
@@ -231,3 +231,6 @@ start-yarn.sh
hadoop jar /usr/app/hadoop-2.6.0-cdh5.15.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.15.2.jar pi 3 3
```
+
+
+
\ No newline at end of file
diff --git "a/notes/installation/Linux\344\270\213Flume\347\232\204\345\256\211\350\243\205.md" "b/notes/installation/Linux\344\270\213Flume\347\232\204\345\256\211\350\243\205.md"
index 2e8b46ae..3aef07f5 100644
--- "a/notes/installation/Linux\344\270\213Flume\347\232\204\345\256\211\350\243\205.md"
+++ "b/notes/installation/Linux\344\270\213Flume\347\232\204\345\256\211\350\243\205.md"
@@ -66,3 +66,6 @@ export JAVA_HOME=/usr/java/jdk1.8.0_201
![flume-version](https://github.com/heibaiying/BigData-Notes/blob/master/pictures/flume-version.png)
+
+
+
\ No newline at end of file
diff --git "a/notes/installation/Linux\344\270\213JDK\345\256\211\350\243\205.md" "b/notes/installation/Linux\344\270\213JDK\345\256\211\350\243\205.md"
index 5459e044..3923a4df 100644
--- "a/notes/installation/Linux\344\270\213JDK\345\256\211\350\243\205.md"
+++ "b/notes/installation/Linux\344\270\213JDK\345\256\211\350\243\205.md"
@@ -53,3 +53,6 @@ Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)
```
+
+
+
\ No newline at end of file
diff --git "a/notes/installation/Linux\344\270\213Python\345\256\211\350\243\205.md" "b/notes/installation/Linux\344\270\213Python\345\256\211\350\243\205.md"
index 20fa1914..707f26e1 100644
--- "a/notes/installation/Linux\344\270\213Python\345\256\211\350\243\205.md"
+++ "b/notes/installation/Linux\344\270\213Python\345\256\211\350\243\205.md"
@@ -69,3 +69,6 @@ Type "help", "copyright", "credits" or "license" for more information.
[root@hadoop001 app]#
```
+
+
+
\ No newline at end of file
diff --git "a/notes/installation/Linux\347\216\257\345\242\203\344\270\213Hive\347\232\204\345\256\211\350\243\205\351\203\250\347\275\262.md" "b/notes/installation/Linux\347\216\257\345\242\203\344\270\213Hive\347\232\204\345\256\211\350\243\205\351\203\250\347\275\262.md"
index 802b23fc..22a0e727 100644
--- "a/notes/installation/Linux\347\216\257\345\242\203\344\270\213Hive\347\232\204\345\256\211\350\243\205\351\203\250\347\275\262.md"
+++ "b/notes/installation/Linux\347\216\257\345\242\203\344\270\213Hive\347\232\204\345\256\211\350\243\205\351\203\250\347\275\262.md"
@@ -179,3 +179,6 @@ Hive 内置了 HiveServer 和 HiveServer2 服务,两者都允许客户端使
```
+
+
+
\ No newline at end of file
diff --git "a/notes/installation/Spark\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272.md" "b/notes/installation/Spark\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272.md"
index c961ed6c..60fe77fc 100644
--- "a/notes/installation/Spark\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272.md"
+++ "b/notes/installation/Spark\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272.md"
@@ -176,3 +176,6 @@ IDEA 默认不支持 Scala 语言的开发,需要通过插件进行扩展。
**另外在 IDEA 中以本地模式运行 Spark 项目是不需要在本机搭建 Spark 和 Hadoop 环境的。**
+
+
+
\ No newline at end of file
diff --git "a/notes/installation/Spark\351\233\206\347\276\244\347\216\257\345\242\203\346\220\255\345\273\272.md" "b/notes/installation/Spark\351\233\206\347\276\244\347\216\257\345\242\203\346\220\255\345\273\272.md"
index 7b4eb2e0..24ded20b 100644
--- "a/notes/installation/Spark\351\233\206\347\276\244\347\216\257\345\242\203\346\220\255\345\273\272.md"
+++ "b/notes/installation/Spark\351\233\206\347\276\244\347\216\257\345\242\203\346\220\255\345\273\272.md"
@@ -188,3 +188,6 @@ spark-submit \
100
```
+
+
+
\ No newline at end of file
diff --git "a/notes/installation/Storm\345\215\225\346\234\272\347\216\257\345\242\203\346\220\255\345\273\272.md" "b/notes/installation/Storm\345\215\225\346\234\272\347\216\257\345\242\203\346\220\255\345\273\272.md"
index efcf5867..95806fdb 100644
--- "a/notes/installation/Storm\345\215\225\346\234\272\347\216\257\345\242\203\346\220\255\345\273\272.md"
+++ "b/notes/installation/Storm\345\215\225\346\234\272\347\216\257\345\242\203\346\220\255\345\273\272.md"
@@ -79,3 +79,6 @@ nohup sh storm logviewer &
验证方式二: 访问 8080 端口,查看 Web-UI 界面:
+
+
+
\ No newline at end of file
diff --git "a/notes/installation/Storm\351\233\206\347\276\244\347\216\257\345\242\203\346\220\255\345\273\272.md" "b/notes/installation/Storm\351\233\206\347\276\244\347\216\257\345\242\203\346\220\255\345\273\272.md"
index 69b9c211..2afc41e4 100644
--- "a/notes/installation/Storm\351\233\206\347\276\244\347\216\257\345\242\203\346\220\255\345\273\272.md"
+++ "b/notes/installation/Storm\351\233\206\347\276\244\347\216\257\345\242\203\346\220\255\345\273\272.md"
@@ -165,3 +165,6 @@ nohup sh storm logviewer &
这里手动模拟主 `Nimbus` 异常的情况,在 hadoop001 上使用 `kill` 命令杀死 `Nimbus` 的线程,此时可以看到 hadoop001 上的 `Nimbus` 已经处于 `offline` 状态,而 hadoop002 上的 `Nimbus` 则成为新的 `Leader`。
+
+
+
\ No newline at end of file
diff --git "a/notes/installation/Zookeeper\345\215\225\346\234\272\347\216\257\345\242\203\345\222\214\351\233\206\347\276\244\347\216\257\345\242\203\346\220\255\345\273\272.md" "b/notes/installation/Zookeeper\345\215\225\346\234\272\347\216\257\345\242\203\345\222\214\351\233\206\347\276\244\347\216\257\345\242\203\346\220\255\345\273\272.md"
index eec970bf..7698a4f9 100644
--- "a/notes/installation/Zookeeper\345\215\225\346\234\272\347\216\257\345\242\203\345\222\214\351\233\206\347\276\244\347\216\257\345\242\203\346\220\255\345\273\272.md"
+++ "b/notes/installation/Zookeeper\345\215\225\346\234\272\347\216\257\345\242\203\345\222\214\351\233\206\347\276\244\347\216\257\345\242\203\346\220\255\345\273\272.md"
@@ -185,3 +185,6 @@ echo "3" > /usr/local/zookeeper-cluster/data/myid
+
+
+
\ No newline at end of file
diff --git "a/notes/installation/\345\237\272\344\272\216Zookeeper\346\220\255\345\273\272Hadoop\351\253\230\345\217\257\347\224\250\351\233\206\347\276\244.md" "b/notes/installation/\345\237\272\344\272\216Zookeeper\346\220\255\345\273\272Hadoop\351\253\230\345\217\257\347\224\250\351\233\206\347\276\244.md"
index d54db8dd..5d69f316 100644
--- "a/notes/installation/\345\237\272\344\272\216Zookeeper\346\220\255\345\273\272Hadoop\351\253\230\345\217\257\347\224\250\351\233\206\347\276\244.md"
+++ "b/notes/installation/\345\237\272\344\272\216Zookeeper\346\220\255\345\273\272Hadoop\351\253\230\345\217\257\347\224\250\351\233\206\347\276\244.md"
@@ -512,3 +512,6 @@ yarn-daemon.sh start resourcemanager
[Hadoop NameNode 高可用 (High Availability) 实现解析](https://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop-name-node/index.html)
+
+
+
\ No newline at end of file
diff --git "a/notes/installation/\345\237\272\344\272\216Zookeeper\346\220\255\345\273\272Kafka\351\253\230\345\217\257\347\224\250\351\233\206\347\276\244.md" "b/notes/installation/\345\237\272\344\272\216Zookeeper\346\220\255\345\273\272Kafka\351\253\230\345\217\257\347\224\250\351\233\206\347\276\244.md"
index 3a3fb6b9..85502f19 100644
--- "a/notes/installation/\345\237\272\344\272\216Zookeeper\346\220\255\345\273\272Kafka\351\253\230\345\217\257\347\224\250\351\233\206\347\276\244.md"
+++ "b/notes/installation/\345\237\272\344\272\216Zookeeper\346\220\255\345\273\272Kafka\351\253\230\345\217\257\347\224\250\351\233\206\347\276\244.md"
@@ -237,3 +237,6 @@ bin/kafka-topics.sh --describe --bootstrap-server hadoop001:9092 --topic my-repl
+
+
+
\ No newline at end of file
diff --git "a/notes/installation/\350\231\232\346\213\237\346\234\272\351\235\231\346\200\201IP\345\217\212\345\244\232IP\351\205\215\347\275\256.md" "b/notes/installation/\350\231\232\346\213\237\346\234\272\351\235\231\346\200\201IP\345\217\212\345\244\232IP\351\205\215\347\275\256.md"
index aee8ceb5..fc6c49e0 100644
--- "a/notes/installation/\350\231\232\346\213\237\346\234\272\351\235\231\346\200\201IP\345\217\212\345\244\232IP\351\205\215\347\275\256.md"
+++ "b/notes/installation/\350\231\232\346\213\237\346\234\272\351\235\231\346\200\201IP\345\217\212\345\244\232IP\351\205\215\347\275\256.md"
@@ -116,3 +116,6 @@ DEVICE=enp0s8
使用时只需要根据所处的网络环境,勾选对应的网卡即可,不使用的网卡尽量不要勾选启动。
+
+
+
\ No newline at end of file
diff --git "a/notes/\345\244\247\346\225\260\346\215\256\345\255\246\344\271\240\350\267\257\347\272\277.md" "b/notes/\345\244\247\346\225\260\346\215\256\345\255\246\344\271\240\350\267\257\347\272\277.md"
index acaffe02..fe1520cc 100644
--- "a/notes/\345\244\247\346\225\260\346\215\256\345\255\246\344\271\240\350\267\257\347\272\277.md"
+++ "b/notes/\345\244\247\346\225\260\346\215\256\345\255\246\344\271\240\350\267\257\347\272\277.md"
@@ -167,3 +167,6 @@ Scala 是一门综合了面向对象和函数式编程概念的静态类型的
以上就是个人关于大数据的学习心得和路线推荐。本片文章对大数据技术栈做了比较狭义的限定,随着学习的深入,大家也可以把 Python 语言、推荐系统、机器学习等逐步加入到自己的大数据技术栈中。
+
+
+
\ No newline at end of file
diff --git "a/notes/\345\244\247\346\225\260\346\215\256\345\270\270\347\224\250\350\275\257\344\273\266\345\256\211\350\243\205\346\214\207\345\215\227.md" "b/notes/\345\244\247\346\225\260\346\215\256\345\270\270\347\224\250\350\275\257\344\273\266\345\256\211\350\243\205\346\214\207\345\215\227.md"
index 390afb87..6c39b511 100644
--- "a/notes/\345\244\247\346\225\260\346\215\256\345\270\270\347\224\250\350\275\257\344\273\266\345\256\211\350\243\205\346\214\207\345\215\227.md"
+++ "b/notes/\345\244\247\346\225\260\346\215\256\345\270\270\347\224\250\350\275\257\344\273\266\345\256\211\350\243\205\346\214\207\345\215\227.md"
@@ -65,3 +65,6 @@ hadoop-2.6.0-cdh5.15.2.tar.gz
hbase-1.2.0-cdh5.15.2
hive-1.1.0-cdh5.15.2.tar.gz
```
+
+
+
\ No newline at end of file
diff --git "a/notes/\345\244\247\346\225\260\346\215\256\345\272\224\347\224\250\345\270\270\347\224\250\346\211\223\345\214\205\346\226\271\345\274\217.md" "b/notes/\345\244\247\346\225\260\346\215\256\345\272\224\347\224\250\345\270\270\347\224\250\346\211\223\345\214\205\346\226\271\345\274\217.md"
index f166e3da..adab2267 100644
--- "a/notes/\345\244\247\346\225\260\346\215\256\345\272\224\347\224\250\345\270\270\347\224\250\346\211\223\345\214\205\346\226\271\345\274\217.md"
+++ "b/notes/\345\244\247\346\225\260\346\215\256\345\272\224\347\224\250\345\270\270\347\224\250\346\211\223\345\214\205\346\226\271\345\274\217.md"
@@ -304,3 +304,6 @@ Strom 官方文档 Running Topologies on a Production Cluster 章节:
+ maven-dependency-plugin : http://maven.apache.org/components/plugins/maven-dependency-plugin/
关于 maven-shade-plugin 的更多配置也可以参考该博客: [maven-shade-plugin 入门指南](https://www.jianshu.com/p/7a0e20b30401)
+
+
+
\ No newline at end of file
diff --git "a/notes/\345\244\247\346\225\260\346\215\256\346\212\200\346\234\257\346\240\210\346\200\235\347\273\264\345\257\274\345\233\276.md" "b/notes/\345\244\247\346\225\260\346\215\256\346\212\200\346\234\257\346\240\210\346\200\235\347\273\264\345\257\274\345\233\276.md"
index a28d2560..d6e312c5 100644
--- "a/notes/\345\244\247\346\225\260\346\215\256\346\212\200\346\234\257\346\240\210\346\200\235\347\273\264\345\257\274\345\233\276.md"
+++ "b/notes/\345\244\247\346\225\260\346\215\256\346\212\200\346\234\257\346\240\210\346\200\235\347\273\264\345\257\274\345\233\276.md"
@@ -1,2 +1,5 @@
+
+
+
\ No newline at end of file
diff --git "a/notes/\350\265\204\346\226\231\345\210\206\344\272\253\344\270\216\345\267\245\345\205\267\346\216\250\350\215\220.md" "b/notes/\350\265\204\346\226\231\345\210\206\344\272\253\344\270\216\345\267\245\345\205\267\346\216\250\350\215\220.md"
index b7e3b33a..031d7587 100644
--- "a/notes/\350\265\204\346\226\231\345\210\206\344\272\253\344\270\216\345\267\245\345\205\267\346\216\250\350\215\220.md"
+++ "b/notes/\350\265\204\346\226\231\345\210\206\344\272\253\344\270\216\345\267\245\345\205\267\346\216\250\350\215\220.md"
@@ -54,3 +54,6 @@ ProcessOn 式一个在线绘图平台,使用起来非常便捷,可以用于
官方网站:https://www.processon.com/
+
+
+
\ No newline at end of file
diff --git a/pictures/weixin-desc.png b/pictures/weixin-desc.png
index 3217ead100aa8b1ede81b4527a6d3d60f8147343..e6a2b6d1c8537c6a96edf7d1763e6f84156d894b 100644
GIT binary patch
literal 34582
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
literal 45299
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