发布日期:2024-01-01 06:54:07

在散列技术中散列技术的中国特色及应用探索

本文目录

  1. hadoopreduce主要特点?
  2. hash索引适用于?
  3. rpm的用法?
  4. md5哈希函数用途及其特点?
  5. mkey和bmkey的区别?

hadoopreduce主要特点?

1.计数器

在MR作业中内置计数器,统计任务状态,用户可以自定义计数器以实现统计目的,这块比较简单,不是什么原理性的东西,直接略过

2.排序

排序是MR中比较核心的问题,MR中数据是通过排序来进行组织的。排序的效率直接影响着整个作业的运行效率

i)部分排序

在Map任务执行完毕之后,写入到磁盘文件之前,对输出数据进行预排序。这样的排序是按照键进行字典排序而成,将键相同的数据组织到一起。

预排序完成之后,将数据写入本地磁盘,而后通过Partitioner将数据映射传递到对应reducer,默认是一个HashPartitioner进行分区。对键进行hash处理,将值对reducer数目取模,从而确定reducer。

数据传递到reducer之后,reducer对每个分区内数据进行合并排序,依然是按键字典排序,当然也可以通过继承RowCompartor类并且显示设置comparatorClass指定排序方式,这样一来每个reducer输入分区的数据都是有序的,但是就整体所有数据而言,并不是有序的,所以称之为部分排序。

2.完全排序

要想实现所有数据均可以实现有序,那么需要对Partitioner进行设置为TotalOrderPartitioner,对所有数据进行分组,比如说将数据分为{a,b,c,d,e,f}六个分组,那么a组所有键必须小于b组,而b组所有键必须小于c组,以此类推,这就意味着是按照键的范围对数据进行分组。

hash索引适用于?

hash索引仅适用于‘=’、‘<=>’和‘in’操作,所以hash仅仅适用于精确查找。

不适用于查询排序,因为hash后的数据并不会像原数据一样保持有序。

不适用于模糊查询,也就是不能使用like关键字。

既然不支持排序,也肯定不支持范围查询。

特点优劣:

1)首先就是Hash索引存取的是哈希值和行指针,索以不提供排序

2)Hash索引不能够避免读取行。

3)Hash索引不适用于范围查询,只适用于=或IN查询。

4)Hash索引不能够避免表扫描。

rpm的用法?

RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序”

rpm 执行安装包

二进制包(Binary)以及源代码包(Source)两种。二进制包可以直接安装在计算机中,而源代码包将会由RPM自动编译、安装。源代码包经常以src.rpm作为后缀名。

常用命令组合:

 

-ivh:安装显示安装进度--install--verbose--hash

-Uvh:升级软件包--Update;

-qpl:列出RPM软件包内的文件信息[Query Package list];

-qpi:列出RPM软件包的描述信息[Query Package install package(s)];

-qf:查找指定文件属于哪个RPM软件包[Query File];

-Va:校验所有的RPM软件包,查找丢失的文件[View Lost];

-e:删除包

 

 

rpm -q samba //查询程序是否安装

rpm -ivh  /media/cdrom/RedHat/RPMS/samba-3.0.10-1.4E.i386.rpm //按路径安装并显示进度

rpm -ivh --relocate /=/opt/gaim gaim-1.3.0-1.fc4.i386.rpm    //指定安装目录

rpm -ivh --test gaim-1.3.0-1.fc4.i386.rpm    //用来检查依赖关系;并不是真正的安装;

rpm -Uvh --oldpackage gaim-1.3.0-1.fc4.i386.rpm //新版本降级为旧版本

rpm -qa | grep httpd      #[搜索指定rpm包是否安装]--all搜索*httpd*

rpm -ql httpd         #[搜索rpm包]--list所有文件安装目录

rpm -qpi Linux-1.4-6.i368.rpm #[查看rpm包]--query--package--install package信息

rpm -qpf Linux-1.4-6.i368.rpm #[查看rpm包]--file

rpm -qpR file.rpm       #[查看包]依赖关系

rpm2cpio file.rpm |cpio -div    #[抽出文件]

rpm -ivh file.rpm  #[安装新的rpm]--install--verbose--hash

rpm -ivh

rpm -Uvh file.rpm    #[升级一个rpm]--upgrade

rpm -e file.rpm      #[删除一个rpm包]--erase

md5哈希函数用途及其特点?

我们日常开发中最常见的哈希算法应用就是通过 md5 函数对数据进行加密了,md5 就是一个哈希函数,结合 md5 我们可以归纳出哈希算法的一般特性:

从哈希值不能反向推导出原始数据(所以哈希算法也叫单向算法,不可逆);

对输入数据非常敏感,哪怕原始数据只修改了一个比特,最后得到的哈希值也大不相同;

散列冲突的概率要很小,对于不同的原始数据,哈希值相同的概率非常小;

哈希算法的执行效率要尽量高效,针对较长的文本,也能快速地计算出哈希值

mkey和bmkey的区别?

mkey和bmkey都是用于计算机密码学中的密钥派生函数,用于从一个密钥派生出另一个密钥。它们的区别在于:

1. mkey是一种基于哈希函数的密钥派生函数,它可以从一个密钥派生出多个密钥。mkey的输入是一个主密钥和一个索引值,输出是一个派生密钥。mkey的派生过程是不可逆的,即无法从派生密钥反推出主密钥。

2. bmkey是一种基于布尔函数的密钥派生函数,它可以从一个密钥派生出多个密钥。bmkey的输入是一个主密钥和一个索引值,输出是一个派生密钥。bmkey的派生过程是可逆的,即可以从派生密钥反推出主密钥。

因此,mkey和bmkey的主要区别在于派生过程的可逆性。mkey的派生过程是不可逆的,更加安全可靠,但是无法从派生密钥反推出主密钥。bmkey的派生过程是可逆的,更加灵活方便,但是安全性相对较低。在实际应用中,需要根据具体的安全需求和应用场景选择合适的密钥派生函数。

  • 在散列技术中散列技术的中国特色及应用探索已关闭评论
  • A+
所属分类:会议纪实