Hadoop大数据平台-测试报告及成功案例(2)

2019-02-17 10:49

Cloudera建议在生产系统中使用Cloudera Manager与CDH所支持 (经过全面测试) 的操作系统。目前EDH 5.4前的版本官方支持RHEL 6.5,EDH 5.4+ 支持 RHEL 6.6。目前某银行系统普遍采用RHEL 6.6。

域名正向/反向解析通过DNS执行。管理节点域名为 hods-n01和hods-n02;计算节点域名为hods-d01、hods-d02、hods-d03和hods-d04。

Hadoop集群中的所有机器必须使用同样的时间 (包括时区)。Cloudera建议使用网络时间协议 (Network Time Protocol,简称NTP)作集群间节点的时间同步。

Cloudera一般建议用户关闭SELinux。某银行并不使用SELiunx。

Cloudera一般建议用户关闭IP tables (防火墙)。某银行要求使用IP tables。为了保证集群中服务的正常通信,需要在集群机器上打开相应端口保证集群服务可以绕过防火墙。具

http://www.cloudera.com/content/cloudera/en/documentation/core/latest/topics/cm_ig_ports.html。

1.1.1.2 集群部署

Cloudera Manager Alert Publisher Event Server Host Monitor Service Monitor Reports Manager Navigator Cloudera Database Zookeeper hods-n01, hods-n02, hods-d01 Embedded hods-n01 hods-n01 hods-n01 5

NameNode HDFS Failover Controller JournalNode DataNode ResourceManager NodeManager HBase Master HBase RegionServer Sentry Server Oozie Server Hue Server Impala Catalog Server Impala StateStore Impala Daemon Hive Gateway hods-n01, hods-n02 hods-n01, hods-n02, hods-d01 hods-d02, hods-d03, hods-d04 hods-n01, hods-n02 hods-d02, hods-d03, hods-d04 hods-n01, hods-n02 hods-d02, hods-d03, hods-d04 hods-n01 hods-n01 hods-n01 hods-n01 hods-n01 hods-d02, hods-d03, hods-d04 hods-n01, hods-n02, hods-d01, hods-d02, hods-d03, hods-d04 注:在POC测试环境中并没有设计边缘节点,因此Hadoop服务的客户端配置部署在集群的所有机器上。

1.1.1.3 POC测试

1.1.1.3.1 数据加载测试 HDFS数据加载

测试步骤:

1. 对测试数据 (57GB 2014年交易流水表) 通过命令md5sum计算校验码 2. 将测试数据直接通过命令 “hdfs dfs -put” 上传至HDFS

6

3. 使用命令 ”hdfs dfs -get” 导出数据,并使用命令md5sum重新计算校验码 4. 确认两次计算的校验码完全一致

上传时间:4.8m

执行过程中,无论磁盘、CPU、网络都没有出现瓶颈。

其他数据加载的方案讨论:

1. 将不同数据文件放在不同磁盘上提高磁盘吞吐量

2. 定制Java程序:在上传文件过程中,对数据分片(e.g. 10GB),并使用Snappy压缩

HBase数据加载

测试步骤:

1. 使用Impala(或者hive)对要导入的数据进行ETL 2. 将生成的大表利用HBase bulkload导入HBase

Impala ETL时间 (参考, 不作为测试依据):4.2h,生成数据行数为1,986,709,856 (文件格式Parquet,文件大小171GB)

HBase bulkload时间:6.8h,生成HFile的大小为887.9GB

1.1.1.3.2 数据导出测试

Hive表数据导出

7

测试步骤:

1. Hive创建一张与待导出表完全相同的数据表export,并设置对应的数据格式 (例如使

用‘|’作为分隔符)

2. HiveETL 将数据导入到export表中

3. 使用 “hdfs dfs -get” 从HDFS中导出数据

Snappy+Parquet => txt “Group by” 13.31s SQL “Join” SQL

HBase表数据导出

测试步骤:

1. Hive中创建一张数据表,映射到HBase

2. Hive中创建一张与HBase映射表完全一致的数据表export,并设置对应的数据格式

(例如使用‘|’作为分隔符) 3. Hive ETL将数据导入到export表中

4. 使用 “hdfs dfs -get” 从HDFS中导出数据

Hive ETL时间:11.4h,生成文件大小971.1GB HDFS导出数据时间:59.8m

38.38s 25s 57152010 3.3GB 导出txt 到本地磁盘 11s 导出数据 行数 18336384 导出数据 文件大小 837MB 8

1.1.1.3.3 统计分析性能

Hive/Impala的测试包括两类非常典型的SQL操作:使用group by的聚合操作以及使用join的关联操作: select his.tran_date, his.branch, his.tran_type, sum(his.tran_amt), count(*), count(distinct his.base_acct_no), his.cr_dr_maint_ind, his.ccy from sym_rb_tran_hist his group by his.tran_date, his.branch, his.tran_type, his.cr_dr_maint_ind, his.ccy; select fmc.client_no, acct.base_acct_no, trans.tran_amt, trans.tran_date, acct.internal_key from sym_fm_client fmc left join sym_rb_acct acct on fmc.client_no = acct.client_no left join sym_rb_tran_hist trans on acct.internal_key = trans.internal_key where fmc.acct_exec in ('0101', '0201', '2801') and fmc.client_type in ('100', '300') and acct.acct_desc like '%对私%';

测试HBase时,首先需要对3张表进行汇总,生成一张大表用于HBase的数据导入与查询: drop table if exists tran_hist_hbase; create table tran_hist_hbase row format delimited fields terminated by '|' stored as textfile as select fmc.client_no, fmc.client_grp, fmc.client_name, fmc.client_type, fmc.rep_doc_id, trans.* from sym_fm_client_snappy fmc 9


Hadoop大数据平台-测试报告及成功案例(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:汽车客运站目前状况及未来发展趋势

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: