知识点
相关文章
更多最近更新
更多[Hadoop] Hive 性能+特性
2019-03-28 14:07|来源: 网络
[Hadoop] Hive 性能
利用Hive Bulk Inport数据到Hbase http://wiki.apache.org/hadoop/Hive/HBaseBulkLoad
生成测试数据
/home/bmb/jdk1.6.0_16/bin/java -cp examples.zip examples.CreateLogFile 1 1000000
/home/bmb/jdk1.6.0_16/bin/java -cp examples.zip examples.CreateLogFile 1000000 2000000
/home/bmb/jdk1.6.0_16/bin/java -cp examples.zip examples.CreateLogFile 2000000 3000000
创建性能测试表
不带压缩的测试表
drop table p_test_data;
CREATE TABLE p_test_data (
id INT,
content STRING,
time STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
导入数据
LOAD DATA LOCAL INPATH '/home/iic/hadoop-0.20.2/test_0_1000000.log' INTO TABLE p_test_data;
LOAD DATA LOCAL INPATH '/home/iic/hadoop-0.20.2/test_1000000_2000000.log' INTO TABLE p_test_data;
LOAD DATA LOCAL INPATH '/home/iic/hadoop-0.20.2/test_2000000_3000000.log' INTO TABLE p_test_data;
set mapred.reduce.tasks=1;
select count(a.id) from p_test_data a;
Time taken: 27.265 seconds
select a.id,a.content,a.time from p_test_data a where a.id=1;
Time taken: 18.086 seconds
INSERT OVERWRITE DIRECTORY '/tmp/p_test_data_out'
select a.time,count(1) from p_test_data a group by a.time;
Time taken: 32.899 seconds
带压缩的测试表
(框架检测到输入文件的后缀是.gz和.lzo,就会使用对应的CompressionCodec自动解压缩这些文件 )
drop table p_com_test_data;
CREATE TABLE p_com_test_data (
id INT,
content STRING,
time STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
tar cvf 0_100W.tar test_0_1000000.log
gzip 0_100W.tar
tar cvf 100_200W.tar test_1000000_2000000.log
gzip 100_200W.tar
tar cvf 200_300W.tar test_2000000_3000000.log
gzip 200_300W.tar
导入数据
LOAD DATA LOCAL INPATH '/home/iic/hadoop-0.20.2/0_100W.tar.gz' INTO TABLE p_com_test_data;
LOAD DATA LOCAL INPATH '/home/iic/hadoop-0.20.2/100_200W.tar.gz' INTO TABLE p_com_test_data;
LOAD DATA LOCAL INPATH '/home/iic/hadoop-0.20.2/200_300W.tar.gz' INTO TABLE p_com_test_data;
select a.time,count(1) from p_com_test_data a group by a.time;
Time taken: 26.31 seconds
此例子是针对小量文件的压缩和不压缩的性能测试,虽然不代表最终结果,但是从本次测试可以发现,压缩的效率更高,
可能是因为压缩文件是作为整个Block给Map,减少了InputSplit的检测和分析。
相关问答
更多-
哪个不是Hadoop 的核心组件 hbase hive zookeeper riak[2022-04-10]
riak 华师大的吧- - 下面来简单介绍各个组件的作用: HDFS(Hadoop distribute file system)——Hadoop生态系统的基础组件Hadoop分布式文件系统。它是其他一些工具的基础HDFS的机制是将大量数据分布到计算机集群上,数据一次写入,但可以多次读取用于分析。HDFS让Hadoop可以最大化利用磁盘。 HBase—— 一个构建在HDFS之上的面向列的NoSql数据库,HBase用于对打量数据进行快速读取/写入。HBase将Zookeeper用于自身的管理,以保证其所有组 ... -
oracle 中的 nulls last 在 hadoop 的 hive 上 怎么写。。[2022-05-08]
order by nulls last 不是标准sql,oracle设计的 可以这么写,再指定一个虚拟列来辅助排序 order by case when col is null then 0 else 1 end , col desc -
hadoop单机模式可以安装hive吗?[2022-07-09]
当然可以了。hive只是一个数据仓库的工具。运行一些HQL语句。不一定非得分布式。 -
如何使用Hadoop提升Hive查询性能[2023-06-18]
将原始数据大小为260M的txt文件放入hdfs。并配置了Hive环境做数据查询测试。由于原始数据太小,要做GB以上的文件测试。 并且分别拷贝10、50、100、200、300、400、500份原始数据做成对应的大数据文件。 分别对这些数据使用hiveQL查询相同的数据,然后记录不同大小的数据查询的结果。做成一个图表。然后再添加一个slave计算节点,负载均衡后再使用相同的hiveQL语言查询相同的数据集,记录对应的结果。 -
Hadoop Hive缓慢查询(Hadoop Hive slow queries)[2023-09-30]
是的,你错误地解释了Hadoop。 Hadoop和Hive也不是实时的东西。 他们最适合离线,批处理的东西。 它们完全不是RDBMS的替代品。 虽然你可以做一些微调,但'绝对实时'是不可能的。 当你运行蜂巢式查询时,有很多事情发生在引擎盖下,我认为你并不知道。 首先,你的Hive查询被转换成相应的MR作业,接下来是几个其他事情,如分割创建,记录生成,映射器生成等。如果你有实时需求,我绝不会建议Hadoop(或Hive)。 您可能想看看Impala是否适合您的实时需求。 Yes..you have misin ... -
Hive与HBase相比如何?(How does Hive compare to HBase?)[2022-01-26]
很难找到关于Hive的许多内容,但是我发现Hive网站上的这个代码片段大大地偏向了HBase(大胆的添加): Hive基于Hadoop,这是一个批量处理系统。 因此,该系统不能也不能承诺对查询的低延迟 。 这里的范例严格是提交作业,并且在作业完成而不是实时查询时被通知。 因此,它不应与像Oracle这样的系统进行比较,其中对数据量很少的数据进行分析,但分析反复进行得更多,迭代次数少于几分钟。 对于Hive查询,甚至最小的工作的响应时间可以是5-10分钟,而对于较大的工作,这甚至可能会在数小时内运行。 由于H ... -
MapReduce只是一个计算框架 。 HBase与此无关。 也就是说,您可以通过编写MapReduce作业来有效地将数据提取到/从HBase中获取。 或者,您可以使用其他HBase API(如Java)编写顺序程序来放置或获取数据。 但是我们使用Hadoop,HBase等来处理大量的数据,所以没有什么意义。 当您的数据太大时,使用正常的顺序程序将非常低效。 回到你问题的第一部分,Hadoop基本上是两件事:一个分布式文件系统(HDFS) +一个计算或处理框架(MapReduce) 。 像所有其他FS一样, ...
-
由于您的查询不包含“where”谓词,因此即使您的数据采用ORC格式,也无法享受0.12中引入的Predicate Pushdown to storage layer。 因此,尽管在0.12项改进中,计划生成和COUNT的优化速度更快,但我认为,有根据的猜测应该是性能改进不会是戏剧性的。 Since your query doesn't contain "where" predicate, you cannot enjoy Predicate Pushdown to storage layer introd ...
-
HBase中的数据仅由rowkey“索引”。 如果您在Hive中查询除rowkey前缀之外的任何内容,则通常会执行全表扫描。 可以使用HBase过滤器进行一些优化,例如,当使用FamilyFilter时,您可以跳过整个区域,但我怀疑Hive正在这样做。 如何提高性能取决于数据的形成方式以及需要对其执行的分析。 在执行频繁的临时分析时,可以通过将HBase中的数据导出到HDFS上的Parquet文件以及针对Hive(或Drill或Spark,Imapala等)的分析来运行您的分析,从而提供更好的服务。 Dat ...
-
Tableau,Hadoop和Birt(Tableau, Hadoop & Birt)[2022-01-14]
经过大量的研究,为了回答这个问题,我也通过了HDP。 然后我遇到了一个难题,我们无法比较SQL Db与Hadoop的性能,因为它们都用于不同的目的。 此外,只有在数据超过几TB的限制(即SQL数据库失败的情况)之后,Hadoop才会显示其性能。 因此,如果首先检查一个应用程序是否会更好。 如果有性能要求,选择Hadoop并不是一个好的选择; 去找SQL数据库。 但是,如果应用程序具有大量的数据,并且必须对SQL DB出现故障的大量数据进行分析, 在这种情况下,Hadoop很流行。 After lot of ...