真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

SparkOnMaxCompute如何訪問Phonix數(shù)據(jù)

本篇文章為大家展示了Spark On MaxCompute如何訪問Phonix數(shù)據(jù),內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供湯陰網(wǎng)站建設、湯陰做網(wǎng)站、湯陰網(wǎng)站設計、湯陰網(wǎng)站制作等企業(yè)網(wǎng)站建設、網(wǎng)頁設計與制作、湯陰企業(yè)網(wǎng)站模板建站服務,10多年湯陰做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡服務。

一、購買Hbase1.1并設置對應資源

1.1購買hbase

hbase主要版本為2.0與1.1,這邊選擇對應hbase對應的版本為1.1
Hbase與Hbase2.0版本的區(qū)別
HBase1.1版本
1.1版本基于HBase社區(qū)1.1.2版本開發(fā)。
HBase2.0版本
2.0版本是基于社區(qū)2018年發(fā)布的HBase2.0.0版本開發(fā)的全新版本。同樣,在此基礎上,做了大量的改進和優(yōu)化,吸收了眾多阿里內(nèi)部成功經(jīng)驗,比社區(qū)HBase版本具有更好的穩(wěn)定性和性能。

Spark On MaxCompute如何訪問Phonix數(shù)據(jù)

1.2確認VPC,vsWitchID

確保測試聯(lián)通性的可以方便可行,該hbase的VPCId,vsWitchID盡量與購買的獨享集成資源組的為一致的。

Spark On MaxCompute如何訪問Phonix數(shù)據(jù)

1.3設置hbase白名單,其中DataWorks白名單如下,個人ECS也可添加

Spark On MaxCompute如何訪問Phonix數(shù)據(jù)

根據(jù)文檔鏈接選擇對應的DataWorks的region下的白名單進行添加。

Spark On MaxCompute如何訪問Phonix數(shù)據(jù)

1.4查看hbase對應的版本和訪問地址

打開數(shù)據(jù)庫鏈接的按鈕,可以查看到Hbase的主版本以及Hbase的專有網(wǎng)絡訪問地址,以及是否開通公網(wǎng)訪問的方式進行連接。

Spark On MaxCompute如何訪問Phonix數(shù)據(jù)

二、安裝Phonix客戶端,并創(chuàng)建表和插入數(shù)據(jù)

2.1安裝客戶端

根據(jù)hbase的版本為1.1選擇Phonix的版本為4.12.0根據(jù)文檔下載對應的客戶端文件ali-phoenix-4.12.0-AliHBase-1.1-0.9.tar.gz
登陸客戶端執(zhí)行命令

./bin/sqlline.py 172.16.0.13,172.16.0.15,172.16.0.12:2181

Spark On MaxCompute如何訪問Phonix數(shù)據(jù)

創(chuàng)建表:

CREATE TABLE IF NOT EXISTS users_phonix
(
    id       INT   ,
    username STRING,
    password STRING
) ;

插入數(shù)據(jù):

UPSERT INTO users (id, username, password) VALUES (1, 'admin', 'Letmein');

2.2查看是否創(chuàng)建和插入成功

在客戶端執(zhí)行命令,查看當前表與數(shù)據(jù)是否上傳成功

select * from users;

Spark On MaxCompute如何訪問Phonix數(shù)據(jù)

三、編寫對應代碼邏輯

3.1編寫代碼邏輯

在IDEA按照對應得Pom文件進行配置本地得開發(fā)環(huán)境,將代碼涉及到得配置信息填寫完整,進行編寫測試,這里可以先使用Hbase得公網(wǎng)訪問鏈接進行測試,代碼邏輯驗證成功后可調(diào)整配置參數(shù),具體代碼如下

package com.git.phonix
import org.apache.hadoop.conf.Configuration
import org.apache.spark.sql.SparkSession
import org.apache.phoenix.spark._
/**
  * 本實例適用于Phoenix 4.x版本
  */
object SparkOnPhoenix4xSparkSession {
  def main(args: Array[String]): Unit = {
    //HBase集群的ZK鏈接地址。
    //格式為:xxx-002.hbase.rds.aliyuncs.com,xxx-001.hbase.rds.aliyuncs.com,xxx-003.hbase.rds.aliyuncs.com:2181
    val zkAddress = args(0)
    //Phoenix側(cè)的表名,需要在Phoenix側(cè)提前創(chuàng)建。Phoenix表創(chuàng)建可以參考:https://help.aliyun.com/document_detail/53716.html?spm=a2c4g.11186623.4.2.4e961ff0lRqHUW
    val phoenixTableName = args(1)
    //Spark側(cè)的表名。
    val ODPSTableName = args(2)
    val sparkSession = SparkSession
      .builder()
      .appName("SparkSQL-on-MaxCompute")
      .config("spark.sql.broadcastTimeout", 20 * 60)
      .config("spark.sql.crossJoin.enabled", true)
      .config("odps.exec.dynamic.partition.mode", "nonstrict")
      //.config("spark.master", "local[4]") // 需設置spark.master為local[N]才能直接運行,N為并發(fā)數(shù)
      .config("spark.hadoop.odps.project.name", "***")
      .config("spark.hadoop.odps.access.id", "***")
      .config("spark.hadoop.odps.access.key", "***")
      //.config("spark.hadoop.odps.end.point", "http://service.cn.maxcompute.aliyun.com/api")
      .config("spark.hadoop.odps.end.point", "http://service.cn-beijing.maxcompute.aliyun-inc.com/api")
      .config("spark.sql.catalogImplementation", "odps")
      .getOrCreate()
    //第一種插入方式
    var df = sparkSession.read.format("org.apache.phoenix.spark").option("table", phoenixTableName).option("zkUrl",zkAddress).load()
    df.show()
    df.write.mode("overwrite").insertInto(ODPSTableName)
  }
}

3.2對應Pom文件

pom文件中分為Spark依賴,與ali-phoenix-spark相關的依賴,由于涉及到ODPS的jar包,會在集群中引起jar沖突,所以要將ODPS的包排除掉




    4.0.0
    
        2.3.0
        3.3.8-public
        2.11.8
        2.11
        4.12.0-HBase-1.1
    
    com.aliyun.odps
    Spark-Phonix
    1.0.0-SNAPSHOT
    jar
    
        
            org.jpmml
            pmml-model
            1.3.8
        
        
            org.jpmml
            pmml-evaluator
            1.3.10
        
        
            org.apache.spark
            spark-core_${scala.binary.version}
            ${spark.version}
            provided
            
                
                    org.scala-lang
                    scala-library
                
                
                    org.scala-lang
                    scalap
                
            
        
        
            org.apache.spark
            spark-sql_${scala.binary.version}
            ${spark.version}
            provided
        
        
            org.apache.spark
            spark-mllib_${scala.binary.version}
            ${spark.version}
            provided
        
        
            org.apache.spark
            spark-streaming_${scala.binary.version}
            ${spark.version}
            provided
        
        
            com.aliyun.odps
            cupid-sdk
            ${cupid.sdk.version}
            provided
        
        
            com.aliyun.phoenix
            ali-phoenix-core
            4.12.0-AliHBase-1.1-0.8
            
                
                    com.aliyun.odps
                    odps-sdk-mapred
                
                
                    com.aliyun.odps
                    odps-sdk-commons
                
            
        
        
            com.aliyun.phoenix
            ali-phoenix-spark
            4.12.0-AliHBase-1.1-0.8
            
                
                    com.aliyun.phoenix
                    ali-phoenix-core
                
            
        
    
    
        
            
                org.apache.maven.plugins
                maven-shade-plugin
                2.4.3
                
                    
                        package
                        
                            shade
                        
                        
                            false
                            true
                            
                                
                                    
                                    *:*
                                
                            
                            
                                
                                    *:*
                                    
                                        META-INF/*.SF
                                        META-INF/*.DSA
                                        META-INF/*.RSA
                                        **/log4j.properties
                                    
                                
                            
                            
                                
                                    reference.conf
                                
                                
                                    META-INF/services/org.apache.spark.sql.sources.DataSourceRegister
                                
                            
                        
                    
                
            
            
                net.alchim31.maven
                scala-maven-plugin
                3.3.2
                
                    
                        scala-compile-first
                        process-resources
                        
                            compile
                        
                    
                    
                        scala-test-compile-first
                        process-test-resources
                        
                            testCompile
                        
                    
                
            
        
    

四、打包上傳到DataWorks進行冒煙測試

4.1創(chuàng)建要傳入的MaxCompute表

CREATE TABLE IF NOT EXISTS users_phonix
(
    id       INT   ,
    username STRING,
    password STRING
) ;

4.2打包上傳到MaxCompute

在IDEA打包要打成shaded包,將所有的依賴包,打入jar包中,由于DatadWork界面方式上傳jar包有50M的限制,因此采用MaxCompute客戶端進行jar包

Spark On MaxCompute如何訪問Phonix數(shù)據(jù)

4.3選擇對應的project環(huán)境,查看上傳資源,并點擊添加到數(shù)據(jù)開發(fā)

進入DataWorks界面選擇左側(cè)資源圖標,選擇對應的環(huán)境位開發(fā)換進,輸入刪除文件時的文件名稱進行搜索,列表中展示該資源已經(jīng)上傳成,點擊提交到數(shù)據(jù)開發(fā)

Spark On MaxCompute如何訪問Phonix數(shù)據(jù)

點擊提交按鈕

Spark On MaxCompute如何訪問Phonix數(shù)據(jù)

4.4配置對應的vpcList參數(shù)并提交任務測試

其中的配置vpcList文件的配置信息如下,可具體根據(jù)個人hbase的鏈接,進行配置

{
    "regionId":"cn-beijing",
    "vpcs":[
        {
            "vpcId":"vpc-2ze7cqx2bqodp9ri1vvvk",
            "zones":[
                {
                    "urls":[
                        {
                            "domain":"172.16.0.12",
                            "port":2181
                        },
                        {
                            "domain":"172.16.0.13",
                            "port":2181
                        },
                        {
                            "domain":"172.16.0.15",
                            "port":2181
                        },
                        {
                            "domain":"172.16.0.14",
                            "port":2181
                        },
                        {
                            "domain":"172.16.0.12",
                            "port":16000
                        },
                        {
                            "domain":"172.16.0.13",
                            "port":16000
                        },
                        {
                            "domain":"172.16.0.15",
                            "port":16000
                        },
                        {
                            "domain":"172.16.0.14",
                            "port":16000
                        },
                        {
                            "domain":"172.16.0.12",
                            "port":16020
                        },
                        {
                            "domain":"172.16.0.13",
                            "port":16020
                        },
                        {
                            "domain":"172.16.0.15",
                            "port":16020
                        },
                        {
                            "domain":"172.16.0.14",
                            "port":16020
                        }
                    ]
                }
            ]
        }
    ]
}

Spark任務提交任務的配置參數(shù),主類,以及對應的參數(shù)
該參數(shù)主要為3個參數(shù)第一個為Phonix的鏈接,第二個為Phonix的表名稱,第三個為傳入的MaxCompute表

Spark On MaxCompute如何訪問Phonix數(shù)據(jù)

點擊冒煙測試按鈕,可以看到任務執(zhí)行成功

Spark On MaxCompute如何訪問Phonix數(shù)據(jù)

在臨時查詢節(jié)點中執(zhí)行查詢語句,可以得到數(shù)據(jù)已經(jīng)寫入MaxCompute的表中

Spark On MaxCompute如何訪問Phonix數(shù)據(jù)

總結(jié):

使用Spark on MaxCompute訪問Phonix的數(shù)據(jù),并將數(shù)據(jù)寫入到MaxCompute的表中經(jīng)過實踐,該方案時可行的。但在實踐的時有幾點注意事項:

1.結(jié)合實際使用情況選擇對應的Hbase以及Phonix版本,對應的版本一致,并且所使用的客戶端,以及代碼依賴都會有所改變。
2.使用公網(wǎng)在IEAD進行本地測試,要注意Hbase白名單,不僅要設置DataWorks的白名單,還需將自己本地的地址加入到白名單中。
3.代碼打包時需要將pom中的依賴關系進行梳理,避免ODPS所存在的包在對應的依賴中,進而引起jar包沖突,并且打包時打成shaded包,避免缺失遺漏對應的依賴。

上述內(nèi)容就是Spark On MaxCompute如何訪問Phonix數(shù)據(jù),你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


網(wǎng)頁標題:SparkOnMaxCompute如何訪問Phonix數(shù)據(jù)
地址分享:http://weahome.cn/article/ggechj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部