大约 9 篇【文章/问题】

Spark核心概念讲解

  • Image Description 站长 发表了文章
  • 2020年5月26日 15:44
  • 1
  • 0

Apache Spark架构基于两个主要抽象:

  • 弹性分布式数据集(RDD)
  • 有向无环图 (DAG)

RDD - Spark基本概念

理解Apache Spark的关键是RDD——弹性分布式数据集。RDD包含对象的任意集合。RDD中的每个数据集在逻辑上分布在集群节点上,以便可以并行地处理它们

RDD是可以并行操作的容错元素集合。创建RDDs有两种方法:并行化驱动程序中的现有集合,或者引用外部存储系统中的数据集,比如共享文件系统、HDFS、HBase或任何提供Hadoop InputFormat的数据源。

物理上,RDD作为对象存储在驱动程序JVM中,它引用存储在持久存储(HDFS、Cassandra、HBase等)或缓存(内存、内存+磁盘、仅磁盘等)或另一个RDD中的数据。

RDD存储以下元数据

  • 分区——与此RDD关联的一组数据分割。它们位于集群节点上。一个分区是由每个集群节点处理的最小数据批处理
  • 依赖关系——计算aka谱系图中涉及的父RDDs列表
  • 计算——函数计算子RDD给定父RDD从依赖关系
  • 首选位置——将计算放在分区上的最佳位置(数据位置)
  • 分区器——数据如何被分割成分区(默认情况下,它们被HashPartitioner分割 ...

linux下的安全审计(3)

  • Image Description 站长 发表了文章
  • 2020年5月26日 10:13
  • 14
  • 0

架构

auditd(或 auditd 守护进程)是Linux审计系统中用户空间的一个组件,其负责将审计记录写入磁盘, 架构如下

  • User :记录用户空间中产生的事件;它的作用是过滤消息的,内核传递给审计后台进程之前先查询它。
  • Task:跟踪应用程序的子进程(fork);当一个任务被创建时,也就是父进程通过 fork 和克隆创建子进程时记录该事件;
  • Exit:当一个系统调用结束时判断是否记录该调用;
  • Exclude:删除不合格事件;Exclude 是用来过滤消息的,也就是不想看到的消息可以在这里写规则进行过滤

相关工具及文件

auditctl : 即时控制审计守护进程的行为的工具,比如如添加规则等等。
aureport : 查看和生成审计报告的工具。
ausearch : 查找审计事件的工具
auditspd : 转发事件通知给其他应用程序,而不是写入到审计日志文件中。
autrace : 一个用于跟踪进程的命令。
/etc/audit/auditd.conf : auditd工具的配置文件。
/etc/audit/rules.d/audit.rules ...


hive 优化讨论

  • Image Description 站长 发表了文章
  • 2020年5月22日 14:18
  • 5
  • 0

CBO

Hive的基于成本的优化器(CBO)是Hive查询处理引擎的核心组件。CBO由Apache Calcite提供支持,它对查询的各种计划的成本进行优化和计算。

CBO的主要目标是通过检查查询中指定的表和条件来生成有效的执行计划,最终减少查询执行时间并降低资源利用率。解析之后,查询被转换成逻辑树(抽象语法树),该树表示查询必须执行的操作,比如读取特定的表或执行内部连接

Configuration Parameter Setting to Enable CBO Description
hive.cbo.enable true 启用cost-based查询优化
hive.stats.autogather true 支持为新创建的表和表分区(如使用INSERT OVERWRITE语句创建的表)自动收集表级统计信息。该参数不会生成列级统计信息,比如CBO生成的那些。如果禁用,管理员必须使用ANALYZE table语句为新生成的表和表分区手动生成表级统计信息

statistics (统计)

收集列和表的统计信息,以获得最佳的查询性能。

必须计算列和表统计信息以获得最优的Hive性能,因为它们对于估计谓词选择性和计划成本至关重要。在没有表统计信息的情况下,Hive CBO不工作。某些高级重写需要列统计信息。

确保将下表中的配置属性设置为true ...


linux下的安全审计(2)

  • Image Description 站长 发表了文章
  • 2020年5月21日 17:50
  • 8
  • 0

安装(centos系统默认安装启动)

yum install audit

配置实例

配置 auditd 的日志文件到远程主机

服务器 客户端
ip 地址 192.168.100.90 192.168.100.34
主机名 web demo-web-03

服务器上配置

修改配置文件 /etc/audit/auditd.conf 打开如下配置

 tcp_listen_port = 60   #监听端口为60

其他配置默认
重启服务service auditd restart

户端安装相关软件包并且配置文件

yum -y install audispd-plugins

修改配置文件/etc/audisp/plugins.d/au-remote ...


linux下的安全审计(1)

  • Image Description 站长 发表了文章
  • 2020年5月21日 17:47
  • 10
  • 0

审计应覆盖到每个用户、对重要的用户行为和重要的安全事件进行审计

  • 安全审计内核模块与安全审计守护进程

auditd内核模块主要用来获取审计信息,而用户的auditd守护进程主要是从内核模块获取审计信息然后记录。所以如果auditd内核模块没有起动,那么auditd守护进程启动了也没有任何用,用户定义的临时审计规则或永久审计规则都不会起效果,自然也不会记录任何信息(但注意,这个不会影响到syslog,syslog还是会正常记录信息的)

通过auditctl -s命令查看auditd内核模块的状态

[[email protected] ~]# auditctl -s
enabled 1
flag 1
pid 1010
rate_limit 0
backlog_limit 320
lost 0
backlog 0
loginuid_immutable 0 unlocked

里面的enabled的值即为auditd内核模块的状态,enabled为0则代表auditd内核模块没有启动,此时就像上文说的那样,系统不会记录任何信息。如果enabled为1,则代表auditd内核模块正常开启,此时可以正常收集信息。如果enabled为2,似乎是代表审计规则被锁定,不能修改升级规则

而当enabled为1但auditd守护进程没有开启时,内核收集到的信息将会记录到写到/var/log/messages中 ...


hadoop 安装前准备及一些优化

  • Image Description 站长 发表了文章
  • 2020年5月21日 15:05
  • 12
  • 0

时间

集群中的所有机器都需要具有相同的时间和日期设置,包括时区。强烈建议使用网络时间协议(NTP)。许多集群服务对时间非常敏感(例如HBase、Kudu、ZooKeeper),如果所有主机的时间一致,故障排除就会非常容易。

# (RHEL/CentOS 6) 
service ntpd start 
chkconfig ntpd on 

# (RHEL/CentOS 7) 
systemctl start ntpd.service 
systemctl enable ntpd.service

名称服务缓存

hosts文件解析 或者DNS服务器,如果使用DNS,建议开启nscd

nscd(Name Service Cache Daemon)是一种能够缓存 passwd、group、hosts 的本地缓存服务,分别对应三个源 /etc/passwd、/etc ...


kafka 配置及常用命令

  • Image Description 站长 发表了文章
  • 2020年5月18日 16:22
  • 13
  • 0

硬件要求

Kafka可以在相当少的资源上运行,特别是通过一些配置调优。开箱即用的配置可以在只有1个核心和1 GB内存的情况下运行,并根据数据保留需求调整存储规模

Brokers

Kafka需要相当少量的资源,特别是在进行一些配置调优时。在默认情况下,Kafka可以运行在最少1个核心和1GB的内存上,并根据数据保持的需求进行扩展

CPU很少成为瓶颈,因为Kafka的I/O负担很重,但是具有足够线程的中等大小的CPU对于处理并发连接和后台任务仍然很重要

  • Kafka节点的常见选择如下
Component Memory/Java Heap CPU Disk
Broker RAM: 64 GB Recommended Java heap: 4 GB 12- 24 cores 建议HDD硬盘 及raid配置
MirrorMaker 1 GB heap 1 core per 3-4 streams 在MirrorMaker实例上不需要磁盘空间

网络要求 ...


python 和js 的方法对比

  • Image Description 站长 发表了文章
  • 2020年5月14日 18:47
  • 42
  • 0

JS的MD5加密实现(模块CryptoJS v3.1.2)

key = '123456789'
var a=CryptoJS.MD5(key)
a.toString()
"25f9e794323b453885f5181f1b624d0b"

python的MD5加密实现

>>> import hashlib
>>> s = hashlib.md5()
>>> key = '123456789'
>>> s.update(key)
>>> res = s.hexdigest()
>>> print(res)
25f9e794323b453885f5181f1b624d0b

JS实现字典对象排序

var a= {'aa': '222', '11': '444', '3': 1, 'bb': '444', 'ccc ...

yarn 日志聚合

  • Image Description 站长 发表了文章
  • 2020年5月14日 18:47
  • 15
  • 1

yarn.log-aggregation-enable 默认false

是否启用日志聚合。日志聚合收集每个容器的日志,并在应用程序完成后将这些日志移动到文件系统中,例如HDFS。用户可以配置yarn.nodemanager.remote-app-log-diryarn.nodemanager.remote-app-log-dir-suffix属性,用于确定将这些日志移动到何处。用户可以通过Application Timeline服务访问日志

yarn.nodemanager.remote-app-log-dir 默认/tmp/logs

日志聚合存放位置

yarn.nodemanager.remote-app-log-dir-suffix 默认logs

远程日志目录将在以下位置创建 {yarn.nodemanager.remote-app-log-dir}/${user}/{thisParam}

yarn.log-aggregation.file-formats

指定我们将支持哪些日志文件控制器。我们添加的第一个文件控制器将用于编写聚合日志。这个以逗号分隔的配置将与配置一起使用:yarn.log-aggregation.file-controller。%s ...