編輯推薦
適讀人群 :大數據開發者 大數據知名培訓師王傢林新作。 詳細介紹大數據開發語言Scala及其在分布式框架Akka和Kafka中的應用。 秉承“實戰”類圖書特點,解析大量代碼的編寫操作,具有較強的可操作性,便於讀者學習和理解。
內容簡介
本書分為基礎篇、中級篇、高級篇及分布式框架四大部分,從Scala零基礎入門,步步深入,引導讀者由淺入深地學習Scala及其應用。本書從手把手指引讀者搭建Scala語言開發環境開始,詳細介紹瞭Scala的語法基礎,以代碼實例形式分彆講解瞭Scala麵嚮對象開發及函數式編程;在此基礎上進一步深入講解瞭Scala的中高級語法特性,包括模式匹配、集閤、類型參數、高級類型、隱式轉化及各語法特性在Spark源碼中的應用解析,並引齣Scala的Actor模型及其應用詳解。本書還詳細介紹瞭以Scala為基礎的兩大框架——Akka和Kafka。 本書每章開始均有重點介紹,以引導讀者有目的、有重點地閱讀或查閱。另外,針對不同語法特性的源碼及應用解析是本書的另一大特點。 本書適閤具備一定編程語言基礎、對大數據開發有興趣的在校學生,同時,對有麵嚮對象編程或函數式編程經驗的人員,本書也可以作為開發實例的參考書籍。
目錄
前言 基礎篇 第1章Scala零基礎入門 1.1Scala概述 1.2Windows及Linux下Scale運行環境安裝配置 1.2.1軟件工具準備 1.2.2Windows環境下的Scala安裝 1.2.3Linux環境下的Scala安裝 1.2.4Linux環境下的Hadoop安裝與配置 1.2.5Linux環境下的Spark安裝與配置 1.3Scala開發環境搭建和HelloWorld實例 1.3.1Scala集成開發工具的安裝 1.3.2HelloWorld編程實例 1.3.3WorkSheet的使用 1.4變量的使用 1.4.1Scala解釋器中的變量示例 1.4.2val變量的定義 1.4.3var變量的定義 1.4.4var變量與val變量的使用比較 1.5函數的定義、流程控製、異常處理 1.5.1函數的定義 1.5.2流程控製(if、while、for) 1.5.3異常處理 1.6Tuple、Array、Map與文件操作 1.6.1Tuple元組 1.6.2Array數組 1.6.3文件操作 1.6.4Map映射 1.7Scala中的apply方法 1.7.1Object中的apply 1.7.2Class中的apply 1.7.3Array數組的apply實現 1.8小結 第2章Scala麵嚮對象編程開發 2.1類的定義及屬性 2.1.1類定義 2.1.2帶有getter和setter的屬性 2.2主構造器、私有構造器、構造器重載 2.2.1構造器重載之輔助構造器 2.2.2主構造器 2.2.3不同訪問權限的構造器 2.3內部類和外部類 2.4單例對象、伴生對象 2.5繼承:超類的構造、重寫字段、重寫方法 2.5.1超類的構造 2.5.2重寫字段 2.5.3重寫方法 2.6抽象類、抽象字段、抽象方法 2.6.1抽象類 2.6.2抽象字段 2.6.3抽象方法 2.7trait特質 2.7.1作為接口使用的trait 2.7.2在對象中混入trait 2.7.3trait深入解析 2.8多重繼承、多重繼承構造器執行順序及AOP實現 2.8.1多重繼承 2.8.2多重繼承構造器執行順序 2.8.3AOP實現 2.9包的定義、包對象、包的引用、包的隱式引用 2.9.1包的定義 2.9.2包對象 2.9.3包的引用 2.9.4包的隱式引用 2.10包、類、對象、成員、伴生類、伴生對象訪問權限 2.10.1包、類、對象、成員訪問權限 2.10.2伴生類、伴生對象訪問權限 2.11小結 第3章Scala高階函數 3.1匿名函數 3.2偏應用函數 3.3閉包 3.4SAM轉換 3.5Curring函數 3.6高階函數 3.7高階函數在Spark中的應用 3.8小結 中級篇 第4章Scala模式匹配 4.1模式匹配簡介 4.2模式匹配類型 4.2.1常量模式 4.2.2變量模式 4.2.3構造器模式 4.2.4序列(Sequence)模式 4.2.5元組(Tuple)模式 4.2.6類型模式 4.2.7變量綁定模式 4.3模式匹配與Case Class 4.3.1構造器模式匹配原理 4.3.2序列模式匹配原理 4.3.3Sealed Class在模式匹配中的應用 4.4模式匹配應用實例 4.4.1for循環控製結構中的模式匹配 4.4.2正則錶達式中的模式匹配 4.4.3異常處理中的模式匹配 4.4.4Spark源碼中的模式匹配使用 4.5本章小結 第5章Scala集閤 5.1可變集閤與不可變集閤(Collection) 5.1.1集閤的概述 5.1.2集閤的相關操作 5.1.3集閤的操作示例 5.2序列(Seq) 5.2.1序列的概述 5.2.2序列的相關操作 5.2.3序列的操作示例 5.3列錶(List) 5.3.1列錶的概述 5.3.2列錶的相關操作 5.3.3列錶的操作示例 5.4集(Set) 5.4.1集的概述 5.4.2集的相關操作 5.4.3集的操作示例 5.5映射(Map) 5.5.1映射的概述 5.5.2映射的相關操作 5.5.3映射的操作示例 5.6迭代器(Iterator) 5.6.1迭代器的概述 5.6.2迭代器的相關操作 5.6.3迭代器的操作示例 5.7集閤的架構 5.8小結 高級篇 第6章Scala類型參數 6.1泛型 6.1.1泛型的概述 6.1.2泛型的操作示例 6.2界定 6.2.1上下界界定 6.2.2視圖界定 6.2.3上下文界定 6.2.4多重界定 6.2.5界定的操作示例 6.3類型約束 6.3.1類型約束的概述 6.3.2類型約束的操作示例 6.4類型係統 6.4.1類型係統的概述 6.4.2類型係統的操作示例 6.5型變Variance 6.5.1協變 6.5.2逆變 6.5.3協變與逆變的操作示例 6.6結閤Spark源碼說明Scala類型參數的使用 6.7小結 第7章Scala高級類型 7.1單例類型 7.1.1單例類型概述 7.1.2單例類型示例 7.2類型彆名 7.2.1類型彆名概述 7.2.2類型彆名示例 7.3自身類型 7.3.1自身類型概述 7.3.2自身類型示例 7.4中置類型 7.4.1中置類型概述 7.4.2中置類型示例 7.5類型投影 7.5.1類型投影概述 7.5.2類型投影實例 7.6結構類型 7.6.1結構類型概述 7.6.2結構類型示例 7.7復閤類型 7.7.1復閤類型概述 7.7.2復閤類型示例 7.8存在類型 7.8.1存在類型概述 7.8.2存在類型示例 7.9函數類型 7.9.1函數類型概述 7.9.2函數類型示例 7.10抽象類型 7.10.1抽象類型概述 7.10.2抽象類型實例 7.11Spark源碼中的高級類型使用 7.12本章小結 第8章Scala隱式轉換 8.1隱式轉換函數 8.1.1隱式轉換函數的定義 8.1.2隱式轉換函數的功能 8.2隱式類與隱式對象 8.2.1隱式類 8.2.2隱式參數與隱式值 8.3類型證明中的隱式轉換 8.3.1類型證明的定義 8.3.2類型證明使用實例 8.4上下文界定、視圖界定中的隱式轉換 8.4.1Ordering與Ordered特質 8.4.2視圖界定中的隱式轉換 8.4.3上下文界定中的隱式轉換 8.5隱式轉換規則 8.5.1發生隱式轉換的條件 8.5.2不會發生隱式轉換的條件 8.6Spark源碼中的隱式轉換使用 8.6.1隱式轉換函數 8.6.2隱式類 8.6.3隱式參數 8.7本章小結 第9章Scala並發編程 9.1Scala的Actor模型簡介 9.2Scala Actor的構建方式 9.2.1繼承Actor類 9.2.2Actor工具方法 9.3Actor的生命周期 9.3.1start方法的等冪性 9.3.2Actor的不同狀態 9.4Actor之間的通信 9.4.1Actor之間發送消息 9.4.2Actor接收消息 9.5使用react重用綫程提升性能 9.6Channel通道 9.6.1OutputChannel 9.6.2InputChannel 9.6.3創建和共享channel 9.7同步和Future 9.8Scala並發編程實例 9.8.1Scala Actor並發編程 9.8.2ExecutorService並發編程 9.9小結 分布式框架篇 第10章Akka的設計理念 10.1Akka框架模型 10.2創建Actor 10.2.1通過實現akka.actor.Actor來創建Actor類 10.2.2使用非缺省構造方法創建 Actor 10.2.3創建匿名Actor 10.3Actor API 10.3.1Actor trait基本接口 10.3.2使用DeathWatch進行生命周期監控 10.3.3Hook函數的調用 10.3.4查找Actor 10.3.5消息的不可變性 10.3.6發送消息 10.3.7轉發消息 10.3.8接收消息 10.3.9迴應消息 10.3.10終止Actor 10.3.11Become/Unbecome 10.3.12殺死Actor 10.4不同類型的Actor 10.4.1方法派發語義 10.4.2終止有類型Actor 10.5小結 第11章Akka核心組件及核心特性剖析 11.1Dispatchers 和 Routers 11.1.1為Actor指定派發器 11.1.2派發器的類型 11.1.3郵箱 11.1.4Routers 11.1.5路由的使用 11.1.6遠程部署router 11.2Supervision和Monitoring 11.2.1Supervision 11.2.2Monitoring 11.3Akka中的事務 11.3.1STM 11.3.2使用STM事務 11.3.3讀取Agent事務中的數據 11.3.4更新Agent事務中的數據 11.3.5Actor中的事務 11.3.6創建Transactor 11.4小結 第12章Akka程序設計實踐 12.1Akka的配置、日誌及部署 12.1.1Akka中配置文件的讀寫 12.1.2Akka中日誌配置 12.1.3Akka部署及應用場景 12.2使用Akka框架實現單詞統計 12.3分布式Akka環境搭建 12.4使用Akka微內核部署應用 12.5Akka框架在Spark中的運用 12.6小結 第13章Kafka設計理念與基本架構 13.1Kafka産生的背景 13.2消息隊列係統 13.2.1概述 13.2.2常用的消息隊列係統對比 13.2.3Kafka特點及特性 13.2.4Kafka係統應用場景 13.3Kafka設計理念 13.3.1專業術語解析 13.3.2消息存儲與緩存設計 13.3.3消費者與生産者模型 13.3.4Push與Pull機製 13.3.5鏡像機製 13.4Kafka整體架構 13.4.1Kafka基本組成結構 13.4.2Kafka工作流程 13.5Kafka性能分析及優化 13.6Kafka未來研究方嚮 13.7小結 第14章Kafka核心組件及核心特性剖析 14.1Kafka核心組件剖析 14.1.1Producers 14.1.2Consumers 14.1.3Low Level Consumer 14.1.4High Level Consumer 14.2Kafka核心特性剖析 14.2.1Topic、Partitions 14.2.2Replication和Leader Election 14.2.3Consumer Rebalance 14.2.4消息傳送機製 14.2.5Kafka的可靠性 14.2.6Kafka的高效性 14.3Kafka即將發布版本核心組件及特性剖析 14.3.1重新設計的Consumer 14.3.2Coordinator Rebalance 14.4小結 第15章Kafka應用實踐 15.1Kafka開發環境搭建及運行環境部署 15.1.1Kafka開發環境配置 15.1.2Kafka運行環境安裝與部署 15.2基於Kafka客戶端開發 15.2.1消息生産者(Producer)設計 15.2.2消息消費者(Consumer)設計 15.2.3Kafka消費者與生産者配置 15.3Spark Streaming整閤Kafka 15.3.1基本架構設計流程 15.3.2消息消費者(Consumer)設計——基於Receiver方法 15.3.3消息消費者(Consumer)設計——基於No Receiver方法 15.3.4消息生産者(Producer)設計 15.4小結 附錄Kafka集群server.properties配置文檔 參考文獻
前言/序言
采用Scala語言編寫實現的,大數據領域最火爆的計算框架Spark(其實Spark在Apache下的數據處理領域也是最火爆的計算框架),正在以迅雷不及掩耳之勢快速發展。很少有一門語言能夠像Scala這樣,因其作為大數據框架Spark的核心和首選開發語言而爆發式地普及起來。Spark本身起源於2009年,是美國加州大學伯剋利分校AMP實驗室的一個研究性項目,於2010年開源,在2014、2015年大數據領域軟件排名中,Spark都以絕對優勢遙遙領先!雖然基於Spark平颱可以采用Scala、Java、Python、R等4種語言開發,但據Spark官方統計,2014年和2015年全世界範圍內基於Spark開發采用最多的語言一直都是Scala。另外,在大數據領域越來越多的其他技術框架,例如Kafka等也都把Scala作為實現和開發語言。因此,為瞭打好大數據領域學習的基礎,本書麵嚮廣大Scala愛好者和大數據開發者,以實戰為主導,並用實戰與理論相結閤的方式來幫助讀者學習Scala語言。 從2012年美國政府的“大數據研發計劃”,到2015年我國國務院發布的《促進大數據發展行動綱要》,可以說,大數據已經迎來瞭它的黃金時代。本書緊跟時代潮流,除瞭講解Scala語言之外,還額外挑選瞭當前在大數據領域中應用非常廣泛的Akka和Kafka兩大框架進行講解,並且詳細講解瞭Scala語言在其中的應用。其中,Akka是一個在JVM上構建高並發、分布式和可快速恢復的消息驅動應用的工具包;Kafka是高産齣的分布式消息係統,它實現瞭生産者和消費者之間的無縫連接,實現瞭處理速度快、高可擴展性的分布式實時係統。 本書編寫的主綫是以Scala實戰實例為主導,由淺入深,從Scala的基礎篇、中級篇直至高級篇,對Scala各個知識點加以詳細分析並給齣相應的實例及解析。然後更進一步地引入分布式框架篇,針對當前大數據領域使用非常廣泛的大分布式框架Akka和Kafka,擴展Scala語言在開發分布式框架時的實戰實例,為讀者進一步學習大數據領域各個框架打好基礎。 參與本書編寫的有王傢林、段智華、管祥青、徐奔、張敏、徐香玉等。 本書能順利齣版,離不開齣版社編輯們的大力支持與幫助,在此錶示誠摯的感謝。 非常感謝本書的技術審核徐香玉為審核本書技術相關內容所做齣的努力。 在閱讀本書的過程中,若發現任何問題或有任何疑問,可以加入本書的閱讀群提齣討論,會有專人幫忙答疑。同時,該群中也會提供本書所用實例代碼。 由於時間倉促,書中難免存在不妥之處,請讀者諒解,並提齣寶貴意見。
Scala語言基礎與開發實戰 epub pdf mobi txt 電子書 下載 2024
Scala語言基礎與開發實戰 下載 epub mobi pdf txt 電子書
評分
☆☆☆☆☆
書本不錯,快遞速度很快
評分
☆☆☆☆☆
此用戶未填寫評價內容
評分
☆☆☆☆☆
書裏內容講的很清晰,易懂;示例豐富、詳盡,很有代錶性;算法很全麵,易學、上手快,對初學者是一本很好的入門書;全五分好評哦。
評分
☆☆☆☆☆
不是非常簡潔,入門還可以吧
評分
☆☆☆☆☆
好好學習,天天嚮上!
評分
☆☆☆☆☆
書寫的很詳細,有很多源碼分析的內容
評分
☆☆☆☆☆
非常好
評分
☆☆☆☆☆
老師同學推薦買的,一下要瞭兩本,剛剛收到貨,正在學習大數據,大緻翻瞭一下,講的例子比較多,還不錯!值得推薦,給個好評
評分
☆☆☆☆☆
看瞭這本書的目錄,感覺不錯,果斷下單瞭。