首页 文章 精选 留言 我的

精选列表

搜索[最佳实践],共10001篇文章
优秀的个人博客,低调大师

Hive Tunning(三) 最佳实践

在上一讲的基础上,我们来做来一个实际的例子来展示如何在实操中进行高效的hive查询作业。 (1)首先我们建立一个表 CREATE EXTERNAL TABLE pos_staging( txnid STRING, txntime STRING, givenname STRING, lastname STRING, postalcode STRING, storeid STRING, indl STRING, productid STRING, purchaseamount FLOAT, creditcard STRING )ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' LOCATION '/user/hdfs/staging_data/pos_staging'; 我们建立一张外部表是为了初始化或者加载mapreduce或者pig作业产生的元数据,然后我们自己建立一张优化的表。 (2)建立调优表的时候,我们就要考虑使用哪种分区模式,比如按时间分区。 以下是两个关于动态分区的参数: 所有节点的动态分区的最大数以及每个节点的动态分区的最大数 hive.exec.max.dynamic.partitions=1000 hive.exec.max.dynamic.partitions.pernode=100 (3)建立调优表 CREATE TABLE fact_pos ( txnid STRING, txntime STRING, givenname STRING, lastname STRING, postalcode STRING, storeidSTRING, indl STRING, productid STRING, purchaseamountFLOAT, creditcardSTRING ) PARTITIONED BY (part_dt STRING)! CLUSTERED BY (txnid) SORTED BY (txnid) INTO 24 BUCKETS STORED AS ORC tblproperties("orc.compress"="SNAPPY"); CLUSTERED 和SORTED 使用都是同一个字段,它就是连接的时候需要使用的字段。 BUCKETS也出现了,前面一直不理解的概念,现在出现了还分了24个。 (4)把数据插入到调优表中 FROM pos_staging INSERT OVERWRITE TABLE fact_pos PARTITION (part_dt) SELECT txnid, txntime, givenname, lastname, postalcode, storeid, indl, productid, purchaseamount, creditcard, concat(year(txntime),month(txntime)) as part_dt SORT BY productid; 语句中使用了前面教的自动分区的语句,按照年月自动分区。 hadoop fs-setrep-R –w 5 /apps/hive/warehouse/fact_pos 上面的命令当中是个hdfs中存数的fact_pos表增加备份,因为hdfs的数据是存得很分散的,增加备份因为会使得节点上的数据增多,然后查询的时候,hive 从本地直接就可以获取到的数据的几率提高,增快查询速度。 当然考虑到空间的问题,可以减少一下备份的数量。 上述流程我们也可以把它放到oozie中自动执行。 。。。又一个熟悉的词出现了。 在hdfs-site.xml或者Ambari settings for HDFS, 设置完要重启。 dfs.block.local-path-access.user=hdfs dfs.client.read.shortcircuit=true dfs.client.read.shortcircuit.skip.checksum=false 开启了这个东东有什么作用呢?当数据块在本地的时候,它可以不需要开启一个端口来读,可以直接访问,就像图中的闪电那样。 (5)执行查询 set hive.mapred.reduce.tasks.speculative.execution=false; set io.sort.mb=300; set mapreduce.reduce.input.limit=-1; select productid, ROUND(SUM(purchaseamount),2) as total from fact_pos where part_dt between ‘201210’ and ‘201212’ group by productid order by total desc limit 100; 查询之前先对查询设置相应的运行参数。

优秀的个人博客,低调大师

PostgreSQL Huge Page使用最佳实践

对于重度依赖于内存的应用数据库而言,hugepage是经常会被使用的。例如在Oracle中我们一般建议当SGA大于8GB时使用hugepage,而在postgresql中我们也建议当内存较大的时候开启hugepage。 为什么呢?这是因为Linux需要维护虚拟内存地址与物理内存的映射关系,为了提升转换性能,最好这部分能够cache在cpu的cache里面。页越大,映射表就越小。使用huge page可以减少页表大小。 接下来我们来看看pg中hugepage的设置方法。 设置方法: 1、首先我们需要看看数据库使用了多少内存。 获得PID $ head -1 $PGDATA/postmaster.pid 4170 计算数据库启动用了多少内存,指定进程ID $ pmap 4170 | awk ‘/rw-s/ && /zero/ {print $2}’ 6490428K 2、计算需要使用多少hugepage 查看hugepage页大小 grep ^Hugepagesize /proc/meminfo Hugepagesize: 2048 kB 计算需要多少hugepage(或者直接使用shared_buffer/hugepage页大小) 6490428 / 2048 = 3169.15 一般建议设置大于内存数,因为这里我们取整为:3170 3、分配hugepage vi /etc/sysctl.conf vm.nr_hugepages = 3170 sysctl -p 4、设置数据库参数 huge_pages = on # 或者try shared_buffers = 64GB # 使用64G内存 5、重启数据库并查看hugepage使用情况 cat /proc/meminfo |grep -i huge AnonHugePages: 6144 kB HugePages_Total: 3170 ## 设置的HUGE PAGE HugePages_Free: 3170 ## 这个是当前剩余的,但是实际上真正可用的并没有这么多,因为被PG锁定了3170个大页 HugePages_Rsvd: 3170 ## 启动PG时申请的HUGE PAGE HugePages_Surp: 0 Hugepagesize: 2048 kB ## 当前大页2M 注意事项: 1、当配置参数huge_pages设置为on时,若PG启动时需要注册的共享内存大于操作系统提供的Huge Page大小时,数据库将无法启动。推荐将huge_pages参数设置为try,在此种场景下,PostMaster将会改为申请普通内存。 2、如果连接数较少时,使用HUGE PAGE性能不如不使用。因此我们可以尽量使用连接池,减少连接数,提升性能。

优秀的个人博客,低调大师

Kafka数据迁移MaxCompute最佳实践

前提条件搭建Kafka集群进行数据迁移前,您需要保证自己的Kafka集群环境正常。本文使用阿里云EMR服务自动化搭建Kafka集群,详细过程请参见:Kafka 快速入门。 本文使用的EMR Kafka版本信息如下:EMR版本: EMR-3.12.1集群类型: Kafka软件信息: Ganglia 3.7.2 ZooKeeper 3.4.12 Kafka 2.11-1.0.1 Kafka-Manager 1.3.3.16Kafka集群使用专有网络,区域为华东1(杭州),主实例组ECS计算资源配置公网及内网IP,具体配置如下图所示。 创建MaxCompute 项目开通MaxCompute服务并创建好项目,本文中在华东1(杭州)区域创建项目bigdata_DOC,同时启动DataWorks相关服务,如下图所示。详情请参见开通MaxCompu

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册