大数据学习之路(转载)

article/2025/9/24 4:20:20

#大数据学习之路(转载)
博文地址https://blog.csdn.net/zys_1997/article/details/78358992

看到一个博主写的大数据学习路线,看了比较心动,想着自己可以先在Java的道路上继续努力,打好基础。这篇文章也许以后会有用,就转载如下:


当我说要做大数据工程师时他们都笑我,直到三个月后……

标签: 大数据java工程师
2699人阅读 评论(10) 收藏 举报
category_icon.jpg 分类:
作者同类文章 X

GitChat 作者:Fickr孫啟誠
原文: 三个月大数据研发学习计划实战解析
关注微信公众号:「GitChat 技术杂谈」 一本正经的讲技术

【不要错过文末彩蛋】

申明:

本文旨在为普通程序员(Java程序员最佳)提供一个入门级别的大数据技术学习路径,不适用于大数据工程师的进阶学习,也不适用于零编程基础的同学。


前言:

  • 一、背景介绍
  • 二、大数据介绍

正文:

  • 一、大数据相关的工作介绍
  • 二、大数据工程师的技能要求
  • 三、大数据学习规划
  • 四、持续学习资源推荐(书籍,博客,网站)
  • 五、项目案例分析(批处理+实时处理)

前言

一、背景介绍

本人目前是一名大数据工程师,项目数据50T,日均数据增长20G左右,个人是从Java后端开发,经过3个月的业余自学成功转型大数据工程师。

二、大数据介绍

大数据本质也是数据,但是又有了新的特征,包括数据来源广数据格式多样化(结构化数据、非结构化数据、Excel文件、文本文件等)、数据量大(最少也是TB级别的、甚至可能是PB级别)、数据增长速度快等。

针对以上主要的4个特征我们需要考虑以下问题:

  1. 数据来源广,该如何采集汇总?,对应出现了Sqoop,Cammel,Datax等工具。

  2. 数据采集之后,该如何存储?,对应出现了GFS,HDFS,TFS等分布式文件存储系统。

  3. 由于数据增长速度快,数据存储就必须可以水平扩展。

  4. 数据存储之后,该如何通过运算快速转化成一致的格式,该如何快速运算出自己想要的结果?

    对应的MapReduce这样的分布式运算框架解决了这个问题;但是写MapReduce需要Java代码量很大,所以出现了Hive,Pig等将SQL转化成MapReduce的解析引擎;

    普通的MapReduce处理数据只能一批一批地处理,时间延迟太长,为了实现每输入一条数据就能得到结果,于是出现了Storm/JStorm这样的低时延的流式计算框架;

    但是如果同时需要批处理流处理,按照如上就得搭两个集群,Hadoop集群(包括HDFS+MapReduce+Yarn)和Storm集群,不易于管理,所以出现了Spark这样的一站式的计算框架,既可以进行批处理,又可以进行流处理(实质上是微批处理)。

  5. 而后Lambda架构,Kappa架构的出现,又提供了一种业务处理的通用架构。

  6. 为了提高工作效率,加快运速度,出现了一些辅助工具:

    • Ozzie,azkaban:定时任务调度的工具。
    • Hue,Zepplin:图形化任务执行管理,结果查看工具。
    • Scala语言:编写Spark程序的最佳语言,当然也可以选择用Python。
    • Python语言:编写一些脚本时会用到。
    • Allluxio,Kylin等:通过对存储的数据进行预处理,加快运算速度的工具。

以上大致就把整个大数据生态里面用到的工具所解决的问题列举了一遍,知道了他们为什么而出现或者说出现是为了解决什么问题,进行学习的时候就有的放矢了。

正文

一、大数据相关工作介绍

大数据方向的工作目前主要分为三个主要方向:

  1. 大数据工程师
  2. 数据分析师
  3. 大数据科学家
  4. 其他(数据挖掘等)

二、大数据工程师的技能要求

附上大数据工程师技能图:

enter image description here

必须掌握的技能11条

  1. Java高级(虚拟机、并发)
  2. Linux 基本操作
  3. Hadoop(HDFS+MapReduce+Yarn )
  4. HBase(JavaAPI操作+Phoenix )
  5. Hive(Hql基本操作和原理理解)
  6. Kafka
  7. Storm/JStorm
  8. Scala
  9. Python
  10. Spark (Core+sparksql+Spark streaming )
  11. 辅助小工具(Sqoop/Flume/Oozie/Hue等)

高阶技能6条

  1. 机器学习算法以及mahout库加MLlib
  2. R语言
  3. Lambda 架构
  4. Kappa架构
  5. Kylin
  6. Alluxio

三、学习路径

假设每天可以抽出3个小时的有效学习时间,加上周末每天保证10个小时的有效学习时间;

3个月会有(21*3+4*2*10)*3=423小时的学习时间。

第一阶段(基础阶段)

1)Linux学习(跟鸟哥学就ok了)—–20小时

  1. Linux操作系统介绍与安装。
  2. Linux常用命令。
  3. Linux常用软件安装。
  4. Linux网络。
  5. 防火墙。
  6. Shell编程等。

官网:https://www.centos.org/download/
中文社区:http://www.linuxidc.com/Linux/2017-09/146919.htm

2)Java 高级学习(《深入理解Java虚拟机》、《Java高并发实战》)—30小时

  1. 掌握多线程。
  2. 掌握并发包下的队列。
  3. 了解JMS。
  4. 掌握JVM技术。
  5. 掌握反射和动态代理。

官网:https://www.java.com/zh_CN/
中文社区:http://www.java-cn.com/index.html

3)Zookeeper学习(可以参照这篇博客进行学习:http://www.cnblogs.com/wuxl360/p/5817471.html)

  1. Zookeeper分布式协调服务介绍。
  2. Zookeeper集群的安装部署。
  3. Zookeeper数据结构、命令。
  4. Zookeeper的原理以及选举机制。

官网:http://zookeeper.apache.org/
中文社区:http://www.aboutyun.com/forum-149-1.html

第二阶段(攻坚阶段)

4)Hadoop (《Hadoop 权威指南》)—80小时

  1. HDFS

    • HDFS的概念和特性。
    • HDFS的shell操作。
    • HDFS的工作机制。
    • HDFS的Java应用开发。
  2. MapReduce

    • 运行WordCount示例程序。
    • 了解MapReduce内部的运行机制。
      • MapReduce程序运行流程解析。
      • MapTask并发数的决定机制。
      • MapReduce中的combiner组件应用。
      • MapReduce中的序列化框架及应用。
      • MapReduce中的排序。
      • MapReduce中的自定义分区实现。
      • MapReduce的shuffle机制。
      • MapReduce利用数据压缩进行优化。
      • MapReduce程序与YARN之间的关系。
      • MapReduce参数优化。
  3. MapReduce的Java应用开发

官网:http://hadoop.apache.org/
中文文档:http://hadoop.apache.org/docs/r1.0.4/cn/
中文社区:http://www.aboutyun.com/forum-143-1.html

5)Hive(《Hive开发指南》)–20小时

  1. Hive 基本概念

    • Hive 应用场景。
    • Hive 与hadoop的关系。
    • Hive 与传统数据库对比。
    • Hive 的数据存储机制。
  2. Hive 基本操作

    • Hive 中的DDL操作。
    • 在Hive 中如何实现高效的JOIN查询。
    • Hive 的内置函数应用。
    • Hive shell的高级使用方式。
    • Hive 常用参数配置。
    • Hive 自定义函数和Transform的使用技巧。
    • Hive UDF/UDAF开发实例。
  3. Hive 执行过程分析及优化策略

官网:https://hive.apache.org/
中文入门文档:http://www.aboutyun.com/thread-11873-1-1.html
中文社区:http://www.aboutyun.com/thread-7598-1-1.html

6)HBase(《HBase权威指南》)—20小时

  1. hbase简介。
  2. habse安装。
  3. hbase数据模型。
  4. hbase命令。
  5. hbase开发。
  6. hbase原理。

官网:http://hbase.apache.org/
中文文档:http://abloz.com/hbase/book.html
中文社区:http://www.aboutyun.com/forum-142-1.html

7)Scala(《快学Scala》)–20小时

  1. Scala概述。
  2. Scala编译器安装。
  3. Scala基础。
  4. 数组、映射、元组、集合。
  5. 类、对象、继承、特质。
  6. 模式匹配和样例类。
  7. 了解Scala Actor并发编程。
  8. 理解Akka。
  9. 理解Scala高阶函数。
  10. 理解Scala隐式转换。

官网:http://www.scala-lang.org/
初级中文教程:http://www.runoob.com/scala/scala-tutorial.html

8)Spark (《Spark 权威指南》)—60小时

enter image description here

  1. Spark core

    • Spark概述。
    • Spark集群安装。
    • 执行第一个Spark案例程序(求PI)。
  2. RDD

    enter image description here

    • RDD概述。
    • 创建RDD。
    • RDD编程API(Transformation 和 Action Operations)。
    • RDD的依赖关系
    • RDD的缓存
    • DAG(有向无环图)
  3. Spark SQL and DataFrame/DataSet

    enter image description here

    • Spark SQL概述。
    • DataFrames。
    • DataFrame常用操作。
    • 编写Spark SQL查询程序。
  4. Spark Streaming

    enter image description here

    enter image description here

    • park Streaming概述。
    • 理解DStream。
    • DStream相关操作(Transformations 和 Output Operations)。
  5. Structured Streaming

  6. 其他(MLlib and GraphX )

这个部分一般工作中如果不是数据挖掘,机器学习一般用不到,可以等到需要用到的时候再深入学习。

官网:http://spark.apache.org
中文文档(但是版本有点老):https://www.gitbook.com/book/aiyanbo/spark-programming-guide-zh-cn/details
中文社区:http://www.aboutyun.com/forum-146-1.html

9)Python (推荐廖雪峰的博客—30小时

10)自己用虚拟机搭建一个集群,把所有工具都装上,自己开发一个小demo —30小时

可以自己用VMware搭建4台虚拟机,然后安装以上软件,搭建一个小集群(本人亲测,I7,64位,16G内存,完全可以运行起来,以下附上我学习时用虚拟机搭建集群的操作文档)


集群搭建文档1.0版本

1. 集群规划

enter image description here

所有需要用到的软件:

链接:http://pan.baidu.com/s/1jIlAz2Y
密码:kyxl

2. 前期准备

  1. 2.0 系统安装
  2. 2.1 主机名配置
  3. 2.1.0 vi /etc/sysconfig/network
  4. NETWORKING=yes
  5. 2.1.1 vi /etc/sysconfig/network
  6. NETWORKING=yes
  7. HOSTNAME=ys02
  8. 2.1.2 vi /etc/sysconfig/network
  9. NETWORKING=yes
  10. 2.1.3 vi /etc/sysconfig/network
  11. NETWORKING=yes
  12. HOSTNAME=ys04
  13. 2.2 host文件修改
  14. 2.2.0 vi /etc/hosts
  15. 10.1.1.149 ys01
  16. 10.1.1.148 ys02
  17. 10.1.1.146 ys03
  18. 10.1.1.145 ys04
  19. 2.3 关闭防火墙(centos 7默认使用的是firewall,centos 6 默认是iptables)
  20. 2.3.0 systemctl stop firewalld.service (停止firewall)
  21. 2.3.1 systemctl disable firewalld.service (禁止firewall开机启动)
  22. 2.3.2 firewall-cmd --state (查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
  23. 2.4 免密登录(ys01 ->ys02,03,04)
  24. ssh-keygen -t rsa
  25. ssh-copy-id ys02(随后输入密码)
  26. ssh-copy-id ys03(随后输入密码)
  27. ssh-copy-id ys04(随后输入密码)
  28. ssh ys02(测试是否成功)
  29. ssh ys03(测试是否成功)
  30. ssh ys04(测试是否成功)
  31. 2.5 系统时区与时间同步
  32. tzselect(生成日期文件)
  33. cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime(将日期文件copy到本地时间中)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45

3. 软件安装

  1. 3.0 安装目录规划(软件为所有用户公用)
  2. 3.0.0所有软件的安装放到/usr/local/ys/soft目录下(mkdir /usr/local/ys/soft)
  3. 3.0.1所有软件安装到/usr/local/ys/app目录下(mkdir /usr/local/ys/app)
  4. 3.1 JDK(jdk1.7)安装
  5. 3.1.1 alt+p 后出现sftp窗口,cd /usr/local/ys/soft,使用sftp上传tar包到虚机ys01的/usr/local/ys/soft目录下
  6. 3.1.2解压jdk
  7. cd /usr/local/ys/soft
  8. #解压
  9. tar -zxvf jdk-7u80-linux-x64.tar.gz -C /usr/local/ys/app
  10. 3.1.3将java添加到环境变量中
  11. vim /etc/profile
  12. #在文件最后添加
  13. export JAVA_HOME= /usr/local/ys/app/ jdk-7u80
  14. export PATH=$PATH:$JAVA_HOME/bin
  15. 3.1.4 刷新配置
  16. source /etc/profile
  17. 3.2 Zookeeper安装
  18. 3.2.0解压
  19. tar -zxvf zookeeper-3.4.5.tar.gz -C /usr/local/ys/app(解压)
  20. 3.2.1 重命名
  21. mv zookeeper-3.4.5 zookeeper(重命名文件夹zookeeper-3.4.5为zookeeper)
  22. 3.2.2修改环境变量
  23. vi /etc/profile(修改文件)
  24. 添加内容:
  25. export ZOOKEEPER_HOME=/usr/local/ys/app/zookeeper
  26. export PATH=$PATH:$ZOOKEEPER_HOME/bin
  27. 3.2.3 重新编译文件:
  28. source /etc/profile
  29. 注意:3台zookeeper都需要修改
  30. 3.2.4修改配置文件
  31. cd zookeeper/conf
  32. cp zoo_sample.cfg zoo.cfg
  33. vi zoo.cfg
  34. 添加内容:
  35. dataDir=/usr/local/ys/app/zookeeper/data
  36. dataLogDir=/usr/local/ys/app/zookeeper/log
  37. server.1=ys01:2888:3888 (主机名, 心跳端口、数据端口)
  38. server.2=ys02:2888:3888
  39. server.3=ys04:2888:3888
  40. 3.2.5 创建文件夹
  41. cd /usr/local/ys/app/zookeeper/
  42. mkdir -m 755 data
  43. mkdir -m 755 log
  44. 3.2.6 在data文件夹下新建myid文件,myid的文件内容为:
  45. cd data
  46. vi myid
  47. 添加内容:
  48. 1
  49. 将集群下发到其他机器上
  50. scp -r /usr/local/ys/app/zookeeper ys02:/usr/local/ys/app/
  51. scp -r /usr/local/ys/app/zookeeper ys04:/usr/local/ys/app/
  52. 3.2.7修改其他机器的配置文件
  53. 到ys02上:修改myid为:2
  54. 到ys02上:修改myid为:3
  55. 3.2.8启动(每台机器)
  56. zkServer.sh start
  57. 查看集群状态
  58. jps(查看进程)
  59. zkServer.sh status(查看集群状态,主从信息)
  60. 3.3 Hadoop(HDFS+Yarn)
  61. 3.3.0 alt+p 后出现sftp窗口,使用sftp上传tar包到虚机ys01的/usr/local/ys/soft目录下
  62. 3.3.1 解压jdk
  63. cd /usr/local/ys/soft
  64. #解压
  65. tar -zxvf cenos-7-hadoop-2.6.4.tar.gz -C /usr/local/ys/app
  66. 3.3.2 修改配置文件
  67. core-site.xml
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90

enter image description here

hdfs-site.xml
  • 1
  • 2

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

yarn-sifite.xml
  • 1
  • 2

enter image description here

  1. svales
  2. ys02
  3. ys03
  4. ys04
  5. 3.3.3集群启动(严格按照下面的步骤)
  6. 3.3.3.1启动zookeeper集群(分别在ys01、ys02、ys04上启动zk)
  7. cd /usr/local/ys/app/zookeeper-3.4.5/bin/
  8. ./zkServer.sh start
  9. #查看状态:一个leader,两个follower
  10. ./zkServer.sh status
  11. 3.3.3.2启动journalnode(分别在在mini5、mini6、mini7上执行)
  12. cd /usr/local/ys/app/hadoop-2.6.4
  13. sbin/hadoop-daemon.sh start journalnode
  14. #运行jps命令检验,ys02、ys03、ys04上多了JournalNode进程
  15. 3.3.3.3格式化HDFS
  16. #在ys01上执行命令:
  17. hdfs namenode -format
  18. #格式化后会在根据core-site.xml中的hadoop.tmp.dir配置生成个文件,这里我配置的是/usr/local/ys/app/hadoop-2.6.4/tmp,然后将/usr/local/ys/app/hadoop-2.6.4/tmp拷贝到ys02的/usr/local/ys/app/hadoop-2.6.4/下。
  19. scp -r tmp/ ys02:/usr/local/ys /app/hadoop-2.6.4/
  20. ##也可以这样,建议hdfs namenode -bootstrapStandby
  21. 3.3.3.4格式化ZKFC(在ys01上执行一次即可)
  22. hdfs zkfc -formatZK
  23. 3.3.3.5启动HDFS(在ys01上执行)
  24. sbin/start-dfs.sh
  25. 3.3.3.6启动YARN
  26. sbin/start-yarn.sh
  27. 3.3MySQL-5.6安装
  28. 略过
  29. 3.4 Hive
  30. 3.4.1 alt+p 后出现sftp窗口,cd /usr/local/ys/soft,使用sftp上传tar包到虚机ys01的/usr/local/ys/soft目录下
  31. 3.4.2解压
  32. cd /usr/local/ys/soft
  33. tar -zxvf hive-0.9.0.tar.gz -C /usr/local/ys/app
  34. 3.4.3 .配置hive
  35. 3.4.3.1配置HIVE_HOME环境变量 vi conf/hive-env.sh 配置其中的$hadoop_home
  36. 3.4.3.2配置元数据库信息 vi hive-site.xml
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51

添加如下内容:

enter image description here

enter image description here

  1. 3.4.4 安装hive和mysq完成后,将mysql的连接jar包拷贝到$HIVE_HOME/lib目录下
  2. 如果出现没有权限的问题,在mysql授权(在安装mysql的机器上执行)
  3. mysql -uroot -p
  4. #(执行下面的语句 *.*:所有库下的所有表 %:任何IP地址或主机都可以连接)
  5. GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
  6. FLUSH PRIVILEGES;
  7. 3.4.5 Jline包版本不一致的问题,需要拷贝hive的lib目录中jline.2.12.jar的jar包替换掉hadoop中的 /usr/local/ys/app/hadoop-2.6.4/share/hadoop/yarn/lib/jline-0.9.94.jar
  8. 3.4.6启动hive
  9. bin/hive
  10. 3.5 Kafka
  11. 3.5.1 下载安装包
  12. http://kafka.apache.org/downloads.html
  13. 在linux中使用wget命令下载安装包
  14. wget http://mirrors.hust.edu.cn/apache/kafka/0.8.2.2/kafka_2.11-0.8.2.2.tgz
  15. 3.5.2 解压安装包
  16. tar -zxvf /usr/local/ys/soft/kafka_2.11-0.8.2.2.tgz -C /usr/local/ys/app/
  17. cd /usr/local/ys/app/
  18. ln -s kafka_2.11-0.8.2.2 kafka
  19. 3.5.3 修改配置文件
  20. cp
  21. /usr/local/ys/app/kafka/config/server.properties
  22. /usr/local/ys/app/kafka/config/server.properties.bak
  23. vi /usr/local/ys/kafka/config/server.properties
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

输入以下内容:

enter image description here

  1. 3.5.4 分发安装包
  2. scp -r /usr/local/ys/app/kafka_2.11-0.8.2.2 ys02: /usr/local/ys/app/
  3. scp -r /usr/local/ys/app/kafka_2.11-0.8.2.2 ys03: /usr/local/ys/app/
  4. scp -r /usr/local/ys/app/kafka_2.11-0.8.2.2 ys04: /usr/local/ys/app/
  5. 然后分别在各机器上创建软连
  6. cd /usr/local/ys/app/
  7. ln -s kafka_2.11-0.8.2.2 kafka
  8. 3.5.5 再次修改配置文件(重要)
  9. 依次修改各服务器上配置文件的的broker.id,分别是0,1,2不得重复。
  10. 3.5.6 启动集群
  11. 依次在各节点上启动kafka
  12. bin/kafka-server-start.sh config/server.properties
  13. 3.6 Spark
  14. 3.6.1 alt+p 后出现sftp窗口,cd /usr/local/ys/soft,使用sftp上传tar包到虚机ys01的/usr/local/ys/soft目录下
  15. 3.6.2 解压安装包
  16. tar -zxvf /usr/local/ys/soft/ spark-1.6.1-bin-hadoop2.6.tgz -C /usr/local/ys/app/
  17. 3.6.3 修改Spark配置文件(两个配置文件spark-env.sh和slaves)
  18. cd /usr/local/ys/soft/spark-1.6.1-bin-hadoop2.6
  19. 进入conf目录并重命名并修改spark-env.sh.template文件
  20. cd conf/
  21. mv spark-env.sh.template spark-env.sh
  22. vi spark-env.sh
  23. 在该配置文件中添加如下配置
  24. export JAVA_HOME=/usr/java/jdk1.7.0_45
  25. export SPARK_MASTER_PORT=7077
  26. export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=ys01,ys02,ys04 -Dspark.deploy.zookeeper.dir=/spark"
  27. 保存退出
  28. 重命名并修改slaves.template文件
  29. mv slaves.template slaves
  30. vi slaves
  31. 在该文件中添加子节点所在的位置(Worker节点)
  32. Ys02
  33. Ys03
  34. Ys04
  35. 保存退出
  36. 3.6.4 将配置好的Spark拷贝到其他节点上
  37. scp -r spark-1.6.1-in-hadoop2.6/ ys02:/usr/local/ys/app
  38. scp -r spark-1.6.1-bin-hadoop2.6/ ys03:/usr/local/ys/app
  39. scp -r spark-1.6.1-bin-hadoop2.6/ ys04:/usr/local/ys/app
  40. 3.6.5 集群启动
  41. 在ys01上执行sbin/start-all.sh脚本
  42. 然后在ys02上执行sbin/start-master.sh启动第二个Master
  43. 3.7 Azkaban
  44. 3.7.1 azkaban web服务器安装
  45. 解压azkaban-web-server-2.5.0.tar.gz
  46. 命令: tar –zxvf /usr/local/ys/soft/azkaban-web-server-2.5.0.tar.gz -C /usr/local/ys/app/azkaban
  47. 将解压后的azkaban-web-server-2.5.0 移动到 azkaban目录中,并重新命名 webserver
  48. 命令: mv azkaban-web-server-2.5.0 ../azkaban
  49. cd ../azkaban
  50. mv azkaban-web-server-2.5.0 webserver
  51. 3.7.2 azkaban 执行服器安装
  52. 解压azkaban-executor-server-2.5.0.tar.gz
  53. 命令:tar –zxvf /usr/local/ys/soft/azkaban-executor-server-2.5.0.tar.gz -C /usr/local/ys/app/azkaban
  54. 将解压后的azkaban-executor-server-2.5.0 移动到 azkaban目录中,并重新命名 executor
  55. 命令:mv azkaban-executor-server-2.5.0 ../azkaban
  56. cd ../azkaban
  57. mv azkaban-executor-server-2.5.0 executor
  58. 3.7.3 azkaban脚本导入
  59. 解压: azkaban-sql-script-2.5.0.tar.gz
  60. 命令:tar –zxvf azkaban-sql-script-2.5.0.tar.gz
  61. 将解压后的mysql 脚本,导入到mysql中:
  62. 进入mysql
  63. mysql> create database azkaban;
  64. mysql> use azkaban;
  65. Database changed
  66. mysql> source /usr/local/ys/soft/azkaban-2.5.0/create-all-sql-2.5.0.sql;
  67. 3.7.4 创建SSL配置
  68. 参考地址: http://docs.codehaus.org/display/JETTY/How+to+configure+SSL
  69. 命令: keytool -keystore keystore -alias jetty -genkey -keyalg RSA
  70. 运行此命令后,会提示输入当前生成 keystor的密码及相应信息,输入的密码请劳记,信息如下(此处我输入的密码为:123456)
  71. 输入keystore密码:
  72. 再次输入新密码:
  73. 您的名字与姓氏是什么?
  74. [Unknown]:
  75. 您的组织单位名称是什么?
  76. [Unknown]:
  77. 您的组织名称是什么?
  78. [Unknown]:
  79. 您所在的城市或区域名称是什么?
  80. [Unknown]:
  81. 您所在的州或省份名称是什么?
  82. [Unknown]:
  83. 该单位的两字母国家代码是什么
  84. [Unknown]: CN
  85. CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=CN 正确吗?
  86. [否]: y
  87. 输入<jetty>的主密码(如果和 keystore 密码相同,按回车):
  88. 再次输入新密码
  89. 完成上述工作后,将在当前目录生成 keystore 证书文件,将keystore 考贝到 azkaban web服务器根目录中.如:cp keystore azkaban/webserver
  90. 3.7.5 配置文件
  91. 注:先配置好服务器节点上的时区
  92. 先生成时区配置文件Asia/Shanghai,用交互式命令 tzselect 即可
  93. 拷贝该时区文件,覆盖系统本地时区配置
  94. cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  95. 3.7.6 azkaban web服务器配置
  96. 进入azkaban web服务器安装目录 conf目录
  97. 修改azkaban.properties文件
  98. 命令vi azkaban.properties
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114

内容说明如下:

  1. *Azkaban Personalization Settings
  2. azkaban.name=Test #服务器UI名称,用于服务器上方显示的名字
  3. azkaban.label=My Local Azkaban #描述
  4. azkaban.color=#FF3601 #UI颜色
  5. azkaban.default.servlet.path=/index #
  6. web.resource.dir=web/ #默认根web目录
  7. default.timezone.id=Asia/Shanghai #默认时区,已改为亚洲/上海 默认为美国
  8. *Azkaban UserManager class
  9. user.manager.class=azkaban.user.XmlUserManager #用户权限管理默认类
  10. user.manager.xml.file=conf/azkaban-users.xml #用户配置,具体配置参加下文
  11. *Loader for projects
  12. executor.global.properties=conf/global.properties # global配置文件所在位置
  13. azkaban.project.dir=projects #
  14. database.type=mysql #数据库类型
  15. mysql.port=3306 #端口号
  16. mysql.host=localhost #数据库连接IP
  17. mysql.database=azkaban #数据库实例名
  18. mysql.user=root #数据库用户名
  19. mysql.password=Root123456 #数据库密码
  20. mysql.numconnections=100 #最大连接数
  21. * Velocity dev mode
  22. velocity.dev.mode=false
  23. * Jetty服务器属性.
  24. jetty.maxThreads=25 #最大线程数
  25. jetty.ssl.port=8443 #Jetty SSL端口
  26. jetty.port=8081 #Jetty端口
  27. jetty.keystore=keystore #SSL文件名
  28. jetty.password=123456 #SSL文件密码
  29. jetty.keypassword=123456 #Jetty主密码 与 keystore文件相同
  30. jetty.truststore=keystore #SSL文件名
  31. jetty.trustpassword=123456 # SSL文件密码
  32. * 执行服务器属性
  33. executor.port=12321 #执行服务器端
  34. *邮件设置
  35. mail.sender=xxxxxxxx@163.com #发送邮箱
  36. mail.host=smtp.163.com #发送邮箱smtp地址
  37. mail.user=xxxxxxxx #发送邮件时显示的名称
  38. mail.password=********** #邮箱密码
  39. job.failure.email=xxxxxxxx@163.com #任务失败时发送邮件的地址
  40. job.success.email=xxxxxxxx@163.com #任务成功时发送邮件的地址
  41. lockdown.create.projects=false #
  42. cache.directory=cache #缓存目录
  43. 3.7.7azkaban 执行服务器executor配置
  44. 进入执行服务器安装目录conf,修改azkaban.properties
  45. vi azkaban.properties
  46. *Azkaban
  47. default.timezone.id=Asia/Shanghai #时区
  48. * Azkaban JobTypes 插件配置
  49. azkaban.jobtype.plugin.dir=plugins/jobtypes #jobtype 插件所在位置
  50. *Loader for projects
  51. executor.global.properties=conf/global.properties
  52. azkaban.project.dir=projects
  53. *数据库设置
  54. database.type=mysql #数据库类型(目前只支持mysql)
  55. mysql.port=3306 #数据库端口号
  56. mysql.host=192.168.20.200 #数据库IP地址
  57. mysql.database=azkaban #数据库实例名
  58. mysql.user=root #数据库用户名
  59. mysql.password=Root23456 #数据库密码
  60. mysql.numconnections=100 #最大连接数
  61. *执行服务器配置
  62. executor.maxThreads=50 #最大线程数
  63. executor.port=12321 #端口号(如修改,请与web服务中一致)
  64. executor.flow.threads=30 #线程数
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  1. 3.7.8用户配置
  2. 进入azkaban web服务器conf目录,修改azkaban-users.xml
  3. vi azkaban-users.xml 增加 管理员用户
  • 1
  • 2
  • 3
  • 4

enter image description here

  1. 3.7.9 web服务器启动
  2. 在azkaban web服务器目录下执行启动命令
  3. bin/azkaban-web-start.sh
  4. 注:在web服务器根目录运行
  5. 或者启动到后台
  6. nohup bin/azkaban-web-start.sh 1>/tmp/azstd.out 2>/tmp/azerr.out &
  7. 3.7.10执行服务器启动
  8. 在执行服务器目录下执行启动命令
  9. bin/azkaban-executor-start.sh
  10. 注:只能要执行服务器根目录运行
  11. 启动完成后,在浏览器(建议使用谷歌浏览器)中输入https://服务器IP地址:8443 ,即可访问azkaban服务了.在登录中输入刚才新的户用名及密码,点击 login
  12. 3.8 Zeppelin
  13. 参照如下文件:
  14. http://blog.csdn.net/chengxuyuanyonghu/article/details/54915817
  15. http://blog.csdn.net/chengxuyuanyonghu/article/details/54915962
  16. 3.9 HBase
  17. 3.9.1解压
  18. tar –zxvf /usr/local/ys/soft/hbase-0.99.2-bin.tar.gz -C /usr/local/ys/app
  19. 3.9.2重命名
  20. cd /usr/local/ys/app
  21. mv hbase-0.99.2 hbase
  22. 3.9.3修改配置文件
  23. 每个文件的解释如下:
  24. hbase-env.sh
  25. export JAVA_HOME=/usr/local/ys/app/jdk1.7.0_80 //jdk安装目录
  26. export HBASE_CLASSPATH=/usr/local/ys/app/hadoop-2.6.4/etc/hadoop //hadoop配置文件的位置
  27. export HBASE_MANAGES_ZK=false #如果使用独立安装的zookeeper这个地方就是false(此处使用自己的zookeeper)
  28. hbase-site.xml
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

enter image description here

enter image description here

  1. Regionservers //是从机器的域名
  2. Ys02
  3. ys03
  4. ys04
  5. 注:此处HBase配置是针对HA模式的hdfs
  6. 3.9.4将Hadoop的配置文件hdfs-site.xml和core-site.xml拷贝到HBase配置文件中
  7. cp /usr/local/ys/app/Hadoop-2.6.4/etc/hadoop/hdfs-site.xml /usr/local/ys/app/hbase/conf
  8. cp /usr/local/ys/app/hadoop-2.6.4/etc/hadoop/core-site.xml /usr/local/ys/app/hbase/conf
  9. 3.9.5发放到其他机器
  10. scp –r /usr/local/ys/app/hbase ys02: /usr/local/ys/app
  11. scp –r /usr/local/ys/app/hbase ys03: /usr/local/ys/app
  12. scp –r /usr/local/ys/app/hbase ys04: /usr/local/ys/app
  13. 3.9.6启动
  14. cd /usr/local/ys/app/hbase/bin
  15. ./ start-hbase.sh
  16. 3.9.7查看
  17. 进程:jps
  18. 进入hbase的shell:hbase shell
  19. 退出hbase的shell:quit
  20. 页面:http://master:60010/
  21. 3.10KAfkaOffsetMonitor(Kafka集群的监控程序,本质就是一个jar包)
  22. 3.10.1上传jar包
  23. 3.10.2 运行jar包
  24. nohup java -cp KafkaOffsetMonitor-assembly-0.2.1.jar com.quantifind.kafka.offsetapp.OffsetGetterWeb --zk ys01,ys02,ys04 --refresh 5.minutes --retain 1.day --port 8089 $
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

4. 集群调优

  1. 4.1 辅助工具尽量不安装到数据或者运算节点,避免占用过多计算或内存资源。
  2. 4.2 dataNode和spark的slave节点尽量在一起;这样运算的时候就可以避免通过网络拉取数据,加快运算速度。
  3. 4.3 Hadoop集群机架感知配置,配置之后可以使得数据在同机架的不同机器2份,然后其他机架机器1份,可是两台机器四台虚机没有必要配感知个人感觉。
  4. 4.4 配置参数调优
  5. 可以参考http://blog.csdn.net/chndata/article/details/46003399
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

第三阶段(辅助工具工学习阶段)

11)Sqoop(CSDN,51CTO ,以及官网)—20小时

enter image description here

  1. 数据导出概念介绍
  2. Sqoop基础知识
  3. Sqoop原理及配置说明
  4. Sqoop数据导入实战
  5. Sqoop数据导出实战、
  6. Sqoop批量作业操作

推荐学习博客:http://student-lp.iteye.com/blog/2157983
官网:http://sqoop.apache.org/

12)Flume(CSDN,51CTO ,以及官网)—20小时

enter image description here

  1. FLUME日志采集框架介绍。
  2. FLUME工作机制。
  3. FLUME核心组件。
  4. FLUME参数配置说明。
  5. FLUME采集nginx日志案例(案例一定要实践一下)

推荐学习博客:http://www.aboutyun.com/thread-8917-1-1.html
官网:http://flume.apache.org

13)Oozie(CSDN,51CTO ,以及官网)–20小时

enter image description here

  1. 任务调度系统概念介绍。
  2. 常用任务调度工具比较。
  3. Oozie介绍。
  4. Oozie核心概念。
  5. Oozie的配置说明。
  6. Oozie实现mapreduce/hive等任务调度实战案例。

推荐学习博客:http://www.infoq.com/cn/articles/introductionOozie
官网:http://oozie.apache.org/

14)Hue(CSDN,51CTO ,以及官网)–20小时

推荐学习博客:http://ju.outofmemory.cn/entry/105162
官网:http://gethue.com/

第四阶段(不断学习阶段)

每天都会有新的东西出现,需要关注最新技术动态,不断学习。任何一般技术都是先学习理论,然后在实践中不断完善理论的过程。

备注

1)如果你觉得自己看书效率太慢,你可以网上搜集一些课程,跟着课程走也OK 。如果看书效率不高就很网课,相反的话就自己看书。

2)企业目前更倾向于使用Spark进行微批处理,Storm只有在对时效性要求极高的情况下,才会使用,所以可以做了解。重点学习Spark Streaming。

3)快速学习的能力解决问题的能力沟通能力**真的很重要。

4)要善于使用StackOverFlow和Google(遇到解决不了的问题,先Google,如果Google找不到解决方能就去StackOverFlow提问,一般印度三哥都会在2小时内回答你的问题)。

5)视频课程推荐:

可以去万能的淘宝购买一些视频课程,你输入“大数据视频课程”,会出现很多,多购买几份(100块以内可以搞定),然后选择一个适合自己的。个人认为小象学院的董西成和陈超的课程含金量会比较高。

四、持续学习资源推荐

  1. Apache 官网(http://apache.org/)
  2. Stackoverflow(https://stackoverflow.com/)
  3. Github(https://github.com/)
  4. Cloudra官网(https://www.cloudera.com/)
  5. Databrick官网(https://databricks.com/)
  6. About 云 :http://www.aboutyun.com/
  7. CSDN,51CTO (http://www.csdn.net/,http://www.51cto.com/)
  8. 至于书籍当当一搜会有很多,其实内容都差不多。

五、项目案例分析

1)点击流日志项目分析(此处借鉴CSDN博主的文章,由于没有授权,所以就没有贴过来,下面附上链接)—-批处理

http://blog.csdn.net/u014033218/article/details/76847263

2)Spark Streaming在京东的项目实战(京东的实战案例值得好好研究一下,由于没有授权,所以就没有贴过来,下面附上链接)—实时处理
http://download.csdn.net/download/csdndataid_123/8079233

最后但却很重要一点:每天都会有新的技术出现,要多关注技术动向,持续学习。

以上内容不保证一年以后仍适用。

【GitChat达人课】

  1. 前端恶棍 · 大漠穷秋 :《Angular 初学者快速上手教程 》
  2. Python 中文社区联合创始人 · Zoom.Quiet :《GitQ: GitHub 入味儿 》
  3. 前端颜值担当 · 余博伦:《如何从零学习 React 技术栈 》
  4. GA 最早期使用者 · GordonChoi:《GA 电商数据分析实践课》
  5. 技术总监及合伙人 · 杨彪:《Gradle 从入门到实战》
  6. 混元霹雳手 · 江湖前端:《Vue 组件通信全揭秘》
  7. 知名互联网公司安卓工程师 · 张拭心:《安卓工程师跳槽面试全指南》

这里写图片描述

@[TOC](这里写自定义目录标题)

欢迎使用Markdown编辑器

你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

新的改变

我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

  1. 全新的界面设计 ,将会带来全新的写作体验;
  2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
  3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
  4. 全新的 KaTeX数学公式 语法;
  5. 增加了支持甘特图的mermaid语法1 功能;
  6. 增加了 多屏幕编辑 Markdown文章功能;
  7. 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
  8. 增加了 检查列表 功能。

功能快捷键

撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G

合理的创建标题,有助于目录的生成

直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC语法后生成一个完美的目录。

如何改变文本的样式

强调文本 强调文本

加粗文本 加粗文本

标记文本

删除文本

引用文本

H2O is是液体。

210 运算结果是 1024.

插入链接与图片

链接: link.

图片: Alt

带尺寸的图片: Alt

居中的图片: Alt

居中并且带尺寸的图片: Alt

当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。

如何插入一段漂亮的代码片

去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

// An highlighted block
var foo = 'bar';

生成一个适合你的列表

  • 项目
    • 项目
      • 项目
  1. 项目1
  2. 项目2
  3. 项目3
  • 计划任务
  • 完成任务

创建一个表格

一个简单的表格是这么创建的:

项目Value
电脑$1600
手机$12
导管$1

设定内容居中、居左、居右

使用:---------:居中
使用:----------居左
使用----------:居右

第一列第二列第三列
第一列文本居中第二列文本居右第三列文本居左

SmartyPants

SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:

TYPEASCIIHTML
Single backticks'Isn't this fun?'‘Isn’t this fun?’
Quotes"Isn't this fun?"“Isn’t this fun?”
Dashes-- is en-dash, --- is em-dash– is en-dash, — is em-dash

创建一个自定义列表

Markdown
Text-to- HTML conversion tool
Authors
John
Luke

如何创建一个注脚

一个具有注脚的文本。2

注释也是必不可少的

Markdown将文本转换为 HTML

KaTeX数学公式

您可以使用渲染LaTeX数学表达式 KaTeX:

Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n1)!nN 是通过欧拉积分

Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t &ThinSpace; . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=0tz1etdt.

你可以找到更多关于的信息 LaTeX 数学表达式here.

新的甘特图功能,丰富你的文章

Mon 06 Mon 13 Mon 20 已完成 进行中 计划一 计划二 现有任务 Adding GANTT diagram functionality to mermaid
  • 关于 甘特图 语法,参考 这儿,

UML 图表

可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图::

张三 李四 王五 你好!李四, 最近怎么样? 你最近怎么样,王五? 我很好,谢谢! 我很好,谢谢! 李四想了很长时间, 文字太长了 不适合放在一行. 打量着王五... 很好... 王五, 你怎么样? 张三 李四 王五

这将产生一个流程图。:

链接
长方形
圆角长方形
菱形
  • 关于 Mermaid 语法,参考 这儿,

FLowchart流程图

我们依旧会支持flowchart的流程图:

Created with Raphaël 2.2.0 开始 我的操作 确认? 结束 yes no
  • 关于 Flowchart流程图 语法,参考 这儿.

导出与导入

导出

如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。

导入

如果你想加载一篇你写过的.md文件或者.html文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。


  1. mermaid语法说明 ↩︎

  2. 注脚的解释 ↩︎


http://chatgpt.dhexx.cn/article/bFlZ7vdl.shtml

相关文章

【经典箴言 || 人生感悟 】

人的一生中只有七次机会&#xff0c;平均每七年拥有一次&#xff0c;大概在25岁到75岁&#xff0c;第一次通常抓不到&#xff0c;因为太年轻&#xff0c;最后一次也抓不到&#xff0c;因为太老。中途还有2次因为自己错过&#xff0c;所以抓不到。所以对于人来说人真正才会有三次…

经典箴言和人生感悟

人的一生中只有七次机会&#xff0c;平均每七年拥有一次&#xff0c;大概在25岁到75岁&#xff0c;第一次通常抓不到&#xff0c;因为太年轻&#xff0c;最后一次也抓不到&#xff0c;因为太老。中途还有2次因为自己错过&#xff0c;所以抓不到。所以对于人来说人真正才会有三次…

互联网全站HTTPS的时代已经到来

前言 我目前正在从事HTTPS方面的性能优化工作。在HTTPS项目的开展过程中明显感觉到目前国内互联网对HTTPS并不是很重视&#xff0c;其实也就是对用户隐私和网络安全不重视。本文从保护用户隐私的角度出发&#xff0c;简单描述现在存在的用户隐私泄露和流量劫持现象&#xff0c…

【经典箴言 || 人生感悟 】//wodeganwu3034 == 8. 回溯做过的事情,如Review自己曾经写过的代码或者设计,思考为什么会这么做,有没有更好的方法==

一般而言睡的时间越长生活的幸福度也就越高suoyiXwowanshangXaoyeXbaitianXpm14xxxxbujiao34我最好感情的源头&#xff1a; 1.c楼524 2.SP特别明确的是学习SP比如算法ship和视频制作relativeSP 3.寮∴我坚持每天至少学一个Z的SPZZrelative和suanfrtXg2zかんぺきなんでどありえな…

Java编程基础小总结

郝明明的小文章 第4章 Java语言基础 Java作为一门高级的计算机编程语言&#xff0c;在实际工作中得到广泛使用&#xff0c;如&#xff1a;JavaWeb开发、Android应用开发、大数据开发等。本章主要涉及Java语言的基础编程知识&#xff0c;为大家进行其他知识的学习打下语言的基础…

数学史海览胜

2019独角兽企业重金招聘Python工程师标准>>> 数学史海览胜 ——卢介景 第一章 三个发展时期 1、初等数学时期 2、变量数学时期 3、现代数学时期 第二章 三项世界记录 1、数学史最长的国家 2、数学传统最悠久的国家 3、数学教育开始最早的国家 第三章 三…

c语言

C语言笔记 程序员除了素质一无所有 纯手工打造 独具匠心 Mr_zhang 访问此博客 好评 非常好评 极度好评 文章目录 C语言笔记访问此博客linux常用命令&#xff1a;文件夹权限说明&#xff1a;vi编辑器&#xff1a;C语言编译过程&#xff1a;预处理-----编译-----汇编-----链接寄…

Android数字签名机制和应用场景

目录 1 数字签名介绍 1.1 背景 1.2 机制 1.3 使用 1.3.1 ssh-keygen 1.3.2 keytool 2 Android使用数字签名的场景 2.1 未签名的APK VS 签名后的APK 2.2 应用层面&#xff1a;Android对APK的签名要求 2.2.1 Android拒绝安装没有签名的APK 2.2.2 Android不校验证书的合…

学习自旋电子学的笔记01:微磁模拟软件OOMMF的教程(中文版)7-7.3.4章

士不可以不弘毅&#xff0c;任重而道远。——曾子《论语泰伯章》 # 前言 这是oommf软件教程《OOMMF User’s Guide》的中文翻译文章&#xff0c;由于本人水平有限&#xff0c;有些翻译可能有错误&#xff0c;望见谅。 第7章是本手册最重要的章节&#xff0c;由于本人水平是在…

学习自旋电子学的笔记01:微磁模拟软件OOMMF的教程(中文版)17-17.3章

精感石没羽&#xff0c;岂云惮险艰。——李白《豫章行》​​​​​​​ # 前言 这是oommf软件教程《OOMMF User’s Guide》的中文翻译文章&#xff0c;由于本人水平有限&#xff0c;有些翻译可能有错误&#xff0c;望见谅。 目录 17 微磁问题文件格式&#xff08;MIF&#…

2008下半年,来自百度的博客-003

<script type=text/javascript> /**/ </script> /**//**/#nav_extra .body {top:19px;} <script type=text/javascript> /**/ </script> 我的空间 写新文章 上传新照片 选择模板 选择主页类型 #hi{ position:relative; zoom:1;}#hiMsg{display:none;…

Python基础语法详解

目录 一、走进Python 1.软件开发常识 1.1什么是软件 1.2什么是开发 1.3DOS命令行 1.4计算机编程语言介绍 2.Python的概述 2.1Python语言 2.2Python发展史 2.3Python的优缺点 2.4Python的应用 3.数据的存储 3.1内存 3.2进制 4.Python的编码规范 5.注释 6.输入与输…

曼昆 宏观经济学 笔记

曼昆宏观经济学目录 第一章 导言1.1 宏观经济学家研究什么1.2 宏观经济学家是如何思考的内生变量与外生变量假设多个模型的使用价格 黏性与弹性 长期与短期微观模型与宏观模型 一个小故事 第二章 宏观经济学的数据&#xff08;以后再看&#xff09;2.1 国内生产总值投资政府购买…

OpenEuler

目录 实验一&#xff1a;操作系统简介 实验二&#xff1a;内存管理 实验三&#xff1a;进程管理 实验四&#xff1a;中断和异常管理 实验五&#xff1a;内核时间管理 实验六&#xff1a;设备管理 实验七&#xff1a;文件系统 实验八&#xff1a;网络管理 实验九&#x…

h默认试图的方式_试图破坏您的管理模式

h默认试图的方式 © magne.io ©magne.io Heuristics define approaches to problem-solving, system mental representation and in a broader way, a way of thinking. Heuristics we handle daily largely impact the way we think. 启发式方法定义了解决问题的方法…

设备安全——入侵检测IDS

目录 1. 什么是IDS&#xff1f;2. IDS和防火墙有什么不同&#xff1f;2.1 检测与监测2.2 设备所处点不同2.3 作用点不同2.4 动作不同 3. IDS工作原理&#xff1f;3.1、IDS分为实时入侵检测和事后入侵检测&#xff1a;3.2、入侵检测分类&#xff1a;3.3、入侵检测技术途径&#…

Snort入侵检测系统实验

实验内容 搭建网络防御环境学习使用检测工具Snort对网络进行攻击&#xff0c;查看和分析网络防御工具报告对实验结果进行分析整理&#xff0c;形成结论 三、实验步骤 安装入侵检测系统Snort 安装daq依赖程序&#xff0c;输入如下命令&#xff1a; sudo apt-get install fle…

入侵检测系统-3

一、什么是入侵检测 入侵检测(Intrusion Detection )是对入侵行为的检测。它通过收集和分析计算机网络或计算机系统中若于关键点的信息&#xff0c;检查网络或系统中是否存在违反安全策略的行为和被攻击的迹象。入侵检测作为一种积极主动的安全防护技术&#xff0c;提供了对内…

网络安全之入侵检测

目录 网络安全之入侵检测 入侵检测经典理论 经典检测模型 入侵检测作用与原理 意义 异常检测模型&#xff08;Anomaly Detection&#xff09; 误用检测模型&#xff08;Misuse Detection&#xff09; 经典特征案例 ​编辑自定义签名 ​编辑 签名检查过程 检测生命周期…

入侵检测

入侵检测 对于通过网络连接的系统来说&#xff0c;一个重要的安全问题是由用户或软件引起的恶意或者至少是不期望发生的非法入侵。用户非法入侵可能采用的方式是在未经授权的情况下登录到计算机&#xff0c;也可能是已授权用户非法获取更高级别的权限或进行其权限以外的操作。软…