Browse Source

Merge branch 'master' of http://39.106.8.246:3003/persagy/persagy-dmp-server-doc

lixing 4 years ago
parent
commit
3d04ceb4f3

+ 12 - 1
docs/.vuepress/config.js

@@ -11,7 +11,8 @@ module.exports = {
             { text: '数据标准化', link: '/dic/'},
             { text: '任务调度', link: '/task/' },
             { text: '报警系统', link: '/alarm/'},
-            { text: '报表统计系统', link: '/report/'}
+            { text: '报表统计系统', link: '/report/'},
+            { text: '数据仓库', link: '/dw/'}
             ],
 
         sidebarDepth: 2,
@@ -26,6 +27,16 @@ module.exports = {
                     ]
                 }
             ],
+            '/dw': [
+                {
+                    title: '数据仓库',
+                    collapsable: false,
+                    children: [
+                        {title: '配置计划', path: '/dw/dw_config'},
+                        {title: '搭建部署', path: '/dw/dw_deploy'}
+                    ]
+                }
+            ],
             '/report': [
                 {
                     title: '报表统计系统',

+ 2 - 0
docs/dic/dic_api.md

@@ -71,6 +71,7 @@
   "type": "sex",
   "code": "A",
   "label": "man",
+  "orderNum": "10",
   "status": 0,
   "createTime": 1602429367000,
   "createUser": "test",
@@ -132,6 +133,7 @@
   "targetCode": "0",
   "label": "man",
   "code": "A",
+  "orderNum": "10",
   "status": 1,
   "createTime": 1602429745000,
   "createUser": "test",

+ 32 - 30
docs/dic/dic_design.md

@@ -13,51 +13,53 @@ datetime格式:时间戳(1598495680898)
 |    字段     |      字段说明      |   数据类型   | 是否非空 |               备注                |
 | :---------: | :----------------: | :----------: | -------- | :-------------------------------: |
 |     id      | 主键(无业务含义) | varchar(20)  | Y        | id全局唯一,命名规则:“Dict”+UUID |
-| group_code  |      集团编码      | varchar(20)  |          |                                   |
+|  groupCode  |      集团编码      | varchar(20)  |          |                                   |
 |    type     |      字典类型      | varchar(40)  | Y        |                sex                |
 |    name     |    字典类型名称    | varchar(40)  | Y        |               性别                |
 | description |        描述        | varchar(200) |          |          对字典类型描述           |
 |   status    |        状态        |   char(2)    |          |         0:停用,1:正常          |
-| create_time |      创建时间      |   datetime   |          |                                   |
-| create_user |      创建人员      | varchar(40)  |          |         保存创建的用户id          |
-| update_time |      更新时间      |   datetime   |          |                                   |
-| update_user |      更新人员      | varchar(40)  |          |       保存最后更新的用户id        |
+| createTime  |      创建时间      |   datetime   |          |                                   |
+| createUser  |      创建人员      | varchar(40)  |          |         保存创建的用户id          |
+| updateTime  |      更新时间      |   datetime   |          |                                   |
+| updateUser  |      更新人员      | varchar(40)  |          |       保存最后更新的用户id        |
 |   remark    |      备注信息      | varchar(200) |          |                                   |
 
 
 
 ### 字典数据结构(dic_dt_data)
 
-|     字段     |      字段说明      |   数据类型   | 是否非空 |                 备注                 |
-| :----------: | :----------------: | :----------: | -------- | :----------------------------------: |
-|      id      | 主键(无业务含义) | varchar(20)  | Y        |                 UUID                 |
-| dict_type_id |     字典类型id     | varchar(20)  | Y        |                                      |
-| parent_code  |       父节点       | varchar(20)  |          | 保存多级树状字典(id),没有可以不写 |
-|     type     |      字典类型      | varchar(40)  | Y        |         对应字典类型(sex)          |
-|     code     |        编码        | varchar(40)  | Y        |                  1                   |
-|    label     |      字典标签      | varchar(40)  | Y        |                  男                  |
-|    status    |        状态        |   char(2)    | Y        |           0:停用,1:正常           |
-|    remark    |      备注信息      | varchar(200) |          |                                      |
+|    字段    |      字段说明      |   数据类型   | 是否非空 |                 备注                 |
+| :--------: | :----------------: | :----------: | -------- | :----------------------------------: |
+|     id     | 主键(无业务含义) | varchar(20)  | Y        |                 UUID                 |
+| dictTypeId |     字典类型id     | varchar(20)  | Y        |                                      |
+| parentCode |       父节点       | varchar(20)  |          | 保存多级树状字典(id),没有可以不写 |
+|    type    |      字典类型      | varchar(40)  | Y        |         对应字典类型(sex)          |
+|    code    |        编码        | varchar(40)  | Y        |                  1                   |
+|   label    |      字典标签      | varchar(40)  | Y        |                  男                  |
+|  orderNum  |        排序        |              | Y        |                                      |
+|   status   |        状态        |   char(2)    | Y        |           0:停用,1:正常           |
+|   remark   |      备注信息      | varchar(200) |          |                                      |
 
 
 
 ### 字典数据映射结构(dic_dt_data_map)
 
-|     字段     |       字段说明       |   数据类型   |      |           备注           |
-| :----------: | :------------------: | :----------: | ---- | :----------------------: |
-|      id      |  主键(无业务含义)  | varchar(20)  | Y    | 全局唯一,UUID无实际意义 |
-| dict_data_id |    字典数据结构id    | varchar(20)  | Y    |      对应字典数据id      |
-|     type     |       字典类型       | varchar(40)  | Y    |       对应字典类型       |
-|  group_code  |       集团编码       | varchar(20)  | Y    |                          |
-| target_code  | 映射的字典数据表code | varchar(20)  | Y    |            1             |
-|    label     |       字典标签       | varchar(40)  | Y    |           男性           |
-|     code     |         编码         | varchar(40)  | Y    |            a             |
-|    status    |         状态         |   char(2)    | Y    |     0:停用,1:正常     |
-| create_time  |       创建时间       |   datetime   |      |                          |
-| create_user  |       创建人员       | varchar(40)  |      |     保存创建的用户ID     |
-| update_time  |       更新时间       |   datetime   |      |                          |
-| update_user  |       更新人员       | varchar(40)  |      |   保存最后更新的用户ID   |
-|    remark    |       备注信息       | varchar(200) |      |                          |
+|    字段    |       字段说明       |   数据类型   |      |           备注           |
+| :--------: | :------------------: | :----------: | ---- | :----------------------: |
+|     id     |  主键(无业务含义)  | varchar(20)  | Y    | 全局唯一,UUID无实际意义 |
+| dictDataId |    字典数据结构id    | varchar(20)  | Y    |      对应字典数据id      |
+|    type    |       字典类型       | varchar(40)  | Y    |       对应字典类型       |
+| groupCode  |       集团编码       | varchar(20)  | Y    |                          |
+| targetCode | 映射的字典数据表code | varchar(20)  | Y    |            1             |
+|   label    |       字典标签       | varchar(40)  | Y    |           男性           |
+|    code    |         编码         | varchar(40)  | Y    |            a             |
+|  orderNum  |         排序         |              | Y    |                          |
+|   status   |         状态         |   char(2)    | Y    |     0:停用,1:正常     |
+| createTime |       创建时间       |   datetime   |      |                          |
+| createUser |       创建人员       | varchar(40)  |      |     保存创建的用户ID     |
+| updateTime |       更新时间       |   datetime   |      |                          |
+| updateUser |       更新人员       | varchar(40)  |      |   保存最后更新的用户ID   |
+|   remark   |       备注信息       | varchar(200) |      |                          |
 
 
 

+ 39 - 0
docs/dw/dw_config.md

@@ -0,0 +1,39 @@
+1. 集群数量:3台
+
+2. 配置(推荐配置):
+
+   1. CPU:10核
+   2. 内存:64G
+   3. 硬盘:1T
+
+3. 软件:
+
+   1. hadoop:分布式存储
+   2. zookeeper:纵向调度
+   3. flume:
+      1. 采集,2台
+      2. 消费kafka,写入hdfs,原始数据入库,1台
+   4. kafka:缓存机制
+   5. spark:实时消费kafka数据,进行实时计算
+   6. hbase:存储,查询数据
+   7. hive:数据处理、用于T+1级别数据的处理,定时脚本
+   8. redis:单节点,缓存实时使用数据
+
+4. 集群部署计划
+
+   |                         | hadoop1                | hadoop2                          | hadoop3                         |
+   | ----------------------- | ---------------------- | -------------------------------- | ------------------------------- |
+   | Hadoop-hdfs             | nameNode<br />dataNode | dataNode                         | dataNode<br />secondaryNameNode |
+   | Hadoop-yarn             | nodeManager            | nodeManager<br />resourceManager | nodeManager                     |
+   | zookeeper               | ✅                      | ✅                                | ✅                               |
+   | flume                   | 采集                   | 采集                             | 传输                            |
+   | kafka                   | ✅                      | ✅                                | ✅                               |
+   | hbase                   | ✅                      | ✅                                | ✅                               |
+   | spark                   | ✅                      | ✅                                | ✅                               |
+   | hive                    | ✅                      |                                  |                                 |
+   | MySQL(保存hive元数据) | ✅                      |                                  |                                 |
+
+   
+
+
+

+ 417 - 0
docs/dw/dw_deploy.md

@@ -0,0 +1,417 @@
+# Linux系统准备
+
+### <font color='red'>*集群名称:hadoop01、hadoop02、hadoop03*</font>
+
+### <font color='red'>*Linux系统版本:CentOS 7*</font>
+
+### <font color='red'>*linux账户:persagy*</font>
+
+1. 安装虚拟机
+
+2. 配置静态IP
+
+3. 修改主机名
+
+4. 修改/etc/hosts文件映射主机名与IP
+
+   ​	192.168.xxx.xxx  hadoop01
+
+   ​	192.168.xxx.xxx  hadoop02
+
+   ​	192.168.xxx.xxx  hadoop03
+
+5. 创建用户
+
+   ​	useradd persagy
+
+   ​	passwd 自定义
+
+   ​	在 /etc/sudoers文件中加入 persagy ALL=(ALL)    NOPASSWD:ALL 
+
+6. 关闭防火墙服务以及开机自启动
+
+7. root和persagy的SSH无密登录配置
+
+   1. 每个节点执行:ssh-keygen -t rsa
+   2. 将公钥拷贝到要免密登录的目标机器上
+      ssh-copy-id hadoop01
+      ssh-copy-id hadoop02
+      ssh-copy-id hadoop03
+
+8. 集群时间同步
+
+9. opt目录创建文件夹(<font color='red'>*此目录可以自定义*</font>)
+
+   1. mkdir /opt/software /opt/module
+   2. chown persagy:persagy /opt/software /opt/module
+
+10. 安装JDK(<font color='red'>*文档以 jdk1.8.0_121 为准,jdk版本可在兼容hadoop的情况下自行选择*</font>)
+
+    1. tar -zxvf jdk-8u121-linux-x64.tar.gz -C /opt/module
+
+    2. /etc/profile 配置环境变量
+
+       ```shell
+       #JAVA_HOME
+       export JAVA_HOME=/opt/module/jdk1.8.0_121
+       export PATH=$PATH:$JAVA_HOME/bin
+       ```
+
+
+
+# 集群部署计划及软件版本
+
+## 集群部署计划
+
+|                         | hadoop01               | hadoop02                         | hadoop03                        |
+| ----------------------- | ---------------------- | -------------------------------- | ------------------------------- |
+| Hadoop-hdfs             | nameNode<br />dataNode | dataNode                         | dataNode<br />secondaryNameNode |
+| Hadoop-yarn             | nodeManager            | nodeManager<br />resourceManager | nodeManager                     |
+| zookeeper               | ✅                      | ✅                                | ✅                               |
+| flume                   | 采集                   | 采集                             | 传输                            |
+| kafka                   | ✅                      | ✅                                | ✅                               |
+| hbase                   | ✅                      | ✅                                | ✅                               |
+| spark                   | ✅                      | ✅                                | ✅                               |
+| hive                    | ✅                      |                                  |                                 |
+| MySQL(保存hive元数据) | ✅                      |                                  |                                 |
+
+## 软件版本
+
+| 软件      | 版本号                                                       | 备注                                                 |
+| --------- | ------------------------------------------------------------ | ---------------------------------------------------- |
+| Java      | jdk-8u121-linux-x64.tar.gz                                   |                                                      |
+| Hadoop    | hadoop-2.7.2.tar.gz                                          |                                                      |
+| Hive      | apache-hive-1.2.1-bin.tar.gz                                 | 可用DataGrip或者DBeaver连接,需要启动hiveserver2服务 |
+| flume     | apache-flume-1.7.0-bin.tar.gz                                |                                                      |
+| kafka     | kafka_2.11-0.11.0.0.tgz                                      |                                                      |
+| hbase     |                                                              |                                                      |
+| zookeeper | 3.5.7                                                        |                                                      |
+| spark     |                                                              |                                                      |
+| mysql     | mysql-community-client-5.7.32-1.el7.x86_64.rpm<br />mysql-community-server-5.7.32-1.el7.x86_64.rpm<br />mysql-connector-java-5.1.49( <= 放入hive的lib文件) |                                                      |
+|           |                                                              |                                                      |
+
+
+
+# Zookeeper安装
+
+#### <font color='red'>*persagy用户操作*</font>
+
+1. 解压
+
+2. 修改zookeeper中conf下的配置文件zoo.cfg
+
+   ```shell
+   cp zoo_sample.cfg zoo.cfg
+   ```
+
+   ```xml
+   dataDir=/opt/module/zookeeper-3.4.10/zkData
+   ZOO_LOG_DIR=/opt/module/zookeeper-3.4.10/logs
+   
+   ## 在zkData目下创建myid,内容是本机的 serverId;以下配置1、2、3就是 serverId
+   server.1=hadoop01:2888:3888
+   server.2=hadoop02:2888:3888
+   server.3=hadoop03:2888:3888
+   ```
+
+   
+
+3. 创建 /opt/module/zookeeper-3.4.10/zkData 和 /opt/module/zookeeper-3.4.10/logs 目录
+
+# Hadoop集群安装
+
+#### <font color='red'>*persagy用户操作*</font>
+
+1. 解压
+
+   ```shell
+   tar -zxvf hadoop-2.7.2.tar.gz -C /opt/module/
+   ```
+
+2. /etc/profile 配置环境变量
+
+   ```shell
+   #HADOOP_HOME
+   export HADOOP_HOME=/opt/module/hadoop-2.7.2
+   export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
+   ```
+
+3. 修改 Hadoop 配置文件(目录:/opt/module/hadoop-2.7.2/etc/hadoop)每个节点部署配置相同
+
+   1. core-site.xml
+
+      ```xml
+      <?xml version="1.0" encoding="UTF-8"?>
+      <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+      
+      <configuration>
+      
+      	<!-- 指定HDFS中NameNode的地址 -->
+      	<property>
+      			<name>fs.defaultFS</name>
+      		  <value>hdfs://hadoop01:9000</value>
+      	</property>
+      
+      	<!-- 指定Hadoop运行时产生文件的存储目录 -->
+      	<property>
+      			<name>hadoop.tmp.dir</name>
+      			<value>/opt/module/hadoop-2.7.2/data/tmp</value>
+      	</property>
+        
+      	<!-- 配置lzo压缩 start -->
+      	<property>
+      		<name>io.compression.codecs</name>
+      		<value>
+      			org.apache.hadoop.io.compress.GzipCodec,
+      			org.apache.hadoop.io.compress.DefaultCodec,
+      			org.apache.hadoop.io.compress.BZip2Codec,
+      			org.apache.hadoop.io.compress.SnappyCodec,
+      			com.hadoop.compression.lzo.LzoCodec,
+      			com.hadoop.compression.lzo.LzopCodec
+      		</value>
+      	</property>
+      	<property>
+      		<name>io.compression.codec.lzo.class</name>
+      		<value>com.hadoop.compression.lzo.LzoCodec</value>
+      	</property>
+      	<!-- 配置lzo压缩 end -->
+        
+      </configuration>
+      
+      ```
+
+   2. hdfs-site.xml
+
+      ```xml
+      <?xml version="1.0" encoding="UTF-8"?>
+      <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+      
+      <configuration>
+      
+      	<!-- Hadoop副本数量 -->
+      	<property>
+      			<name>dfs.replication</name>
+      			<value>3</value>
+      	</property>
+      
+      	<!-- 指定Hadoop辅助名称节点主机配置 -->
+      	<property>
+      		  <name>dfs.namenode.secondary.http-address</name>
+      		  <value>hadoop03:50090</value>
+      	</property>
+      
+      </configuration>
+      
+      ```
+
+   3. yarn-site.xml
+
+      ```xml
+      <?xml version="1.0"?>
+      <configuration>
+      	<!-- reducer获取数据的方式 -->
+      	<property>
+      			<name>yarn.nodemanager.aux-services</name>
+      			<value>mapreduce_shuffle</value>
+      	</property>
+      
+      	<!-- 指定YARN的ResourceManager的地址 -->
+      	<property>
+      			<name>yarn.resourcemanager.hostname</name>
+      			<value>hadoop02</value>
+      	</property>
+      	<!-- 日志聚集功能使能 -->
+      	<property>
+      		<name>yarn.log-aggregation-enable</name>
+      		<value>true</value>
+      	</property>
+      
+      	<!-- 日志保留时间设置7天 -->
+      	<property>
+      		<name>yarn.log-aggregation.retain-seconds</name>
+      		<value>604800</value>
+      	</property>
+      </configuration>
+      ```
+
+   4. mapred-site.xml(<font color='red'>*需要 cp mapred-site.xml.template mapred-site.xml*</font>)
+
+      ```xml
+      <?xml version="1.0"?>
+      <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+      
+      <configuration>
+      
+      	<!-- 指定mr运行在yarn上 -->
+      	<property>
+      			<name>mapreduce.framework.name</name>
+      			<value>yarn</value>
+      	</property>
+          <!-- 历史服务器端地址 -->
+          <property>
+              <name>mapreduce.jobhistory.address</name>
+              <value>hadoop03:10020</value>
+          </property>
+          <!-- 历史服务器web端地址 -->
+          <property>
+              <name>mapreduce.jobhistory.webapp.address</name>
+              <value>hadoop03:19888</value>
+          </property>
+      
+      </configuration>
+      ```
+
+   5. hadoop-env.sh
+
+      ```shell
+      # The java implementation to use.
+      export JAVA_HOME=/opt/module/jdk1.8.0_121
+      ```
+
+   6. yarn-env.sh 
+
+      ```shell
+      # some Java parameters
+      export JAVA_HOME=/opt/module/jdk1.8.0_121
+      ```
+
+   7. mapred-env.sh
+
+      ```shell
+      # limitations under the License.
+      
+      export JAVA_HOME=/opt/module/jdk1.8.0_121
+      ```
+
+   8. slaves
+
+      ```xml
+      hadoop01
+      hadoop02
+      hadoop03
+      ```
+
+4. <font color='red'>***<u>(重点)nameNode配置在hadoop01节点,第一次启动之前需要格式化:hdfs namenode -format</u>***</font>
+
+5. 启动Hadoop
+
+   1. 在<font color='red'>hadoop01</font>节点/opt/module/hadoop-2.7.2/sbin/start-dfs.sh
+   2. 在<font color='red'>hadoop02</font>节点/opt/module/hadoop-2.7.2/sbin/start-yarn.sh
+
+6. 可通过jps在三个节点查看启动情况
+
+
+
+# Hive安装
+
+## 安装Hive
+
+1. 解压
+
+   ```shell
+   tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /opt/module/hive
+   ```
+
+2. 配置hive-env.xml文件
+
+   ```shell
+   mv hive-env.sh.template hive-env.sh
+   ```
+
+   ```shell
+   export HADOOP_HOME=/opt/module/hadoop-2.7.2
+   export HIVE_CONF_DIR=/opt/module/hive/conf
+   ```
+
+3. Hadoop集群配置
+
+   1. <font color='red'>*启动hdfs和yarn*</font>
+
+   2. 在hdfs上创建 /tmp 和 /user/hive/warehouse 目录,同事修改组权限为可写
+
+      ```shell
+      [persagy@$hostname hadoop-2.7.2]$ bin/hadoop fs -mkdir /tmp
+      [persagy@$hostname hadoop-2.7.2]$ bin/hadoop fs -mkdir -p /user/hive/warehouse
+      [persagy@$hostname hadoop-2.7.2]$ bin/hadoop fs -chmod g+w /tmp
+      [persagy@$hostname hadoop-2.7.2]$ bin/hadoop fs -chmod g+w /user/hive/warehouse
+      ```
+
+## 安装MySQL
+
+#### 存放Hive元数据,<font color='red'>*root用户操作*</font>
+
+1. 检查是否安装MySQL
+
+   1. rpm -qa|grep mysql
+   2. 卸载安装的版本 rpm -e --nodeps
+
+2. 安装服务端
+
+   ```shell
+   1. rpm -ivh mysql-community-server-5.7.32-1.el7.x86_64.rpm
+   2. 初始密码:grep 'temporary password' /var/log/mysqld.log
+   ```
+
+3. 安装客户端
+
+   ```shell
+   rpm -ivh mysql-community-client-5.7.32-1.el7.x86_64.rpm
+   ```
+
+4. 修改user表,把Host表内容修改为%
+
+   ```mysql
+   update user set host='%' where host='localhost';
+   flush privileges;
+   ```
+
+5. 配置Hive元数据到MySQL
+
+   1. copy驱动包 mysql-connector-java-5.1.49-bin.jar 到 /opt/module/hive/lib/
+
+   2. 修改 hive-site.xml
+
+      ```xml
+      <?xml version="1.0"?>
+      <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+      <configuration>
+      	<property>
+      	  <name>javax.jdo.option.ConnectionURL</name>
+      	  <value>jdbc:mysql://hadoop01:3306/metastore?createDatabaseIfNotExist=true</value>
+      	  <description>JDBC connect string for a JDBC metastore</description>
+      	</property>
+      
+      	<property>
+      	  <name>javax.jdo.option.ConnectionDriverName</name>
+      	  <value>com.mysql.jdbc.Driver</value>
+      	  <description>Driver class name for a JDBC metastore</description>
+      	</property>
+      
+      	<property>
+      	  <name>javax.jdo.option.ConnectionUserName</name>
+      	  <value>user</value>
+      	  <description>username to use against metastore database</description>
+      	</property>
+      
+      	<property>
+      	  <name>javax.jdo.option.ConnectionPassword</name>
+      	  <value>passwd</value>
+      	  <description>password to use against metastore database</description>
+      	</property>
+      </configuration>
+      ```
+
+6. HiveJDBC访问
+
+   1. 启动 hiveserver2 服务
+
+      ```shell
+      nohup bin/hiveserver2 > hiveserver2.out 2> hiveserver2.err &
+      ```
+
+   2. 以 DataGrip 为例
+
+      1. 引入jar包,hive-jdbc-uber-2.6.5.0-292.jar(根据版本引入) hive-jdbc-uber-2.6.5.0-292.jar
+      2. 配置如图:
+         
+         <img src="./image/image-20201201100958554.png" alt="image-20201201100958554" style="zoom: 50%;" />

BIN
docs/dw/image/image-20201201100958554.png


+ 8 - 0
docs/dw/index.md

@@ -0,0 +1,8 @@
+## 数据标准化
+
+#### [环境配置](/dw/dw_config.md)
+
+#### [集群配置](/dw/dw_deploy.md)
+
+
+