python基础 连接数据库

python 连接数据库

  • 安装mysql-python驱动模块
  • 如果你使用的默认安装的python也可以使用 yum 安装 MySQL-python
    • yum install MySQL-python【不推荐】
  • 如果你要在linux 下开发python程序要安装一下开发包。否则可以忽略。
    • yum install python-devel mysql-devel zlib-devel openssl-devel
  • windows下直接使用pip install mysql-python,安装容易出问题:安装VCForPython27.msi 和 MySQL-python-1.2.3.win-amd64-py2.7.exe即可

Python基础— 文件读写模式

Python2.7 文件读写模式简单介绍

Python基础__执行shell命令

Python 执行shell命令

  • 导入os,commands库
    • os.system(‘java -version’)返回执行结果。0或其他
    • (status,output) = commands.getstatusoutput(‘java -version’) 返回状态值和输出值。
      • 与用户交互:
      • python获取用户输入参数 python a.py x y z
      • import sys,os
      • sys.argv[0]:a.py,依次取值。len(sys.argv)判断用户输入个数
      • os_exit(0)程序退出,以及退出值,在linux用$?获取。
      • 代码如下

数据库三大范式浅析

  • 第一范式(1NF):要求数据库表的每一列都是不可分割的原子数据项。

    • 举例说明:

    • 1nf_1

ELK全量日志查询浅析

ELK 全量日志查询项目

需求由来

1. 开发人员不能登录线上服务器查看详细日志,经过运维周转费时费力
2. 日志散落在多个系统上,难以查找和整合。
3. 日志数量巨大,查询速度太慢,难以满足需求。
4. 无法全局掌握项目运行情况
5. 日志数据查询不够实时
6. 数据分析人员不会写代码,无法分析统计数据。
7. .......

ElasticSearch入门

ElasticSearch

Elasticsearch简介及安装部署

  • ElasticSearch是一个实时的分布式的搜索和分析引擎。它是对lucene进行封装。能够达到实时搜索、稳定可靠、快速等特点。基于REST接口(API)

    • 普通接口请求是…get?a=1
    • rest接口请求是…get/a/1
  • ElasticSearch的用户

    • GitHUb、WiKIpedia、eBay等。

Spark优化

Spark 性能优化分析

  • Spark的性能优化,主要手段包括
    1. 使用高性能序列化类库,如使用kryo来代替java序列化
    2. 优化数据结构(算子函数内部使用到的局部数据或者算子函数外部的数据都可以进行数据结构的优化,优化以后,都会减少对内存的消耗和占用。)
    3. 对多次使用的RDD进行持久化/Checkpoint,避免后面使用需要重复计算,降低性能
    4. 使用序列化的持久化级别
    5. Java虚拟机垃圾回收优化
    6. 提高并行度
    7. 广播共享数据
    8. 数据本地化
    9. reduceByKey和groupByKey的适当使用
    10. Shuffle调优

Spark Streaming(二)

缓存与持久化机制+checkpoint机制

  • Spark Streaming数据流中的数据持久化到内存中

    • 对DStream调用persist()方法,就可以让Spark Streaming自动将该数据流中的所有产生的RDD都持久化到内存中。
    • 如果要对一个Dstream多次执行操作,那么对DStream持久化是非常有用的。因为多次操作可以共享使用内存中的一份缓存数据。
  • 对于基于窗口的操作,比如reduceByWindow、reduceByKeyAndWindow,以及基于状态的操作,比如updateStateByKey,默认就隐式开启了持久化机制。即Spark Streaming默认就会将基于窗口创建的DStrean中的数据缓存到内存中,不需要我们手动调用persist()方法。

  • 对于通过网络接收数据的输入流,比如socket、Kafka等,默认的持久化级别,是将数据复制一份,以便容错。类似于MEMORY_ONLY_SER_2.

  • 与RDD不同的是,DStream中默认的持久化级别,统一都是要序列化的。

Spark Streaming(一)

Spark Streaming

  • SparkStreaming是Spark CoreAPI的一种扩展,它可以用于进行大规模、高吞吐量、容错的实时数据流的处理。

  • 支持从很多数据源中读取数据,比如Kafka、Flume、Twitter、ZeroMQ、Kinesis或者TCP Socket。

  • 可以使用类似高阶函数的复杂算法来进行数据处理,比如map、reduce、join、window。处理后的数据可以被保存到文件系统、数据库、Dashboard等存储中。

数据仓库Hive浅析

  • 数据加载到数据库的两种模式

    • 写模式
      • 数据在加载的时候对数据合法性进行校验,库中的数据是合乎规范的,有利于快速查询和快速处理。
      • Mysql就是用的这种模式
    • 读模式
      • 在数据读取的时候对数据合法性进行校验,在加载入库的时候不校验。加载速度非常快,适合大量数据的一次性加载。
      • Hive是读模式。当上传文件到表中,Hive不会对表中的数据进行校验,对于错误的数据格式查询的时候也不会报错,只是会显示为NULL。
  • 数据库和数据仓库的区别

    • 数据库是面向事务处理的。是为捕获数据而设计的。一般存储的是实时的数据。
    • 数据仓库是面向主题设计的。是为分析数据设计的。存储的是历史的数据。将多个不同数据源的数据整理成统一的标准化数据。数据仓库里面的数据相对文档,数据仓库中的数据一般面向决策,主要面对的是查询和更新,修改和删除操作很少。
  • Hive文件的格式

    • TextFile
      • hive默认存储格式
      • 存储方式为:行存储
      • 磁盘开销大,数据解析开销大
      • 压缩的text文件hive无法进行合并和拆分
    • SequenceFile
      • 二进制文件,以k-v形式序列化到文件中
      • 存储方式: 行存储
      • 可以分割,支持压缩
      • 一般选择block压缩
    • RCFile
      • 存储方式:数据按行分块,按列存储
      • 压缩快,快速列存取
      • 读记录尽量涉及到的block最少
      • 读取需要的列只需要读取灭个row group的头部定义
      • 读取全量的数据操作性能可能比sequencefile没有明显的优势
    • ORCFile
      • 存储方式: 数据按行分块,按列存储
      • 压缩快,快速列存取
      • 效率比RCFile高,是RCFile的改良版本。
  • Hive文件压缩格式以及压缩效率

    • 压缩可以减少存储文件所需要的磁盘空间,加速数据在磁盘和网络上的传输。

    • 四种常见压缩算法比较

      压缩格式 split native 压缩率 速度 是否Hadoop自带 换成压缩格式后,原来的应用程序是否需要修改
      gzip 很高 和文本处理一样,不需要修改
      lzo 很快 否,需要安装 需要建索引,还要指定输入格式
      snappy 很快 否,需要安装 和文本处理一样,不需要修改
      bzip2 最高 和文本处理一样,不需要修改
    • 压缩算法效率比较

      压缩格式 压缩比 压缩速率 解压速率
      gzip 13.4% 21MB/s 118MB/s
      lzo 20.5% 135MB/s 410MB/s
      snappy 22.2% 172MB/s 409MB/s
      bzip2 13.2% 2.4MB/s 9.5MB/s
      • gzip 压缩使用的CPU资源比Snappy或LZO更多,但可提供更好的压缩比,GZIP通常是不常访问的冷数据的不错选择,而Snappy或LZO更加适合经常访问的热数据。
      • Bzip2还可以为文件提供比gzip2更好的压缩比,但是在压缩和解压时会在一定程度上影响速度。
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×