大數據平台與其他相關系統接口描述
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管理 等。