当前位置: 首页 > news >正文

宠物之家网站建设怎么样在百度搜到自己的网站

宠物之家网站建设,怎么样在百度搜到自己的网站,建设京东类的网站需要什么流程图,北京网页设计公司兴田德润怎么样文章目录 HBase之全文检索Phoenix一、全文检索二、全文检索工具phoenix简介1. 简介2. 使用Phoenix是否会影响HBase性能3. 哪些公司在使用Phoenix4. 官方性能测试4.1 Phoenix对标Hive#xff08;基于HDFS和HBase#xff09;4.2 Phoenix对标Impala4.3 关于上述官网两张性能测试… 文章目录 HBase之全文检索Phoenix一、全文检索二、全文检索工具phoenix简介1. 简介2. 使用Phoenix是否会影响HBase性能3. 哪些公司在使用Phoenix4. 官方性能测试4.1 Phoenix对标Hive基于HDFS和HBase4.2 Phoenix对标Impala4.3 关于上述官网两张性能测试的说明 三、OLTP和OLAP1. OLAP2. OLTP 四、Phoenix的安装1.下载2.上传服务器3.解压4.修改HBase的配置文件hbase-site.xml5.分发HBase的配置文件到其他节点6.复制依赖包1)复制phoenix的服务器端jar包到master和worker的hbase的lib文件夹下2)复制phoenix的客户端jar包到phoenix的客户端也就是hadoop001的phoenix的bin文件夹下3将配置后的hbase-site.xml拷贝到phoenix的bin目录 五、启动phoenix客户端1.启动zookeeper2.启动hdfs3.启动hbase4.启动phoenix5.查看表6.查看HBase的web ui 六、Phoenix的基本使用1.创建表2.查看表结构3.删除表4.列名大小写的问题5.插入数据6.查询数据7.修改数据8.删除数据 七、HBase的命名空间1.简介2.创建命名空间3.列出命名空间4.查看命名空间详情5.删除命名空间6.在指定的命名空间下创建表7.添加数据到命名空间表 八、列簇设计九、版本设计十、数据压缩1.压缩算法2.查看表的压缩算法3.设置数据压缩1)创建新表的时候2)修改已有表的压缩算法 十一、ROWKEY设计原则1.避免使用递增行键/时序的数据2.避免rowkey和列的长度过大3.使用long等类型比String类型更节省空间4.rowkey唯一性5.避免数据热点1)热点2)预分区3)start key和end key4)预分区的个数5)rowkey避免数据热点设计 十二、设置预分区1.指定start key和end key来分区1)创建预分区2)hbase的web ui查看分区的占用情况 2.指定分区的数量、分区策略1)创建预分区2)hbase的web ui查看分区的占用情况3)分区数量4)分区策略 十三、Phoenix的视图1.创建视图2.查询数据 十四、二级索引1.索引分类1)全局索引2)本地索引3)覆盖索引4)函数索引 2.创建索引3.根据索引查询数据4.删除索引5.查看索引 HBase之全文检索Phoenix 一、全文检索 全文数据库是全文检索系统的主要构成部分。所谓全文数据库是将一个完整的信息源的全部内容转化为计算机可以识别、处理的信息单元而形成的数据集合。全文数据库不仅存储了信息而且还有对全文数据进行词、字、段落等更深层次的编辑、加工的功能而且所有全文数据库无一不是海量信息数据库。 二、全文检索工具phoenix简介 Phoenix官方网址http://phoenix.apache.org/ 1. 简介 Phoenix官网「We put the SQL back in NoSQL」Apache Phoenix让Hadoop中支持低延迟OLTP和业务操作分析。提供标准的SQL以及完备的ACID事务支持通过利用HBase作为存储让NoSQL数据库具备通过有模式的方式读取数据我们可以使用SQL语句来操作HBase例如创建表、以及插入数据、修改数据、删除数据等。Phoenix通过协处理器在服务器端执行操作最小化客户机/服务器数据传输 Apache Phoenix可以很好地与其他的Hadoop组件整合在一起例如Spark、Hive、Flume以及MapReduce。 2. 使用Phoenix是否会影响HBase性能 Phoenix不会影响HBase性能反而会提升HBase性能Phoenix将SQL查询编译为本机HBase扫描确定scan的key的最佳startKey和endKey编排scan的并行执行将WHERE子句中的谓词推送到服务器端通过协处理器执行聚合查询用于提高非行键列查询性能的二级索引统计数据收集以改进并行化并指导优化之间的选择跳过扫描筛选器以优化IN、LIKE和OR查询行键加盐保证分配均匀负载均衡 3. 哪些公司在使用Phoenix 链接https://phoenix.apache.org/who_is_using.html 4. 官方性能测试 链接https://phoenix.apache.org/performance.html 4.1 Phoenix对标Hive基于HDFS和HBase 4.2 Phoenix对标Impala 4.3 关于上述官网两张性能测试的说明 上述两张图是从Phoenix官网拿下来的这容易引起一个歧义。就是有了HBase Phoenix那是不是意味着我们将来做数仓OLAP就可以不用Hadoop Hive了 千万不要这么以为HBase Phoenix是否适合做OLAP取决于HBase的定位。Phoenix只是在HBase之上构建了SQL查询引擎注意我称为SQL查询引擎并不是像MapReduce、Spark这种大规模数据计算引擎。HBase的定位是在高性能随机读写Phoenix可以使用SQL快插查询HBase中的数据但数据操作底层是必须符合HBase的存储结构例如必须要有ROWKEY、必须要有列蔟。因为有这样的一些限制绝大多数公司不会选择HBase Phoenix来作为数据仓库的开发。而是用来快速进行海量数据的随机读写。这方面HBase Phoenix有很大的优势。 三、OLTP和OLAP 1. OLAP 在线分析处理系统hadoop、hbase、hive提供支持 2. OLTP 在线事务处理系统传统的关系数据库支持 四、Phoenix的安装 1.下载 链接https://phoenix.apache.org/download.html 从官网上下载与HBase版本对应的Phoenix版本。 2.上传服务器 3.解压 tar -zxvf phoenix-hbase-2.4.0-5.1.3-bin.tar.gz -C ../servers/解压文件 查看 4.修改HBase的配置文件hbase-site.xml 添加内容如下 /property!-- 支持HBase命名空间映射 --propertynamephoenix.schema.isNamespaceMappingEnabled/namevaluetrue/value/propertypropertynamehbase.table.sanity.checks/namevaluefalse/value/propertypropertynamehbase.coprocessor.abortonerror/namevaluefalse/value/property!-- 支持hbase的WAL --propertynamehbase.regionserver.wal.codec/namevalueorg.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec/value/property5.分发HBase的配置文件到其他节点 scp conf/hbase-site.xml hadoop002:$PWD/conf scp conf/hbase-site.xml hadoop003:$PWD/conf 6.复制依赖包 1)复制phoenix的服务器端jar包到master和worker的hbase的lib文件夹下 hadoop001 cp phoenix-server-hbase-2.4.0-5.1.3.jar /export/servers/hbase-2.4.10/lib/hadoop002 scp phoenix-server-hbase-2.4.0-5.1.3.jar hadoop002:/export/servers/hbase-2.4.10/lib/hadoop003 scp phoenix-server-hbase-2.4.0-5.1.3.jar hadoop003:/export/servers/hbase-2.4.10/lib/2)复制phoenix的客户端jar包到phoenix的客户端也就是hadoop001的phoenix的bin文件夹下 cp phoenix-client-hbase-2.4.0-5.1.3.jar bin/3将配置后的hbase-site.xml拷贝到phoenix的bin目录 cp conf/hbase-site.xml ../phoenix-hbase-2.4.0-5.1.3-bin/bin/ cd ../phoenix-hbase-2.4.0-5.1.3-bin/bin/五、启动phoenix客户端 1.启动zookeeper 2.启动hdfs 3.启动hbase 4.启动phoenix bin/sqlline.py hadoop001:2181说明启动成功 5.查看表 6.查看HBase的web ui 六、Phoenix的基本使用 1.创建表 语法 create table if not exists 表名 rowkey 名称 类型 primary key, 列簇名.列名 类型, ...... ;在实际操作中先用vscode之类的编辑工具写好相关的语句然后再复制到phoenix中运行 -- 创建表ORDER_1 create table if not exists ORDER_1 (ID varchar primary key ,C1.STATUS varchar ,C1.PAY_MONEY float ,C1.PAY_WAY integer ,C1.USER_ID varchar ,C1.OPERATION_DATE varchar ,C1.CATEGORY varchar );2.查看表结构 语法 desc 表名3.删除表 语法 drop table if exists 表名;drop table if exists ORDER_1;4.列名大小写的问题 如果在使用列簇、列名的时候没有添加双引号Phoenix会自动转换为大写 create table if not exists ORDER_1 (ID varchar primary key ,C1.Status varchar ,C1.PAY_MONEY float ,C1.PAY_WAY integer ,C1.user_id varchar ,C1.OPERATION_DATE varchar ,C1.category varchar );如果要将列名改为小写则要用双引号括起来如果一旦加了双引号后面任何使用该列的地方都得使用双引号否则就会报错 5.插入数据 在Phoenix中插入数据并不是insert而是upsert相当于insert和update合起来的缩写与HBase shell中的put相当于如果数据存在则修改如果不存在则插入。 语法 upsert into 表名(列簇名.列名,...) values(值1,...);upsert into ORDER_1 values (000001,已完成,2000,1,494419,2024-04-20 12:00:30,手机);6.查询数据 与标准的sql一样在Phoenix中也是用select实现数据的查询 select * from ORDER_1;7.修改数据 在Phoenix中修改数据也使用upsert 语法 upsert into 表名(列簇名.列名,...) values(值1,...);upsert into ORDER_1(ID,C1.STATUS) values(000001,已付款) ;8.删除数据 在Phoenix中删除数据与标准的sql一样也是用delete from实现数据的删除 语法 delete from 表名 where rowkey列名值;delete from ORDER_1 where ID 000001;七、HBase的命名空间 1.简介 类似与mysql和hive中的数据库对数据进行分类存放按照业务域来划分类别这些不同的业务域就叫做命名空间namespace。 在HBase中有一个默认的命名空间叫做default默认情况下创建的表都在default命名空间下。在HBase中还有一个命名空间叫做hbase用于存放系统的内建表namespacemeta list_namespace2.创建命名空间 语法 create_namespace 命名空间名create_namespace network3.列出命名空间 语法 list_namespace4.查看命名空间详情 describe_namespace 命名空间名describe_namespace network5.删除命名空间 语法 drop_namespace 命名空间名drop_namespace network注意 删除命名空间时必须在该命名空间下没有表否则无法删除 6.在指定的命名空间下创建表 语法 create “命名空间名:表名”,”列簇名”create network:students,info在web ui 上查看 注意 使用带有命名空间的表用冒号将命名空间和表名连起来 7.添加数据到命名空间表 语法 put “命名空间名:表名”,”rowkey”,”列簇名:列名”,值put network:students,0001,info:name,张三 put network:students,0001,info:age,20 scan network:students,{FORMATTERtoString}八、列簇设计 HBase列蔟的数量应该越少越好一般情况下一个表只设计一个列簇 两个及以上的列蔟HBase性能并不是很好一个列蔟所存储的数据达到flush的阈值时表中所有列蔟将同时进行flush操作这将带来不必要的I/O开销列蔟越多对性能影响越大 九、版本设计 版本数一般设计为1 一般情况下如果对数据不做修改只保留一个版本可以节省大量的存储空间 describe network:students十、数据压缩 1.压缩算法 在HBase可以使用多种压缩编码包括LZO、SNAPPY、GZIP。只在硬盘压缩内存中或者网络传输中没有压缩。 压缩算法压缩后占比压缩解压缩GZIP13.4%21 MB/s118 MB/sLZO20.5%135 MB/s410 MB/sZippy/Snappy22.2%172 MB/s409 MB/s GZIP的压缩率最高但是其实CPU密集型的对CPU的消耗比其他算法要多压缩和解压速度也慢LZO的压缩率居中比GZIP要低一些但是压缩和解压速度明显要比GZIP快很多其中解压速度快的更多Zippy/Snappy的压缩率最低而压缩和解压速度要稍微比LZO要快一些 根据实际情况选择合适的压缩算法 2.查看表的压缩算法 HBase中的表默认不适用压缩进行数据压缩可以节省存储空间 3.设置数据压缩 1)创建新表的时候 语法 create 命名空间名:表名,{NAME 列簇名, COMPRESSION 压缩算法名}示例 create_namespace shop create shop:orders,{NAME C1,COMPRESSION GZ} describe shop:orders2)修改已有表的压缩算法 语法 alter “命名空间名:表名”,{NAME ‘列簇名’, COMPRESSION ‘压缩算法名’} 示例 create shop:goods,C1 alter shop:goods,{NAME C1, COMPRESSION GZ}十一、ROWKEY设计原则 1.避免使用递增行键/时序的数据 如果ROWKEY设计的都是按照顺序递增例如时间戳这样会有很多的数据写入时负载都在一台机器上。我们尽量应当将写入大压力均衡到各个RegionServer 2.避免rowkey和列的长度过大 在HBase中要访问一个Cell单元格需要有ROWKEY、列蔟、列名如果ROWKEY、列名太大就会占用较大内存空间。所以ROWKEY和列的长度应该尽量短小ROWKEY的最大长度是64KB建议越短越好 3.使用long等类型比String类型更节省空间 long类型为8个字节8个字节可以保存非常大的无符号整数例如18446744073709551615。如果是字符串是按照一个字节一个字符方式保存需要快3倍的字节数存储。 4.rowkey唯一性 设计ROWKEY时必须保证RowKey的唯一性由于在HBase中数据存储是Key-Value形式若向HBase中同一张表插入相同RowKey的数据则原先存在的数据会被新的数据覆盖。 5.避免数据热点 1)热点 热点是指大量的客户端client直接访问集群的一个或者几个节点可能是读、也可能是写大量地访问量可能会使得某个服务器节点超出承受能力导致整个RegionServer的性能下降其他的Region也会受影响 2)预分区 默认情况一个HBase的表只有一个Region被托管在一个RegionServer中 3)start key和end key 每个Region有两个重要的属性Start Key、End Key表示这个Region维护的ROWKEY范围如果只有一个Region那么Start Key、End Key都是空的没有边界。所有的数据都会放在这个Region中但当数据越来越大时会将Region分裂取一个Mid Key来分裂成两个Region 4)预分区的个数 预分区个数 节点的倍数。默认Region的大小为10G假设我们预估1年下来的大小为10T则10000G / 10G 1000个Region所以我们可以预设为1000个Region这样1000个Region将均衡地分布在各个节点上 5)rowkey避免数据热点设计 1.反转策略 如果设计出的ROWKEY在数据分布上不均匀但ROWKEY尾部的数据却呈现出了良好的随机性可以考虑将ROWKEY的翻转或者直接将尾部的bytes提前到ROWKEY的开头。 示例 182xxxx7890--0987xxx281182xxxx6379--9736xxx281182xxxx1355--5531xxx28120200911145043--3405411190020220200911145058--8505411190020220200911145501--10554111900202优点实现简单 缺点反转策略可以使ROWKEY随机分布但是牺牲了ROWKEY的有序性利于Get操作但不利于Scan操作因为数据在原ROWKEY上的自然顺序已经被打乱 2.加盐策略 在原来的rowkey的前面加上固定长度的随机数这个随机数就叫做盐这样使得rowkey具有随机性 优点rowkey的随机性能保障数据在所有的regionserver之间的负载均衡 缺点因为添加的是随机数基于原来的rowkey查询时无法知道随机数是什么会影响查询速度不适合数据的读取 3.哈希策略 基于 ROWKEY的完整或部分数据进行 Hash而后将Hashing后的值完整替换或部分替换原ROWKEY的前缀部分 这里说的 hash 包含 MD5、sha1、sha256 或 sha512 等算法 优点同加盐策略 缺点Hashing 也不利于 Scan因为打乱了原RowKey的自然顺序 十二、设置预分区 1.指定start key和end key来分区 1)创建预分区 语法 create_namespace test create test:t1,C1,SPLITS[10,20,30,40] 2)hbase的web ui查看分区的占用情况 点击t1表查看详情 2.指定分区的数量、分区策略 1)创建预分区 create test:t2,C1,{NUMREGIONS6,SPLITALGOHexStringSplit}2)hbase的web ui查看分区的占用情况 点击t2查看详情 3)分区数量 一般按照数据量来预估或者根据节点数的倍数来设定 4)分区策略 HexStringSplitrowkey是采用十六进制字符串作为前缀DecimalStringSplitrowkey采用十进制数字字符串作为前缀UniformStringSplitrowkey的前缀是随机的 十三、Phoenix的视图 Phoenix的视图就是对已经创建的HBase表建立映射关系从而实现对已有表的快速查询。 1.创建视图 语法 create view if not exists 命名空间名.表名 (Rowkey名 类型r primary key, 列簇.列名 类型, 列簇.列名 类型 …… );示例 create view if not exists shop.goods (id varchar primary key,C1.name varchar,C1.price varchar );2.查询数据 语法 select * from 命名空间名.表名 where 条件;示例 添加数据(hbase shell) put shop:goods,000001,C1:name,冰箱 put shop:goods,000001,C1:price,5800 put shop:goods,000002,C1:name,洗衣机 put shop:goods,000002,C1:price,3500查询 select * from shop.goods;十四、二级索引 一般情况下Hbase会根据rowkey建立索引来提供查询的速度这样的索引叫做一级索引。如果根据name进行查询因为没有根据name建立索引所以查询效率比较低这是可以给name来创建二级索引。 1.索引分类 全局索引本地索引覆盖索引函数索引 1)全局索引 全局索引适用于读多写少的业务全局索引主要的负载发生在写入操作时比如upsert、deletePhoenix会拦截数据表的更新构建索引更新开销比较大读取时Phoenix会选择最快的能够查询出数据的索引。全局索引一般要跟覆盖索引搭配使用 语法 create index 索引名称 on 表名(列名1列名2……);举例 添加数据 upsert into ORDER_1 values (000001,已完成,2000,1,494419,2024-04-20 12:00:30,手机); upsert into ORDER_1 values (000002,已付款,6666,1,494420,2024-04-20 12:00:30,电脑);创建视图 create index idxname on ORDER_1(CATEGORY);注意Phoenix中的索引其实底层还是Hbase的表结构这些索引表是专门用来加快查询速度。 2)本地索引 本地索引适合写操作频繁的场景在本地索引中索引数据和业务表数据存储在同一个服务器上加快写入的速度本地索引的数据是保存在一个影子列簇中 创建语法 create local index 索引名称 on 表名(列名1列名2……);3)覆盖索引 可以不需要在找到索引条目后返回到主表中可以将关心的数据捆绑在索引行中从而节省了读取的时间开销。 创建语法 create index 索引名称 on 表名(列名1列名2……) include(列名3);示例 create index idxcombo on ORDER_1(CATEGORY,STATUS,PAY_MONEY) include(USER_ID);4)函数索引 适用于高版本的phoenix可以基于任意表达式函数创建索引 语法 create index 索引名称 on 表名(函数名(列名1)列名2……);2.创建索引 create index idxsuerid on ORDER_1(C1.USER_ID) include(ID,C1.PAY_MONEY);3.根据索引查询数据 select C1.USER_ID,ID,C1.PAY_MONEY from ORDER_1 where C1.USER_ID494419;注意查询的时候还是得加上列簇。 4.删除索引 drop index 索引名 on 表名示例 drop index IDXCOMBO on ORDER_1;5.查看索引 参考文章 全文检索 刚搭完HBase集群Phoenix一启动HBase就全崩了是什么原因? Phoenix映射hbase原表实现 HBase系列四、HBase优化之RowKey 设计
http://www.hkea.cn/news/14453275/

相关文章:

  • 福州建网站第三方网站备案
  • 文昌网站建设全包网站开发代淘宝店铺装修
  • 做外贸怎样上外国网站建设校园网站公司
  • 如何自建网站接广告网站开发素材包
  • wordpress 小说免费网站做seo
  • 网站建设哪些是需要外援的问题免费ps素材图片大全
  • 重庆网站建设尚智逢源企业网站规划方案
  • 企业网站建设一般原则天津建设公司网站
  • 软件网站开发市场前景江门seo排名优化
  • 展示型网站系统关系营销
  • 宁波搭建网站公司海南网站建设哪家不错
  • 响应式网站的特点海外网络推广培训
  • 有做lol直播网站seo研究中心论坛
  • 设计网站官网入口乌兰察布做网站公司
  • 百度推广是给做网站吗php做网站主题
  • 卖网站链接做暧视频网站
  • 可以查企业备案的网站吗建网站需要数据库吗
  • 青岛个人建站模板金融公司网站模板
  • 网站建设公司伟置网站开发学多久
  • php网站开发中如何seo网站结构优化
  • 打折网站模板wordpress批量倒入txt
  • 福建福州最新情况优化培训课程
  • seo是做网站响应式WordPress企业主题
  • 如何从下载的视频查到原网站企业网站制作方法
  • 企业网站的建设怎么收费免费的云服务器有哪些
  • 用凡客建站做的网站有哪些googleseo專業
  • 做网站设计服务商自学广告设计该怎么入手
  • 行业商城网站建设多少钱wordpress joomla drupal
  • 网站分析流程织梦cms和wordpress
  • 招生就业网站开发详情网站建设代码合同