热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用OracleLoadForHadoop(OLH)实现数据湖到Oracle数据库数据集成

1前言        企业在建设数据平台过程中,凭借大数据解决方案,企业能够收集处理大量低结构化的原始数据(如 Web 日志、社交媒体数据、电子邮件、传感器数据和位置数据),它们可

1 前言

图片

    

    企业在建设数据平台过程中,凭借大数据解决方案,企业能够收集处理大量低结构化的原始数据(如  Web  日志、社交媒体数据、电子邮件、传感器数据和位置数据),它们可以为业务应用程序提供丰富的实用信息。同时,在企业中关系数据库(大多数商业应用所采用的平台)中包含一些关键数据。在实施全数据分析的过程中,通常需要结合关系数据库中的数据和Hadoop数据池数据,从而获取更深入的洞察。

    然而,Hadoop 上的数据必须经过一系列技术和工具(即“连接器”)的处理后才可由数据库进行分析。本文主要描述了如何实现快速加载Hadoop上的海量数据导入到Oracle关系数据库中,以帮助企业实现真正的全数据分析。



2  Oracle Big Data Connector介绍

图片

2.1 Oracle Big Data Connectors介绍

     Oracle Big Data Connectors 是Oracle开发的一个用于集成 Apache Hadoop 发行版与 Oracle  数据库的软件套件。它赋予了使用 Hadoop 处理和分析大量数据,同时结合使用Oracle数据库数据以获得新的关键业务洞察的能力。 

Oracle  Big Data Connectors 将 Hadoop 与 Oracle 数据库连接在一起,并针对 Hadoop 和 Oracle  数据库进行了优化,为大数据解决方案提供了必要的基础架构。它包括将数据从 Hadoop 快速加载到 Oracle 数据库的工具、在 Hadoop 与  Oracle 数据库之间进行数据访问的工具,以及在 Hadoop 中执行 R 和 XML  分析的工具,以支持信息发现、深度分析,以及企业中所有数据的快速集成。

这个软件套件包含以下组件:

  • Oracle Loader for Hadoop

  • Oracle SQL Connector for Hadoop Distributed File System (HDFS)

  • Oracle Data source for Apache Hadoop

  • Oracle Advanced Analytics for Hadoop

  • Oracle XQuery for Hadoop

 

Oracle Big Data Connectors 同时支持企业私有部署和云部署,为大数据应用程序提供了丰富的特性、安全性和高速连通性。

 

图片

 

本文主要介绍了其中的OracleLoader for Hadoop(OLH)这个组件,实现了将Hadoop数据快速导入到Oracle数据库的数据集成能力。


2.2 Oracle Loader For Hadoop介绍

Oracle  Loader for Hadoop(OLH) 是一个可将数据从 Hadoop 快速导入Oracle 数据库的高性能加载工具。Oracle  Loader for Hadoop实现原理是在Hadoop 上利用Hadoop  计算资源对数据进行分类、分区、数据类型转换,然后再加载到数据库中。首先,OLH将数据转换为Oracle 类型减少了加载过程中对数据库 CPU  的使用,从而极大地减少了对数据库应用程序的影响。其次,OLH采用了创新的采样技术,可智能地将数据采集分布到各个Hadoop节点,同时以并行方式加载数据。第三,OLH  它本身可以支持多种来源加载数据:文本文件、Hive 表、日志文件(解析并加载)、Oracle NoSQL Database  等。此外,Oracle Loader for Hadoop 还可以通过用户提供的自定义输入格式实现来读取专有的数据格式。

其中OLH具备以下一些特点:

图片

OLH 加载选项描述:

Oracle  Loaderfor Hadoop 提供了联机和脱机加载选项。使用联机加载选项时,预处理数据和将数据加载到数据库都是 OracleLoader  for Hadoop 作业的必要环节。每项化简任务都会与 Oracle 数据库建立一个连接,从而并行地将数据加载到数据库。数据库必须在  Oracle Loader for Hadoop 执行处理期间维持可用性。

使用脱机加载选项时,每个化简任务都会创建一个写入到 HDFS 的 Oracle 数据泵文件。在此期间,数据库可以处于脱机状态。随后,用户可以使用 Oracle Direct Connector for HDFS 将数据加载到数据库中。

本文主要介绍了联机加载选项。


3   Oracle Load For Hadoop(OLH)安装配置

图片

3.1 部署结构图

OLH  作为一个Java  Application,通过运行Mapreduce作业,利用大数据平台的分布式计算能力,完成对Hadoop上的文件进行数据读取,类型识别和转换工作,采用数据流的方式,将数据从Hadoop上采集后通过数据库OCI接口写入Oracle数据库中,从而实现Oracle数据表加载来自Hadoop大数据平台HDFS、Hive等的数据。

因此,OLH的部署可以采用单独环境部署,在Hadoop任意节点部署,在Oracle任意数据库节点部署的方式。

 图片

3.2  安装准备

  • Hadoop平台版本:HDP 3.1.4.0-315

  • Oracle 版本:Oracle 19.8

  • Oracle Loader forHadoop Release 5.1.1安装介质下载:

https://download.oracle.com/otn/other/bigdata/oraloader-5.1.1.x86_64.zip

 

IP

名称

描述

10.0.0.2

Master

Hadoop Namenode

10.0.0.3

Datanode1

Hadoop Datanode

10.0.0.4

Datanode2

Hadoop Datanode

10.0.0.5

Datanode3

Hadoop Datanode

10.0.0.6

bigdata-db-1

Oracle数据库和OLH运行环境

 

3.3  配置Hadoop和Hive客户端

在OLH 运行环境进行操作,配置Hadoop和Hive客户端。

 

1.把HDP 1号节点的mapreduce.tar.gz文件上传到OLH 运行环境端的/u01/bdc目录:

scp /usr/hdp/current/hadoop-client/mapreduce.tar.gz root@10.0.0.6:/u01/bdc

在OLH 运行环境解压到/u01/bdc目录

 

2.把HDP 1号节点/usr/hdp/current/hive-client/hive.tar.gz文件上传到OLH 运行环境的/u01/bdc目录

scp /usr/hdp/current/hive-client/hive.tar.gz root@10.0.0.6:/u01/bdc

在OLH 运行环境解压到/u01/bdc目录

 

3.进入HDP 1号节点,把/usr/hdp/3.1.4.0-315目录下的所有包生成tar包.

tar -czvf/usr/hdp/3.1.4.0-315.tar.gz /usr/hdp/3.1.4.0-315/*

并把3.1.4.0-315.tar.gz文件传到OLH 运行环境的/u01/bdc目录

scp /usr/hdp/3.1.4.0-315.tar.gz root@10.0.0.6:/u01/bdc

 在OLH 运行环境解压到/usr/hdp目录,解压之后的路径如下:

图片


4.在Ambari中下载hdfs和hive的客户端配置文件,并把配置文件放到OLH 运行环境的/u01/bdc目录中

解压之后目录结构如下:

 图片

5. 配置环境变量~/.bash_profile


使用oracle用户登陆操作系统,增加如下环境变量:

export HADOOP_HOME=/u01/bdc/hadoopexport HADOOP_CONF_DIR=/u01/bdc/hadoop-confexport HIVE_HOME=/u01/bdc/hiveexport HIVE_CONF_DIR=/u01/bdc/hive-confexport JAVA_HOME=/usr/local/jdk1.8.0_261
export PATH=$HADOOP_HOME/bin:$HIVE_HOME/bin:$OSCH_HOME/bin:$PATHexport HADOOP_CLASSPATH=:$HIVE_HOME/lib/*:$HADOOP_CLASSPATH

6. 验证,执行hdfs dfs –ls / 能查看到hdfs中的目录,说明配置成功。

图片


3.4 安装配置Oracle数据库客户端

在OLH运行环境中,安装配置Oracle数据库客户端。

 

3.5 配置OLH运行环境

1. 把下载的olh包上传到安装节点的/u01/bdc目录,并解压,解压之后的目录如下:

2. 配置环境变量,增加如下环境变量。

export OLH_HOME=/u01/bdc/orahdfs-5.0.0export PATH=$HADOOP_HOME/bin:$HIVE_HOME/bin:$OLH_HOME/bin:$PATHexport HADOOP_CLASSPATH=$OLH_HOME/jlib/*:$HADOOP_HOME/lib/*:$HIVE_HOME/lib/*:$HADOOP_CLASSPATH



配置之后的环境变量如下:

图片


3.6  DB端创建数据导入用户

在Oracle数据库中创建bdcdemo用户,并赋予相应的权限,用于数据导入操作。

sqlplus / as sysdba;create user bdcdemo identified by welcome1;grant connect to bdcdemo;grant resource to bdcdemo;grant dba to bdcdemo;grant CREATE TABLE,CREATE VIEW,CREATE SESSION,ALTER SESSION to bdcdemo;GRANT EXECUTE ON sys.utl_file TO bdcdemo;


4  Oracle Load For Hadoop 测试

图片

4.1  准备测试数据

测试数据为Text格式的文本文件part-r-00000。

图片

测试数据如下:

图片

把数据上传到hdfs中的/user/oracle/bdws/olh/data目录:

hdfs dfs -mkdir /user/oracle/bdws/olh/datahdfs dfs -put /u01/bdc/bdws/olh/data/*/user/oracle/bdws/olh/data

 

4.2  HDFS TEXTFILE文件测试

1. 使用sqlplus创建Oracle 表作为导入目标表。

sqlplus bdcdemo/welcome1@10.0.0.6:1521/orclDROP TABLE OLH_DEMO_OCI;CREATE TABLE OLH_DEMO_OCI("SESSION_ID" NUMBER,"TIME_ID" DATE,"CUST_ID"             NUMBER,"DURATION_SESSION"    NUMBER,"NUM_RATED"           NUMBER,"DURATION_RATED"      NUMBER,"NUM_COMPLETED"       NUMBER,"DURATION_COMPLETED"  NUMBER,"TIME_TO_FIRST_START" NUMBER,"NUM_STARTED"         NUMBER,"NUM_BROWSED"         NUMBER,"DURATION_BROWSED"    NUMBER,"NUM_LISTED"          NUMBER,"DURATION_LISTED"     NUMBER,"NUM_INCOMPLETE"      NUMBER,"NUM_SEARCHED"        NUMBER)PARTITION BY HASH(CUST_ID);

2. 创建导入配置xml文件,olh_demo_oci.xml,文件内容如下:


mapreduce.inputformat.classoracle.hadoop.loader.lib.input.DelimitedTextInputFormat

mapred.input.dir/user/oracle/bdws/olh/data

oracle.hadoop.loader.input.fieldTerminator\u0009

mapreduce.outputformat.classoracle.hadoop.loader.lib.output.OCIOutputFormat

mapred.output.dirtemp_out_session

oracle.hadoop.loader.loaderMap.targetTableolh_demo_oci

oracle.hadoop.loader.input.fieldNamesSESSION_ID,TIME_ID,CUST_ID,DURATION_SESSION,NUM_RATED,DURATION_RATED,NUM_COMPLETED,DURATION_COMPLETED,TIME_TO_FIRST_START,NUM_STARTED,NUM_BROWSED,DURATION_BROWSED,NUM_LISTED,DURATION_LISTED,NUM_INCOMPLETE,NUM_SEARCHED

oracle.hadoop.loader.defaultDateFormatyyyy-MM-dd:HH:mm:ss

oracle.hadoop.loader.connection.urljdbc:oracle:thin:@${HOST}:${TCPPORT}/${SERVICE_NAME}

TCPPORT1521

HOSTlocalhost

SERVICE_NAMEorcl

oracle.hadoop.loader.connection.userbdcdemo

oracle.hadoop.loader.connection.passwordwelcome1 Having password in cleartext is NOT RECOMMENDED - use Oracle Wallet instead

oracle.hadoop.loader.logBadRecordstrue

3. 创建导入脚本olh_demo_oci.sh,脚本内容如下:

export HADOOP_CLASSPATH="$OLH_HOME/jlib/*:$HIVE_HOME/lib/*:/etc/hive/conf:$HADOOP_CLASSPATH"
hdfs dfs -rm -r -f /user/oracle/temp_out_sessionhadoop jar ${OLH_HOME}/jlib/oraloader.jar \       oracle.hadoop.loader.OraLoader \       -conf /u01/bdc/bdws/olh/olh_demo_oci.xml \       -D mapred.reduce.tasks=2

4. 也可以不使用xml配置文件,直接创建脚本进行执行,例如:

$ cat olh_hdfs_txt.sh#!/bin/bash
export HADOOP_CLASSPATH="${OLH_HOME}/jlib/*:${HIVE_HOME}/lib/*:/etc/hive/conf:$HADOOP_CLASSPATH"
export OUTPUT_DIR=/user/hive/temp_out_texthdfs dfs -rm -r -f $OUTPUT_DIR
hdfs dfs -rm -r -f $OUTPUT_DIRhadoop jar ${OLH_HOME}/jlib/oraloader.jar \   oracle.hadoop.loader.OraLoader \  -D mapred.reduce.tasks=2 \  -D mapreduce.inputformat.class=oracle.hadoop.loader.lib.input.DelimitedTextInputFormat \  -D mapred.input.dir='/user/oracle/bdws/olh/data' \  -D oracle.hadoop.loader.input.fieldTerminator='\u0009' \  -D mapreduce.outputformat.class=oracle.hadoop.loader.lib.output.OCIOutputFormat \  -D oracle.hadoop.loader.connection.url='jdbc:oracle:thin:@${HOST}:${TCPPORT}/${SERVICE_NAME}' \  -D TCPPORT=1521 \  -D HOST=10.0.0.3 \  -D SERVICE_NAME=orcl \  -D oracle.hadoop.loader.connection.user=bdcdemo \  -D oracle.hadoop.loader.connection.password=welcome1 \  -D oracle.hadoop.loader.loaderMap.targetTable=olh_demo_oci \  -D oracle.hadoop.loader.input.fieldNames=SESSION_ID,TIME_ID,CUST_ID,DURATION_SESSION,NUM_RATED,DURATION_RATED,NUM_COMPLETED,DURATION_COMPLETED,TIME_TO_FIRST_START,NUM_STARTED,NUM_BROWSED,DURATION_BROWSED,NUM_LISTED,DURATION_LISTED,NUM_INCOMPLETE,NUM_SEARCHED \  -D oracle.hadoop.loader.defaultDateFormat='yyyy-MM-dd:HH:mm:ss' \  -D oracle.hadoop.loader.logBadRecords=true \  -D mapred.output.dir=$OUTPUT_DIR

5. 执行数据装载操作

用oracle用户进入 /u01/bdc/bdws/olh目录,执行olh_demo_oci.sh 脚本:

图片

图片

6. 验证数据,执行如下脚本 :

sqlplus bdcdemo/welcome1@10.0.0.3:1521/orclset linesize 200;set pages 200;select count(1) from olh_demo_oci;select SESSION_ID, CUST_ID from olh_demo_oci where rownum<=10;

执行结果如下 :

 图片

4.3  Hive表数据同步测试

1. 准备数据集,在Hive中执行如下脚本:

use bdws;
drop table EXT_OLH_DEMO_OCI;CREATE EXTERNAL TABLE EXT_OLH_DEMO_OCI(SESSION_ID String,TIME_ID String,CUST_ID             String,DURATION_SESSION    String,NUM_RATED           String,DURATION_RATED      String,NUM_COMPLETED       String,DURATION_COMPLETED  String,TIME_TO_FIRST_START String,NUM_STARTED         String,NUM_BROWSED         String,DURATION_BROWSED    String,NUM_LISTED          String,DURATION_LISTED     String,NUM_INCOMPLETE      String,NUM_SEARCHED        String)STORED AS ORCLOCATION '/user/oracle/bdws/olh/data';
#Txt file, hive managed tablecreate table OLH_DEMO_TXT stored as textfile as select * from EXT_OLH_DEMO_OCI;
#orc file, hive managed tablecreate table OLH_DEMO_ORC stored as orc as select * from EXT_OLH_DEMO_OCI;
#Parquet file, hive managed tablecreate table OLH_DEMO_parquet stored as parquet as select * from EXT_OLH_DEMO_OCI;

2. 查询Hive 表数据

select SESSION_ID,time_id,cust_id from OLH_DEMO_ORC limit 10;select count(1) from OLH_DEMO_TXT;select count(1) from OLH_DEMO_ORC;select count(1) from OLH_DEMO_parquet;

图片

数据存放的位置如下:

Hive 外部表,Txt file: /user/oracle/bdws/olh/data图片

Hive 管理表,Txt file: /warehouse/tablespace/managed/hive/bdws.db/olh_demo_txt图片

Hive 管理表,Orc file:


Hive 管理表,Parquet file:

图片

3. 创建Oracle目标数据表

使用sqlplus登录到DB节点执行创建Oracle数据库表,用于数据装载。

sqlplus bdcdemo/welcome1@10.0.0.6:1521/orcl
DROP TABLE OLH_DEMO_ORC;CREATE TABLE OLH_DEMO_ORC("SESSION_ID" VARCHAR2(100),"TIME_ID" VARCHAR2(100),"CUST_ID"             VARCHAR2(100),"DURATION_SESSION"    VARCHAR2(100),"NUM_RATED"           VARCHAR2(100),"DURATION_RATED"      VARCHAR2(100),"NUM_COMPLETED"       VARCHAR2(100),"DURATION_COMPLETED"  VARCHAR2(100),"TIME_TO_FIRST_START" VARCHAR2(100),"NUM_STARTED"         VARCHAR2(100),"NUM_BROWSED"         VARCHAR2(100),"DURATION_BROWSED"    VARCHAR2(100),"NUM_LISTED"          VARCHAR2(100),"DURATION_LISTED"     VARCHAR2(100),"NUM_INCOMPLETE"      VARCHAR2(100),"NUM_SEARCHED"        VARCHAR2(100))PARTITION BY HASH(CUST_ID);

4. 创建导入配置的xml文件,olh_demo_orc.xml,文件内容如下:



mapreduce.inputformat.classoracle.hadoop.loader.lib.input.HiveToAvroInputFormat

oracle.hadoop.loader.input.hive.databaseNamebdws

oracle.hadoop.loader.input.hive.tableNameolh_demo_orc

mapreduce.outputformat.classoracle.hadoop.loader.lib.output.OCIOutputFormat


oracle.hadoop.loader.loaderMap.targetTableolh_demo_oci

oracle.hadoop.loader.defaultDateFormatyyyy-MM-dd:HH:mm:ss

oracle.hadoop.loader.connection.urljdbc:oracle:thin:@${HOST}:${TCPPORT}/${SERVICE_NAME}

TCPPORT1521

HOSTlocalhost

SERVICE_NAMEorcl

oracle.hadoop.loader.connection.userbdcdemo

oracle.hadoop.loader.connection.passwordwelcome1 Having password in cleartext is NOT RECOMMENDED - use Oracle Wallet instead

oracle.hadoop.loader.logBadRecordstrue


5. 创建导入脚本olh_demo_orc.sh,脚本内容如下:

export HADOOP_CLASSPATH="$OLH_HOME/jlib/*:$HIVE_HOME/lib/*:/etc/hive/conf:$HADOOP_CLASSPATH"
export OUTPUT_DIR=/user/oracle/temp_out_text1hdfs dfs -rm -r -f $OUTPUT_DIR
hadoop jar ${OLH_HOME}/jlib/oraloader.jar \       oracle.hadoop.loader.OraLoader \       -conf /u01/bdc/bdws/olh/olh_demo_orc.xml \        -D mapred.output.dir=$OUTPUT_DIR \       -D mapred.reduce.tasks=1 \       -D hive.transactional.table.scan=true \       -D 'hive.txn.valid.txns=9223372036854775807:9223372036854775807::' \       -D 'schema.evolution.columns=${columns}' \       -D 'schema.evolution.columns.types=${columns.types}'

6. 也可以不使用xml配置文件,直接创建脚本进行执行,例如:

[oracle@bigdata-db-1 olh]$ cat olh_hive_orc.sh#!/bin/bash
export HADOOP_CLASSPATH="${OLH_HOME}/jlib/*:${HIVE_HOME}/lib/*:$HADOOP_CLASSPATH"
export OUTPUT_DIR=/user/hive/temp_out_texthdfs dfs -rm -r -f $OUTPUT_DIR
hadoop jar ${OLH_HOME}/jlib/oraloader.jar \   oracle.hadoop.loader.OraLoader \  -D mapred.reduce.tasks=2 \  -D oracle.hadoop.loader.targetTable=olh_demo_orc \  -D oracle.hadoop.loader.input.hive.databaseName=bdws \  -D oracle.hadoop.loader.input.hive.tableName=OLH_DEMO_orc \  -D oracle.hadoop.loader.connection.url=jdbc:oracle:thin:@10.0.0.3:1521/orcl \  -D oracle.hadoop.loader.connection.user=bdcdemo\  -D oracle.hadoop.loader.connection.password=welcome1 \  -D mapreduce.inputformat.class=oracle.hadoop.loader.lib.input.HiveToAvroInputFormat \  -D mapreduce.outputformat.class=oracle.hadoop.loader.lib.output.OCIOutputFormat \  -D hive.transactional.table.scan=true \  -D 'hive.txn.valid.txns=9223372036854775809:9223372036854775809::' \  -D 'schema.evolution.columns=${columns}' \  -D 'schema.evolution.columns.types=${columns.types}' \  -D mapred.output.dir=$OUTPUT_DIR

7. 执行数据导入操作

 图片

图片

8. 验证导入数据 :

sqlplus bdcdemo/welcome1@10.0.0.3:1521/orclset linesize 200;set pages 200;select count(1) from olh_demo_orc;select SESSION_ID, CUST_ID from olh_demo_orc where rownum<=10;


结果如下 :

 图片

5  常见问题图片

1、是否支持中文数据导入?

OLH导入HDFS文本文件方式下,OLH支持导入UTF8格式文件,其中Oracle数据库使用AL32UTF8编码。

OLH 导入Hive 表数据,Oracle数据库使用AL32UTF8编码,可以支持中文数据导入。

 

2、OLH是否支持文本文件中字段分割符为多字节。

OLH不支持文本中字段分割符为多字节,另外一个Oracle SQL connector for Hadoop可以支持。

 

3、OLH 是否支持文件中第一行为表头。

    支持,数据装载过程中,数据文件内容会根据目标表的定义字段类型进行数据内容的检查,如果不合法,该行数据会被skip掉,其他数据正常加载。文件头信息也是这样处理的。加载数据日志中会统计成功写入多少行,skip多少行。

 

4、OLH导入日志与异常处理

    OLH采用java开发,使用java运行环境,导入使用MapReduce过程,运行日志记录了导入数据行,数据量,skip数据行等信息。在使用ETL调用过程中,可以判断java运行返回结果来判断是否运行成功。


6  参考材料图片


https://www.oracle.com/database/technologies/bdc/hadoop-loader.html

https://www.oracle.com/technetwork/database/database-technologies/bdc/big-data-connectors/overview/bigdata-connectors-datasheet-1883359.pdf?ssSourceSiteId=otncn

https://docs.oracle.com/en/bigdata/big-data-connectors/5.1/user/start.html


编辑:萧宇



推荐阅读
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 本文深入探讨了NoSQL数据库的四大主要类型:键值对存储、文档存储、列式存储和图数据库。NoSQL(Not Only SQL)是指一系列非关系型数据库系统,它们不依赖于固定模式的数据存储方式,能够灵活处理大规模、高并发的数据需求。键值对存储适用于简单的数据结构;文档存储支持复杂的数据对象;列式存储优化了大数据量的读写性能;而图数据库则擅长处理复杂的关系网络。每种类型的NoSQL数据库都有其独特的优势和应用场景,本文将详细分析它们的特点及应用实例。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 数字图书馆近期展出了一批精选的Linux经典著作,这些书籍虽然部分较为陈旧,但依然具有重要的参考价值。如需转载相关内容,请务必注明来源:小文论坛(http://www.xiaowenbbs.com)。 ... [详细]
  • 阿里云MySQL与Oracle数据库的主从复制技术详解 ... [详细]
  • Presto:高效即席查询引擎的深度解析与应用
    本文深入解析了Presto这一高效的即席查询引擎,详细探讨了其架构设计及其优缺点。Presto通过内存到内存的数据处理方式,显著提升了查询性能,相比传统的MapReduce查询,不仅减少了数据传输的延迟,还提高了查询的准确性和效率。然而,Presto在大规模数据处理和容错机制方面仍存在一定的局限性。本文还介绍了Presto在实际应用中的多种场景,展示了其在大数据分析领域的强大潜力。 ... [详细]
  • 第二章:Kafka基础入门与核心概念解析
    本章节主要介绍了Kafka的基本概念及其核心特性。Kafka是一种分布式消息发布和订阅系统,以其卓越的性能和高吞吐量而著称。最初,Kafka被设计用于LinkedIn的活动流和运营数据处理,旨在高效地管理和传输大规模的数据流。这些数据主要包括用户活动记录、系统日志和其他实时信息。通过深入解析Kafka的设计原理和应用场景,读者将能够更好地理解其在现代大数据架构中的重要地位。 ... [详细]
  • 在搭建Hadoop集群以处理大规模数据存储和频繁读取需求的过程中,经常会遇到各种配置难题。本文总结了作者在实际部署中遇到的典型问题,并提供了详细的解决方案,帮助读者避免常见的配置陷阱。通过这些经验分享,希望读者能够更加顺利地完成Hadoop集群的搭建和配置。 ... [详细]
  • 在前一篇文章《Hadoop》系列之“踽踽独行”(二)中,我们详细探讨了云计算的核心概念。本章将重点转向物联网技术,全面解析其基本原理、应用场景及未来发展前景。通过深入分析物联网的架构和技术栈,我们将揭示其在智能城市、工业自动化和智能家居等领域的广泛应用潜力。此外,还将讨论物联网面临的挑战,如数据安全和隐私保护等问题,并展望其在未来技术融合中的重要角色。 ... [详细]
  • HBase在金融大数据迁移中的应用与挑战
    随着最后一台设备的下线,标志着超过10PB的HBase数据迁移项目顺利完成。目前,新的集群已在新机房稳定运行超过两个月,监控数据显示,新集群的查询响应时间显著降低,系统稳定性大幅提升。此外,数据消费的波动也变得更加平滑,整体性能得到了显著优化。 ... [详细]
  • 本文详细介绍了HDFS的基础知识及其数据读写机制。首先,文章阐述了HDFS的架构,包括其核心组件及其角色和功能。特别地,对NameNode进行了深入解析,指出其主要负责在内存中存储元数据、目录结构以及文件块的映射关系,并通过持久化方案确保数据的可靠性和高可用性。此外,还探讨了DataNode的角色及其在数据存储和读取过程中的关键作用。 ... [详细]
  • 为何Serverless将成为未来十年的主导技术领域?
    为何Serverless将成为未来十年的主导技术领域? ... [详细]
  • nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • ### 优化后的摘要本学习指南旨在帮助读者全面掌握 Bootstrap 前端框架的核心知识点与实战技巧。内容涵盖基础入门、核心功能和高级应用。第一章通过一个简单的“Hello World”示例,介绍 Bootstrap 的基本用法和快速上手方法。第二章深入探讨 Bootstrap 与 JSP 集成的细节,揭示两者结合的优势和应用场景。第三章则进一步讲解 Bootstrap 的高级特性,如响应式设计和组件定制,为开发者提供全方位的技术支持。 ... [详细]
author-avatar
Lily賈麗
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有