spark資料庫
⑴ spark連接資料庫連接數過高
使用Mysql資料庫,有一個容易出現的問題——Too many connections。連接數超過。
我們知道,由於SUPER許可權有很多特權,因此不會把這個許可權給予應用的賬號。但是,當應用異常或者資料庫異常,達到最大連接數的時候,用管理賬號登錄,有時候仍然會報Too many connections。此時,如果應用不能及時處理,資料庫這邊就很難辦了。
所以,當應用異常並且頻繁嘗試建立連接的時候,常能占據那第max_connections+1個連接。super賬號由於拿不到線程,因此也是Too many connections了。
⑵ spark用什麼資料庫好
Spark是UC Berkeley AMP lab所開源的類Hadoop MapRece的通用的並行計算框架,Spark基於map rece演算法實現的分布式計算,擁有Hadoop MapRece所具有的優點;但不同於MapRece的是Job中間輸出和結果可以保存在內存中,從而不再需要讀寫HDFS
因此Spark能更好地適用於數據挖掘與機器學習等需要迭代的map rece的演算法。
⑶ 怎樣讓spark定時讀資料庫數據
RDD:AResilientDistributedDataset(RDD),thebasicabstractioninSpark.rdd是一個分布式的數據集,數據分散在分布式集群的各台機器上,更像是一張關系型數據表,是一種spark獨有的數據格式吧,這種格式的數據可以使用sqlcontext裡面的函數
⑷ sparkSQL和spark有什麼區別
Spark為結構化數據處理引入了一個稱為Spark SQL的編程模塊。簡而言之,sparkSQL是Spark的前身,是在Hadoop發展過程中,為了給熟悉RDBMS但又不理解MapRece的技術人員提供快速上手的工具。
sparkSQL提供了一個稱為DataFrame(數據框)的編程抽象,DF的底層仍然是RDD,並且可以充當分布式SQL查詢引擎。
SparkSql有哪些特點呢?
1)引入了新的RDD類型SchemaRDD,可以像傳統資料庫定義表一樣來定義SchemaRDD。
2)在應用程序中可以混合使用不同來源的數據,如可以將來自HiveQL的數據和來自SQL的數據進行Join操作。
3)內嵌了查詢優化框架,在把SQL解析成邏輯執行計劃之後,最後變成RDD的計算。
⑸ spark怎麼從hbase資料庫當中創建rdd
Configuration conf = HBaseConfiguration.create();
String tableName = "testTable";
Scan scan = new Scan();
scan.setCaching(10000);
scan.setCacheBlocks(false);
conf.set(TableInputFormat.INPUT_TABLE, tableName);
ClientProtos.Scan proto = ProtobufUtil.toScan(scan);
String ScanToString = Base64.encodeBytes(proto.toByteArray());
conf.set(TableInputFormat.SCAN, ScanToString);
JavaPairRDD<ImmutableBytesWritable, Result> myRDD = sc
.newAPIHadoopRDD(conf, TableInputFormat.class,
ImmutableBytesWritable.class, Result.class);
在Spark使用如上Hadoop提供的標准介面讀取HBase表數據(全表讀),讀取5億左右數據,要20M+,而同樣的數據保存在Hive中,讀取卻只需要1M以內,性能差別非常大。
⑹ 虛擬機spark中怎樣導入數據,的代碼
具體操作步驟:
1、准備Spark程序目錄結構。
2、編輯build.sbt配置文件添加依賴。
3、創建WriteToCk.scala數據寫入程序文件。
4、編譯打包。
5、運行。
參數說明:your-user-name:目標ClickHouse集群中創建的資料庫賬號名。
your-pasword:資料庫賬號名對應的密碼。
your-url:目標ClickHouse集群地址。
/your/path/to/test/data/a.txt:要導入的數據文件的路徑,包含文件地址和文件名。說明文件中的數據及schema,需要與ClickHouse中目標表的結構保持一致。
your-table-name:ClickHouse集群中的目標表名稱。
⑺ sparkdriverstacktrace導致資料庫連接不上
網路延遲。sparkdriverstacktrace是電腦程序的驅動器節點,由於網路延遲會導致出現資料庫連接不上的情況。解決方法如下:
1、首先重新啟動計算機。
2、其次點擊重新進入sparkdriverstacktrace節點。
3、最後點擊左上角的刷新即可。
⑻ 請教Scala,spark關於資料庫timestamp的問題
1,構建系統的選擇,sbt更合適用來構建Scala工程,maven更合適用來構建Java工程2,對於spark中的API來說,Java和Scala有差別,但差別並不大3,如果用Scala開發spark原型程序,可以用spark-shell「打草稿」,或者直接使用spark-shell做互動式實時查詢4,用Scala代碼量將減少甚至一個數量級,不過Scala的使用門檻較高
⑼ 想問一下圖資料庫neo4j和spark下面的graphx有什麼區別
Neo4j就是一個資料庫(可以理解成一個類似HBASE的東西,不過Neo4j是幾乎是單機資料庫,於HBASE不同,HBASE的數據時存儲在
HDFS上,由HDFS進行維護,HDFS將數據存儲在exfat等單機文件系統上。Neo4j直接將數據格式化到單機文件系統)
每一個伺服器保存完整的圖數據。
GraphX是一個計算引擎(類似於maprece的東西),它的數據是從SHARK中使用SQL讀取數據,或者RDD運算符從文件中讀取,然後直接進行計算
另外資料庫和計算引擎都可以進行計算任務,不過資料庫的介面比較弱,只支持簡單的查詢
計算引擎提供了強大的計算介面,方便了編程,可以很容易的實現pagerank等圖演算法
GraphX做數據挖掘應該更方便,有通用的編程幾口
Neo4j就需要自己寫代碼了 編程比較麻煩,不過性能上或許有優勢
⑽ 科普Spark,Spark是什麼,如何使用Spark
科普Spark,Spark是什麼,如何使用Spark
1.Spark基於什麼演算法的分布式計算(很簡單)
2.Spark與MapRece不同在什麼地方
3.Spark為什麼比Hadoop靈活
4.Spark局限是什麼
5.什麼情況下適合使用Spark
Spark與Hadoop的對比
Spark的中間數據放到內存中,對於迭代運算效率更高。
Spark更適合於迭代運算比較多的ML和DM運算。因為在Spark裡面,有RDD的抽象概念。
Spark比Hadoop更通用
Spark提供的數據集操作類型有很多種,不像Hadoop只提供了Map和Rece兩種操作。比如map, filter, flatMap, sample, groupByKey, receByKey, union, join, cogroup, mapValues, sort,partionBy等多種操作類型,Spark把這些操作稱為Transformations。同時還提供Count, collect, rece, lookup, save等多種actions操作。
這些多種多樣的數據集操作類型,給給開發上層應用的用戶提供了方便。各個處理節點之間的通信模型不再像Hadoop那樣就是唯一的Data Shuffle一種模式。用戶可以命名,物化,控制中間結果的存儲、分區等。可以說編程模型比Hadoop更靈活。
不過由於RDD的特性,Spark不適用那種非同步細粒度更新狀態的應用,例如web服務的存儲或者是增量的web爬蟲和索引。就是對於那種增量修改的應用模型不適合。
容錯性
在分布式數據集計算時通過checkpoint來實現容錯,而checkpoint有兩種方式,一個是checkpoint data,一個是logging the updates。用戶可以控制採用哪種方式來實現容錯。
可用性
Spark通過提供豐富的Scala, Java,Python API及互動式Shell來提高可用性。
Spark與Hadoop的結合
Spark可以直接對HDFS進行數據的讀寫,同樣支持Spark on YARN。Spark可以與MapRece運行於同集群中,共享存儲資源與計算,數據倉庫Shark實現上借用Hive,幾乎與Hive完全兼容。
Spark的適用場景
Spark是基於內存的迭代計算框架,適用於需要多次操作特定數據集的應用場合。需要反復操作的次數越多,所需讀取的數據量越大,受益越大,數據量小但是計算密集度較大的場合,受益就相對較小(大資料庫架構中這是是否考慮使用Spark的重要因素)
由於RDD的特性,Spark不適用那種非同步細粒度更新狀態的應用,例如web服務的存儲或者是增量的web爬蟲和索引。就是對於那種增量修改的應用模型不適合。總的來說Spark的適用面比較廣泛且比較通用。
運行模式
本地模式
Standalone模式
Mesoes模式
yarn模式
Spark生態系統
Shark ( Hive on Spark): Shark基本上就是在Spark的框架基礎上提供和Hive一樣的H iveQL命令介面,為了最大程度的保持和Hive的兼容性,Shark使用了Hive的API來實現query Parsing和 Logic Plan generation,最後的PhysicalPlan execution階段用Spark代替Hadoop MapRece。通過配置Shark參數,Shark可以自動在內存中緩存特定的RDD,實現數據重用,進而加快特定數據集的檢索。同時,Shark通過UDF用戶自定義函數實現特定的數據分析學習演算法,使得SQL數據查詢和運算分析能結合在一起,最大化RDD的重復使用。
Spark streaming: 構建在Spark上處理Stream數據的框架,基本的原理是將Stream數據分成小的時間片斷(幾秒),以類似batch批量處理的方式來處理這小部分數據。Spark Streaming構建在Spark上,一方面是因為Spark的低延遲執行引擎(100ms+)可以用於實時計算,另一方面相比基於Record的其它處理框架(如Storm),RDD數據集更容易做高效的容錯處理。此外小批量處理的方式使得它可以同時兼容批量和實時數據處理的邏輯和演算法。方便了一些需要歷史數據和實時數據聯合分析的特定應用場合。
Bagel: Pregel on Spark,可以用Spark進行圖計算,這是個非常有用的小項目。Bagel自帶了一個例子,實現了Google的PageRank演算法。
End.