大数据平台与其他相关系统接口描述
大数据平台与其他相关系统接口描述
HDFS对外接口
HDFS提供了多种数据访问方式,有API方式,SHELL方式,WEB方式。
- Java API:可通过Java API对HDFS上的文件进行操作,具体参考HDFSJavaAPI,另外,可以参考官网网站上的详细描述了解其使用 http://hadoop.apache.org/docs/r2.7.2/api/index.html。
- C/C++ API:参考官网网站上的详细描述了解其使用http://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-hdfs/LibHdfs.html。
- REST API:支持HDFS中FileSystem和FileContext接口的完整功能,参考官网网站上的详细描述了解其使用http://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-hdfs/WebHDFS.html。
- SHELL方式:可以使用HDFS Shell命令对HDFS文件系统进行操作,例如读文件、写文件等操作。参考官网网站上的详细描述了解其使用 http://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/FileSystemShell.html。
- WEB UI方式:Web UI展示了HDFS集群的状态,其中包括整个集群概况信息、NameNode和DataNode的信息、快照、运行进程等信息。通过Web UI提供的信息可以对整个HDFS集群的状况有一定的了解。具体参考HdfsWebUI接口。
- 外部数据源接口。
- Loader支持通过JDBC接口访问外部数据源关系数据库。
Loader对外接口
FusionInsight组件之一Sqoop支持从关系数据库将数据导入到大数据平台,进行分析处理清洗等,可以通过MapReduce分布式进行,并且支持把处理好的数据再导出到关系型数据库。目前使用的Sqoop版本是1.99.3,具体使用方式和接口方式参考官方在线文档http://sqoop.apache.org/docs/1.99.3/ 。
- Loader还支持通过nfs、sftp访问外部数据源。
- 调度接口。
- 提供Shell脚本,集成到客户现有的调度平台上,由调度平台实现定时启动Loader作业 。
- 客户也可以调用Loader REST API自行开发客户端应用;如果使用Java开发,可以直接使用Loader自带的Java库 。
YARN/MR对外接口
YARN:提供Command, Java API, Rest API和Web UI的方式。
- Command: 使用Yarn Commands能够对yarn的集群进行一些操作,例如启动ResourceManager、提交应用程序、杀死应用、查询节点状态、下载container 日志等操作。完整和详细的Command描述可以参考官网文档:http://hadoop.apache.org/docs/r2.4.1/hadoop-yarn/hadoop-yarn-site/YarnCommands.html#Yarn_Commands。
- Java: 关于YARN的详细API可以直接参考官方网站上的描述:http://hadoop.apache.org/docs/r2.4.1/api/index.html。
- Rest API: Hadoop YARN自带了一系列的web service REST API,我们可以通过这些Web Service访问集群(cluster)、节点(nodes)、应用(application)以及应用的历史信息。根据API返回的类型,这些URL源会归类到不同的组。一些API返回collector类型的,有些返回singleton类型。这些web service REST API的语法如下:http://{http address of service}/ws/{version}/{resourcepath} 其中,{http address of service}是我们需要获取信息的服务器地址,目前支持访问ResourceManager, NodeManager,MapReduce application master, and history server;{version}是这些API的版本,目前只支持v1;{resourcepath}定义singleton资源或者collection资源的路径, 具体的使用说明,请参阅官方指导:http://hadoop.apache.org/docs/r2.4.1/hadoop-yarn/hadoop-yarn-site/WebServicesIntro.html。
- Web UI: Web UI展示了YARN集群的状态,其中包括整个集群概况信息、ResoureManager和NodeManger的信息、快照、运行进程等信息。通过Web UI提供的信息可以对整个YARN集群的状况有一定的了解。具体参考YarnWebUI。
- Hive JDBC接口遵循标准的JAVA JDBC驱动标准,详情请参见JDK1.7 API。
- Hive SQL支持Hive-1.2.1版本中的所有特性,详情请参见https://cwiki.apache.org/confluence/display/hive/languagemanual。另外,FusionInsight系统提供的扩展Hive语句参考Hive扩展SQL语句。
- 另外Hive采用的Thrift接口同开源社区版本保持一致,详情请参见https://cwiki.apache.org/confluence/display/Hive/HiveServer2+Thrift+API。
- HBase原生接口访问数据,例如Shell, Java API, Rest API, Thrift API等:
- Shell: 可以使用Shell在服务端直接对HBase进行操作。HBase的Shell接口同开源社区版本保持一致,请参见http://learnhbase.wordpress.com/2013/03/02/hbase-shell-commands/
- Java API: HBase采用的接口与Apache HBase保持一致,请参见http://hbase.apache.org/apidocs/index.html。 另外请参考HBase新增或修改接口
- Rest API: HBase提供HTTP接口访问HBase的接口,一个名为
- Stargate的REST服务器嵌入在Jetty中,详情请参见http://hbase.apache.org/book/rest.html
- Thrift API: Apache Thrift是一个跨平台和语言的开发框架,HBase包含了一个Thrift API。具体接口定义和使用,请参见http://hbase.apache.org/book/thrift.html
- Phoenix实现了大部分的java.sql接口,SQL语法紧跟ANSI SQL标准。其支持处理函数可参见http://phoenix.apache.org/language/functions.html。其支持语法可参见http://phoenix.apache.org/language/index.html
- JAVA API: Spark完整的类及方法参考官方网站的描述: 3.20.1
- Scala API: Spark完整的类及方法参考官方网站的描述: 3.20.1.1
- Python API: 如果您需要使用python语言的客户端运行Spark实例,您可以使用Spark提供的python API。请直接参考官网网站上的详细描述了解其使用: 3.20.1.2
- REST API: Spark的REST API以JSON格式展现Web UI的一些指标,提供用户一种更简单的方法去创建新的展示和监控的工具,并且支持查询正在运行的app和已经结束的app的相关信息。开源的Spark REST接口支持对Jobs、Stages、Storage、Environment和Executors的信息进行查询,FusionInsight版本中添加了查询SQL、JDBC/ODBC Server和Spark Streaming的信息的REST接口。开源REST接口完整和详细的描述请参考官网上的文档以了解其使用方法:3.20.1.2.1。
Hive对外接口
- Hive JDBC接口遵循标准的JAVA JDBC驱动标准,详情请参见JDK1.7 API。
- Hive SQL支持Hive-1.2.1版本中的所有特性,详情请参见https://cwiki.apache.org/confluence/display/hive/languagemanual。另外,FusionInsight系统提供的扩展Hive语句参考Hive扩展SQL语句。
- 另外Hive采用的Thrift接口同开源社区版本保持一致,详情请参见https://cwiki.apache.org/confluence/display/Hive/HiveServer2+Thrift+API。
- HBase原生接口访问数据,例如Shell, Java API, Rest API, Thrift API等:
- Shell: 可以使用Shell在服务端直接对HBase进行操作。HBase的Shell接口同开源社区版本保持一致,请参见http://learnhbase.wordpress.com/2013/03/02/hbase-shell-commands/
- Java API: HBase采用的接口与Apache HBase保持一致,请参见http://hbase.apache.org/apidocs/index.html。 另外请参考HBase新增或修改接口
- Rest API: HBase提供HTTP接口访问HBase的接口,一个名为
- Stargate的REST服务器嵌入在Jetty中,详情请参见http://hbase.apache.org/book/rest.html
- Thrift API: Apache Thrift是一个跨平台和语言的开发框架,HBase包含了一个Thrift API。具体接口定义和使用,请参见http://hbase.apache.org/book/thrift.html
- Phoenix实现了大部分的java.sql接口,SQL语法紧跟ANSI SQL标准。其支持处理函数可参见http://phoenix.apache.org/language/functions.html。其支持语法可参见http://phoenix.apache.org/language/index.html
- JAVA API: Spark完整的类及方法参考官方网站的描述: 3.20.1
- Scala API: Spark完整的类及方法参考官方网站的描述: 3.20.1.1
- Python API: 如果您需要使用python语言的客户端运行Spark实例,您可以使用Spark提供的python API。请直接参考官网网站上的详细描述了解其使用: 3.20.1.2
- REST API: Spark的REST API以JSON格式展现Web UI的一些指标,提供用户一种更简单的方法去创建新的展示和监控的工具,并且支持查询正在运行的app和已经结束的app的相关信息。开源的Spark REST接口支持对Jobs、Stages、Storage、Environment和Executors的信息进行查询,FusionInsight版本中添加了查询SQL、JDBC/ODBC Server和Spark Streaming的信息的REST接口。开源REST接口完整和详细的描述请参考官网上的文档以了解其使用方法:3.20.1.2.1。
HBase对外接口
- HBase原生接口访问数据,例如Shell, Java API, Rest API, Thrift API等:
- Shell: 可以使用Shell在服务端直接对HBase进行操作。HBase的Shell接口同开源社区版本保持一致,请参见http://learnhbase.wordpress.com/2013/03/02/hbase-shell-commands/
- Java API: HBase采用的接口与Apache HBase保持一致,请参见http://hbase.apache.org/apidocs/index.html。 另外请参考HBase新增或修改接口
- Rest API: HBase提供HTTP接口访问HBase的接口,一个名为
- Stargate的REST服务器嵌入在Jetty中,详情请参见http://hbase.apache.org/book/rest.html
- Thrift API: Apache Thrift是一个跨平台和语言的开发框架,HBase包含了一个Thrift API。具体接口定义和使用,请参见http://hbase.apache.org/book/thrift.html
- Phoenix实现了大部分的java.sql接口,SQL语法紧跟ANSI SQL标准。其支持处理函数可参见http://phoenix.apache.org/language/functions.html。其支持语法可参见http://phoenix.apache.org/language/index.html
Spark对外接口
- JAVA API: Spark完整的类及方法参考官方网站的描述: 3.20.1
- Scala API: Spark完整的类及方法参考官方网站的描述: 3.20.1.1
- Python API: 如果您需要使用python语言的客户端运行Spark实例,您可以使用Spark提供的python API。请直接参考官网网站上的详细描述了解其使用: 3.20.1.2
- REST API: Spark的REST API以JSON格式展现Web UI的一些指标,提供用户一种更简单的方法去创建新的展示和监控的工具,并且支持查询正在运行的app和已经结束的app的相关信息。开源的Spark REST接口支持对Jobs、Stages、Storage、Environment和Executors的信息进行查询,FusionInsight版本中添加了查询SQL、JDBC/ODBC Server和Spark Streaming的信息的REST接口。开源REST接口完整和详细的描述请参考官网上的文档以了解其使用方法:3.20.1.2.1。
Solr对外接口
Solr提供Command, Java API, Rest API和Web UI的方式。
- Command: 执行/opt/client/Solr/solr-client/bin/solrctl --help能够获取到具体Solr命令参数的帮助信息(其中假设客户端安装目录为“/opt/client”)。
- Java API:
Solr常用的Java类有以下几个:
− CloudSolrClient:客户端应用的核心类,封装了HttpClient,负责与Solr Cloud的通信。
− CollectionAdminRequest:关于Collection的各种请求接口类,以内部类的形式呈现,如CollectionAdminRequest.Create,CollectionAdminRequest.List,CollectionAdminRequest.Delete等。
− SolrInputDocument:索引记录。
− SolrQuery:索引查询类。
每个类详细API请参考:
https://lucene.apache.org/solr/6_2_0/solr-solrj/index.html?overview-summary.html。
- Web UI: 展示了Solr集群的状态,其中包括整个集群概况信息、SolrServer和SolrServerAdmin的信息、快照、运行进程等信息。
- Shell命令: Kafka可以通过Shell命令进行Topic的管理,更多命令介绍参考《FusionInsight HD Shell操作维护命令说明书》。
- Java API: Kafka相关接口同开源社区保持一致,详情请参见http://kafka.apache.org/documentation.html#api。
Kafka对外接口
- Shell命令: Kafka可以通过Shell命令进行Topic的管理,更多命令介绍参考《FusionInsight HD Shell操作维护命令说明书》。
- Java API: Kafka相关接口同开源社区保持一致,详情请参见http://kafka.apache.org/documentation.html#api。
FusionInsight Manager对外接口
集群管理Manager提供3种接口类型跟外部系统对接时,包括Syslog,SNMP, Rest API。
- Syslog: FusionInsight提供Syslog协议与北向网管对接,对接成功后,可直接在网管侧查看FusionInsight系统产生的告警。具体参考Syslog接口
- SNMP: 采用SNMP协议北向对接, 包含服务器上报信息至FusionInsight Manager,以及FusionInsight Manager上报信息至网管。
配置各节点服务器的SNMP Trap信息 FusionInsight支持上报磁盘相关的告警信息,用户需要在对应服务器的BMC上配置SNMP Trap信息后,相关告警信息即可上报到FusionInsight Manager。本操作指导用户在需要上报trap信息的服务器上配置SNMP Trap信息(以华为RH2285服务器为例),一般情况下,需要为FusionInsight集群中的每一台服务器配置SNMP Trap信息。
配置FusionInsight Manager系统上的SNMP参数 该操作提供FusionInsight与北向网管通过SNMP协议对接时的操作步骤,对接成功后,可直接在网管侧查看FusionInsight系统产生的告警。具体参考Snmp接口
- Rest API: FusionInsight提供丰富的Rest API供外部系统进行集群相关信息查询和管理:包括主机资源管理,用户管理,升级管理,审计,日志采集,配置管理,监控基线,监控,集群资源管理,命令执行进度管理,告警管理,登录认证管理,集群启停管理,补丁管理,备份管理,安装信息管理,Syslog配置管理, SNMP配置管理,OMS内部用户管理,LICENSE管理 等。