㈠ [hive]一种基于Hive日志分析的大数据存储优化方法_王正也_百度文库
一种基于Hive日志分析的大数据存储优化方法 王正也 网络文库
http://wenku..com/link?url=-
2 一种基于Hive日志的大数据存储优化方法
2.1 优化方法概述
Hive作为Hadoop开源分布式平台下的数据仓库工具,他的作用是HDFS上存储的结构化数据,根据使用者的需求将其映射出数据表,并可以向用户提供类似SQL的HiveQL查询功能,并将用户提交的Query转换成Map-Rece任务执行。Hive的优点是提供类SQL的查询接口,快速实现数据的统计分析功能,而不必编写专用的Map-Rece任务。而也正是因为如此,通用的Hive数据仓库,没有进行专用化的优化设计,其查询分析效率也有很大的优化空间[4]。
文章根据常用的HiveQL的查询日志分析和根据现有的数据存储结构的关联特性提出一种通用的Hive数据存储的优化方法。
本策略认为优化一个专用的Hive海量数据仓库分为以下几个步骤: 1. 分析常用查询日志,根据使用人员习惯定制数据分区结构。 2. 使用专用的优化过的列式存储结构作为数据导入格式。 3. 根据数据表,和表中字段的实际物理意义合并压缩重复字段和数据表。 4. 根据数据表中字段实际的取值优化字段的存储类型。 5. 编写UDF,在不改变用户使用习惯的基础上,应用上述优化。 其中1.2.两点在数据导入阶段进行优化,3.4.5.是在对数据表字段和表结构的优化,需要配合UDF来进行。通过上述优化过程可以大大节省HiveQL的查询时间以及HDFS上数据的占用空间。
2.2 根据查询日志进行分区优化
Hive的日志记录了Hive的运行状况,为本文分析操作者的使用习惯提供了很大的帮助。可以通过编写Hive的EXPAIN功能进行日志的分析,利用Hive的EXPLAIN功能,本文可以得到查询语句的抽象语法树(ABSTRACT SYNTAX TREE),通过抽象语法树,本文可以快速得到查询语句的语法结构。
例如,以下一条语句SELECT col1, SUM(col2) FROM tab1 GROUP BY col1的通过EXPLAIN命令本文可以得到如下结果:
ABSTRACT SYNTAX TREE:
(TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME tab1))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_TABLE_OR_COL col1)) (TOK_SELEXPR (TOK_FUNCTION sum (TOK_TABLE_OR_COL col2)))) (TOK_GROUPBY (TOK_TABLE_OR_COL col1))))
可以通过使用正则表达式抓取特征数据,得到该语句的语法结构,同时通过编写Shell脚本,批量执行EXPLAIN命令,可以很快的理解到使用者的常用语法习惯,为后文的分区优化提供了数据支持。 通过对使用者常用字段进行分区(partition),带来的便利是大大的节省了一些常用查询的在硬盘中读取数据所消耗的时间。 通常在没有进行过优化的Hive系统中,每次查询提交之后,Hive要对输入数据进行全盘扫描满足条件的的项目,通过合理的划分分区,在单次任务提交后,可以按照任务的限定条件只扫描某些关键分区的数据,大大提高的Hive查询执行的效率。
2.3 选取合适的Hive数据存储格式
在Hive中数据表创建时需要指定文件存储格式,在Hive0.90版本中,常用的数据格式分为TEXTFILE、SEQUNCEFILE、RCFILE和用户自定格式等几种,以上格式的主要区别在行式存储与列式存储,不同压缩算法等方面的区别。根据Hive数据表格的特性,和通过Hive日志观察到的用户使用习惯等特性,通过选择合适的文件存储格式,可以大大提高查询效率,减少查询耗费时间。
4 结论
本文给出了一种基于Hive日志分析的大数据存储优化方法,通过实际测试可以看出,使用该优化方法的Hive数据存储系统无论从磁盘空间利用率还是从查询效率上都得到和很大提升。
㈡ Python和大数据告诉你,想要吃鸡您应该选择哪种PUBG武器组合
使用Python,我找到了可以帮助您赢得梦寐以求的吃鸡的最佳武器组合。
不久前,出于好奇,我下载了PUBG Mobile,以了解炒作的全部内容。为了大致了解 游戏 的运作方式:您从飞机上跳伞,然后撞上建筑物并开始寻找防护装备,弹药和武器,然后要么杀死他人,要么被他人杀死,最后一支生存下来的队伍赢得鸡肉晚餐。这个概念听起来很简单,是吗?然后,您撞上一栋建筑物,发现自己盯着五把不同的枪,枪口上的名字不知道它们之间的区别。每个玩家都可以装备两把枪,但是我应该怎么知道该选哪两把呢?我可能没有选择合适的对手,因为即使我多次开始射击,我也一直被对手杀死。因此,我决定,为什么不趁此机会提高我的Python技能(您知道当您实际上必须使用Google的"快捷键才能在Python上运行代码"时,您真的很生锈),并希望找到可以使我更好的东西。有机会带回家那顿鸡肉晚餐?请迅速做出决定:自从我上一次使用Python开发项目以来已经过去了两年,所以绝对欢迎提出有关如何以更好的方式编写代码的建议!和往常一样,我的代码托管在GitHub上。
我到处搜索关于PUBG武器统计数据的现成数据集,但最终没有找到(Kaggle有一个从官方API派生的关于玩家统计数据的数据集,该数据集可作为其他分析的有趣数据集)。 但是,我确实找到了提供武器统计信息的网站,因此我继续使用BeautifulSoup对官方的PUBG Wiki进行了一些网页抓取。 我将不涉及网络抓取过程的详细信息,因为我想将重点更多地放在数据分析部分上,因此我仅重点介绍一些部分。
尽管有一个页面提供所有武器的统计信息,但我希望能够将它们归类为各自的类型(例如,无论是突击步枪还是轻机枪),因此我最终从每个页面的相应页面抓取 将8个数据框合并为一个数据框之前的武器类型。
我还通过将其他网站的数据替换为丢失和怪异的数据(请参阅本文结尾处的数据)来清理丢失的数据,这些数据列出了在当前数据集中不需要替换的其他武器的可比较值。
之后,在将数据帧导出为csv文件之前,我将所有数字列都转换为float数据类型,以允许在后续数据分析中进行算术运算。
以下总结了每个功能的含义(只需最少的更改即可从PUBG Wiki复制和粘贴信息)
· DMG(命中伤害)
在装甲和其他减灾因素之前施加直接伤害
· SPD(初始子弹速度)
子弹离开枪口的速度,以每秒米为单位。 较高的数字意味着对遥远的移动目标所需的铅减少。
· PWR(身体碰撞冲击力)
射击布娃娃时会施加多大的力。 更高的价值意味着更大的推动力。
· MAG(每个Mag的弹药)
弹匣中可以容纳的最大弹药量。
· TBS(射击间隔)
重新发射武器之前必须经过的最短时间(以秒为单位)。
· 模式(射击模式)
该武器可以选择的模式。 在此字段中具有"单发","自动"的武器表示可以在单发射击模式或自动射击模式之间进行选择。
· BSHT(连拍)
如果适用,一次连发射击几张。
· BDEL(连拍延迟)
再次触发另一个突发之前必须经过的最短时间(以秒为单位)。
· AMM(弹药类型)
武器接受的弹药类型。
· CAP(容量)
也称为散装或占用的库存空间量。
· 附件(附件)
武器本身可以附带什么。 附件的示例包括一个范围,可以进行远距离狙击。
· BDMG 0,BDMG 1,BDMG 2,BDMG 3(身体伤害等级0,身体伤害等级1,身体伤害等级2,身体伤害等级3)
在以下情况下对身体造成的伤害:分别没有装备盔甲,没有装备1级背心,装备2级背心和3级背心。
· HDMG 0,HDMG 1,HDMG 2,HDMG 3(头部伤害等级0,头部伤害等级1,头部伤害等级2,头部伤害等级3)
在以下情况下对头部造成的伤害:未装备护甲,装备了1级护甲,装备了2级护甲和装备了3级护甲。
· 类型
我创建的一个变量,用于反映其所属的武器类型。
根据描述,似乎更重要的武器特征是:身体和头部的伤害(如果武器造成更大的伤害,则更有可能杀死对手),初始子弹速度(更快的子弹速度意味着 您的子弹可能会在对手击中您之前击中对手),两次射击之间的时间(通常需要多次射击才能杀死对手,因此两次射击之间的时间越短,您击败对手的机会就越大),每磁石弹药(如果您 可以为每个弹匣携带更多子弹,而您不必浪费那么多时间重新装弹)。
现在已经消除了所有棘手的细节,是时候玩得开心了。 让我们尝试通过绘制相关矩阵来找到不同功能之间的一些趋势。
快速浏览一下相关矩阵,可以发现不同级别的身体伤害之间的关联性非常好,不同级别的头部伤害也是如此。 因此,我们可以选择其中一个级别,让我们只使用BDMG 1和HDMG1。身体伤害和头部伤害也高度相关,这绝对不足为奇,但是现在,我们将继续 为了安全起见,我们相关矩阵中的两个变量都是安全的。 令人惊讶的是,伤害与身体和头部伤害之间的相关性较低。 由于身体和头部的伤害是直接影响玩家 健康 的因素,因此我们只从相关矩阵中删除伤害。
观察"杂乱无章"的相关矩阵,似乎在伤害与射击之间的时间(较高的伤害枪在射击之间的时间较长),伤害和速度(较高的伤害枪的子弹速度较慢)之间进行权衡。 每个弹药的弹药(更高伤害的枪支,每个弹匣可以携带更少的弹药)。 在这三个折衷方案中,前两个折衷方案对于赢得一场战斗更为关键,因此我们将重点放在它们上。 另外,鉴于身体伤害和头部伤害之间存在高度相关性,因此,我将仅从此刻开始着眼于头部伤害,以进一步简化事情。 简而言之,我们将研究3个变量:头部伤害等级1(HDMG 1),初始子弹速度(SPD)和射击间隔时间(TBS)。
首先,按武器类型绘制热图。 在显示实际热图之前,我将快速总结不同武器类型的缩写。
· 突击:突击步枪
· 弓:bo
· DMR:指定的神射手步枪
· LMG:轻机枪
· SG:Shot弹枪
· SMG:冲锋枪
· SR:狙击步枪
这进一步重申了我们早先发现的趋势-更高伤害的枪支往往具有较慢的子弹速度,并且两次发射之间的时间更长(我们仅以shot弹枪为例)。 正如本文开头所提到的,每个玩家都可以装备2支枪,因此,我想根据这2种折衷情况,找出哪种搭配最有利。
我首先绘制了一个热图,以比较不同的武器组合。 这似乎描绘了一幅相似的图,其中在伤害与速度之间以及在伤害与射击之间的时间之间进行权衡,但这并不是很清楚,因此相关矩阵也许可以更好地描述事物。
如我们所见,最大的折衷是在伤害和射击之间的时间之间,然后是伤害和速度。
当涉及权衡时,最好的组合是帕累托高效的组合。 帕累托高效到底是什么? 简而言之,如果您有两个目标,那么帕累托有效组合就是这样一种组合,您无法在一个目标上取得进步而又不使另一个目标恶化。 假设您有两个目标X和Y,这两个目标之间需要权衡。
点A的效率不高,因为存在一个点(例如A'),您在至少一个目标中的表现要好于其他目标。 点A'和A'都是帕累托有效的,因为不可能在不使另一个目标恶化的情况下为一个目标获得更高的价值。 例如,从点A'到点A',我们得到一个更高的X但一个更低的Y。一个Pareto前沿仅连接所有Pareto有效点。
在我们的案例中,我们要权衡两个因素,因此让我们分别来看一下。 我们将从伤害与射击间隔之间的更大权衡开始。
如上所示,帕累托有效组合为:
· 和冲锋枪
· 和轻机枪
· 和指定的神射手步枪
· 弹枪和冲锋枪
· 和Shot弹枪
我们不能说这些组合中的一种优于另一种,但是如果我想要一种组合在伤害和两次射击之间的时间上表现均等,那么选择2或3组合可能是个好主意。
损害与速度之间的权衡又如何呢?
在这种情况下,帕累托有效组合为:
· 突击步枪和轻机枪
· 突击步枪和狙击步枪
· 轻机枪和狙击步枪
· 指定的神射手步枪和狙击步枪
· 突击步枪和Shot弹枪
· 轻机枪和Shot弹枪
· 弹枪和狙击步枪
· 和Shot弹枪
再说一次,我们不能断定这些组合中的一种优于另一种,但是如果我想要一个组合在伤害和速度上都表现得相当不错的组合,那么最好选择5或6的组合。
归根结底,这实际上取决于您是要优先考虑伤害与射击间隔时间之间的权衡,还是损害与初始子弹速度之间的权衡。 然后,帕累托效率分析将提供一些武器组合,您可以选择,这取决于您是喜欢一种目标比另一目标好得多的组合,还是两种目标都相当平等的组合。 我会选择后者,因为进行此分析的目的是要找到一对具有不同优势的枪支,彼此互补。
话虽如此,我希望这种分析能帮助您赢得那顿鸡肉大餐!
数据集的功劳
· https://pubg.gamepedia.com
· https://www.futuregamereleases.com/2019/01/pubg-weapon-damage-charts-body-vs-headshot-limb-utility/
· https://pubgmap.io/weapons.html
提供网络抓取参考代码的信用
· Hackwagon学院
归功于帕累托边境代码
· https://pythonhealthcare.org/tag/pareto-front/
(本文翻译自Meredith Wan的文章《Which PUBG Weapon Combination Should You Pick?》,参考:https://towardsdatascience.com/which-pubg-weapon-combination-should-you-pick-f58bdc262082)
㈢ 什么叫尿比重偏低
尿潜血定性b l d
㈣ 深信服SG有什么用呢
1. 上网代理(和ISA、BLUECOAT一样,IE浏览器里面填代理地址上网)
2. 高级版本的AC,AC升级版(换个名目,便于价格操作,多了上网加速功能)
3. 互联网访问速度优化(具备网页、视频的缓冲)
4. 上网行为管理(什么能上、什么不能上,包括网页、应用、IP地址、端口等进行控制)
5. 网络审计(流量的审计:流量由哪些应用组成、这段时间流量趋势走向等、行为的审计:什么人在什么时间在干什么;报表:TOPN、饼状图、树状图、趋势图)
6. 互联网流控(限制某应用/人员/IP 流量最高不超过1M;保障某人员/应用/IP流量通道最小1M,而且用不完1M时可以留着不给其他人用,或者分给其他人用)