日本免费精品视频,男人的天堂在线免费视频,成人久久久精品乱码一区二区三区,高清成人爽a毛片免费网站

在線客服
Hadoop + Spark 大數據巨量分析與機器學習整合開發實戰圖書
人氣:26

Hadoop + Spark 大數據巨量分析與機器學習整合開發實戰

手把手教你學習Hadoop + Spark免費贈送范例程序下載 提供微博交流學習及技術支持

作者簡介

林大貴,作者從事IT產業多年,包括系統設計、網站開發等諸多領域,具備豐富實戰開發經驗,多版多部具有影響力的作品。

目錄

第1章 大數據與機器學習 1

1.1 大數據定義 2

1.2 Hadoop簡介 2

1.3 Hadoop HDFS分布式文件系統 3

1.4 Hadoop MapReduce的介紹 5

1.5 Spark的介紹 6

1.6 機器學習的介紹 8

第2章 VirtualBox虛擬機軟件的安裝 11

2.1 VirtualBox的下載和安裝 12

2.2 設置VirtualBox語言版本 16

2.3 設置VirtualBox存儲文件夾 17

2.4 在VirtualBox創建虛擬機 18

第3章 Ubuntu Linux操作系統的安裝 23

3.1 下載安裝Ubuntu的光盤文件 24

3.2 在Virtual設置Ubuntu虛擬光盤文件 26

3.3 開始安裝Ubuntu 28

3.4 啟動Ubuntu 33

3.5 安裝增強功能 34

3.6 設置默認輸入法 38

3.7 設置“終端”程序 40

3.8 設置“終端”程序為白底黑字 42

3.9 設置共享剪貼板 43

第4章 Hadoop Single Node Cluster的安裝 46

4.1 安裝JDK 47

4.2 設置SSH無密碼登錄 50

4.3 下載安裝Hadoop 53

4.4 設置Hadoop環境變量 56

4.5 修改Hadoop配置設置文件 58

4.6 創建并格式化HDFS目錄 62

4.7 啟動Hadoop 63

4.8 打開Hadoop ResourceManager Web界面 66

4.9 NameNode HDFS Web界面 67

第5章 Hadoop Multi Node Cluster的安裝 69

5.1 把Single Node Cluster復制到data1 71

5.2 設置VirtualBox網卡 73

5.3 設置data1服務器 76

5.4 復制data1服務器到data2、data3、master 84

5.5 設置data2、data3服務器 87

5.6 設置master服務器 91

5.7 master連接到data1、data2、data3創建HDFS目錄 94

5.8 創建并格式化NameNode HDFS目錄 98

5.9 啟動Hadoop Multi Node Cluster 99

5.10 打開Hadoop ResourceManager Web界面 102

5.11 打開NameNode Web界面 103

第6章 Hadoop HDFS命令 104

6.1 啟動Hadoop Multi-Node Cluster 105

6.2 創建與查看HDFS目錄 107

6.3 從本地計算機復制文件到HDFS 109

6.4 將HDFS上的文件復制到本地計算機 114

6.5 復制與刪除HDFS文件 116

6.6 在Hadoop HDFS Web用戶界面瀏覽HDFS 118

第7章 Hadoop MapReduce 122

7.1 介紹wordCount.Java 123

7.2 編輯wordCount.Java 124

7.3 編譯wordCount.Java 127

7.4 創建測試文本文件 129

7.5 運行wordCount.Java 130

7.6 查看運行結果 131

7.7 Hadoop MapReduce的缺點 132

第8章 Spark的安裝與介紹 133

8.1 Spark的Cluster模式架構圖 134

8.2 Scala的介紹與安裝 135

8.3 安裝Spark 138

8.4 啟動spark-shell交互界面 141

8.5 設置spark-shell顯示信息 142

8.6 啟動Hadoop 144

8.7 本地運行spark-shell程序 145

8.8 在Hadoop YARN運行spark-shell 147

8.9 構建Spark Standalone Cluster執行環境 149

8.10 在Spark Standalone運行spark-shell 155

第9章 Spark RDD 159

9.1 RDD的特性 160

9.2 基本RDD“轉換”運算 161

9.3 多個RDD“轉換”運算 167

9.4 基本“動作”運算 169

9.5 RDD Key-Value 基本“轉換”運算 171

9.6 多個RDD Key-Value“轉換”運算 175

9.7 Key-Value“動作”運算 178

9.8 Broadcast廣播變量 181

9.9 accumulator累加器 184

9.10 RDD Persistence持久化 186

9.11 使用Spark創建WordCount 188

9.12 Spark WordCount詳細解說 191

第10章 Spark的集成開發環境 195

10.1 下載與安裝eclipse Scala IDE 197

10.2 下載項目所需要的Library 201

10.3 啟動eclipse 205

10.4 創建新的Spark項目 206

10.5 設置項目鏈接庫 210

10.6 新建scala程序 211

10.7 創建WordCount測試文本文件 213

10.8 創建WordCount.scala 213

10.9 編譯WordCount.scala程序 215

10.10 運行WordCount.scala程序 217

10.11 導出jar文件 220

10.12 spark-submit的詳細介紹 223

10.13 在本地local模式運行WordCount程序 224

10.14 在Hadoop yarn-client運行WordCount程序 226

10.15 在Spark Standalone Cluster上運行WordCount程序 230

10.16 本書范例程序的安裝說明 231

第11章 創建推薦引擎 236

11.1 推薦算法介紹 237

11.2 “推薦引擎”大數據分析使用場景 237

11.3 ALS推薦算法的介紹 238

11.4 ml-100k推薦數據的下載與介紹 240

11.5 使用spark-shell導入ml-100k數據 242

11.6 查看導入的數據 244

11.7 使用ALS.train進行訓練 247

11.8 使用模型進行推薦 250

11.9 顯示推薦的電影名稱 252

11.10 創建Recommend項目 255

11.11 Recommend.scala程序代碼 257

11.12 創建PrepareData()數據準備 259

11.13 recommend()推薦程序代碼 261

11.14 運行Recommend.scala 263

11.15 創建AlsEvaluation.scala調校推薦引擎參數 266

11.16 創建PrepareData()數據準備 269

11.17 進行訓練評估 270

11.18 運行AlsEvaluation 279

11.19 修改Recommend.scala為參數組合 281

第12章 StumbleUpon數據集 282

12.1 StumbleUpon數據集簡介 283

12.2 下載StumbleUpon數據 285

12.3 用LibreOffice Calc 電子表格查看train.tsv 288

12.4 二元分類算法 291

第13章 決策樹二元分類 292

13.1 決策樹的介紹 293

13.2 創建Classification項目 294

13.3 開始輸入RunDecisionTreeBinary.scala程序 296

13.4 數據準備階段 298

13.5 訓練評估階段 303

13.6 預測階段 308

13.7 運行RunDecisionTreeBinary.scala 311

13.6 修改RunDecisionTreeBinary調校訓練參數 313

13.7 運行RunDecisionTreeBinary進行參數調校 320

13.8 運行RunDecisionTreeBinary不進行參數調校 323

第14章 邏輯回歸二元分類 326

14.1 邏輯回歸分析介紹 327

14.2 RunLogisticRegression WithSGDBinary.scala程序說明 328

14.3 運行RunLogisticRegression WithSGDBinary.scala進行參數調校 331

14.4 運行RunLogisticRegression WithSGDBinary.scala不進行參數調校 335

第15章 支持向量機SVM二元分類 337

15.1 支持向量機SVM算法的基本概念 338

15.2 RunSVMWithSGDBinary.scala 程序說明 338

15.3 運行SVMWithSGD.scala進行參數調校 341

15.4 運行SVMWithSGD.scala不進行參數調校 344

第16章 樸素貝葉斯二元分類 346

16.1 樸素貝葉斯分析原理的介紹 347

16.2 RunNaiveBayesBinary.scala程序說明 348

16.3 運行NaiveBayes.scala進行參數調校 351

16.4 運行NaiveBayes.scala不進行參數調校 353

第17章 決策樹多元分類 355

17.1 “森林覆蓋植被”大數據問題分析場景 356

17.2 UCI Covertype數據集介紹 357

17.3 下載與查看數據 359

17.4 創建RunDecisionTreeMulti.scala 361

17.5 修改RunDecisionTreeMulti.scala程序 362

17.6 運行RunDecisionTreeMulti.scala進行參數調校 367

17.7 運行RunDecisionTreeMulti.scala不進行參數調校 371

第18章 決策樹回歸分析 373

18.1 Bike Sharing大數據問題分析 374

18.2 Bike Sharing數據集 375

18.3 下載與查看數據 375

18.4 創建RunDecisionTreeRegression.scala 378

18.5 修改RunDecisionTreeRegression.scala 380

18.6 運行RunDecisionTreeRegression. scala進行參數調校 389

18.7 運行RunDecisionTreeRegression. scala不進行參數調校 392

第19章 使用Apache Zeppelin 數據可視化 394

19.1 Apache Zeppelin簡介 395

19.2 安裝Apache Zeppelin 395

19.3 啟動Apache Zeppelin 399

19.4 創建新的Notebook 402

19.5 使用Zeppelin運行Shell 命令 403

19.6 創建臨時表UserTable 406

19.7 使用Zeppelin運行年齡統計Spark SQL 407

19.8 使用Zeppelin運行性別統計Spark SQL 409

19.9 按照職業統計 410

19.10 Spark SQL加入文本框輸入參數 412

19.11 加入選項參數 414

19.12 同時顯示多個統計字段 416

19.13 設置工具欄 419

19.14 設置段落標題 420

19.15 設置Paragraph段落的寬度 422

19.16 設置顯示模式 423

在線預覽

第 1 章 大數據與機器學習

1.1 大數據定義1.2 Hadoop簡介1.3 Hadoop HDFS分布式文件系統1.4 Hadoop MapReduce的介紹1.5 Spark的介紹1.6 機器學習的介紹

1.1 大數據定義大數據(Big data)又稱為巨量資料、巨量數據或海量數據。一般來說大數據的特性可歸類為3V:? Volume(大量數據)? 因特網、企業 IT、物聯網、社區、短信、電話、網絡搜索、在線交易等,隨時都在快速累積龐大的數據。? 數據量很容易達到TB(Terabyte,1024 GB),甚至 PB(Petabyte,1024TB)或EB(Exabyte,1024 PB)的等級。? Variety(多樣性)大數據的數據類型非常多樣化,可分為非結構化信息和結構化信息。? 非結構化信息:文字、圖片、圖像、視頻、音樂、地理位置信息、個人化信息——如社區、交友數據等。? 結構化信息:數據庫、數據倉庫等。? Velocity(時效性)? 數據的傳輸流動:隨著帶寬越來越大、設備越來越多,每秒產生的數據流越來越大。? 組織必須能實時處理大量的信息:因為時間太久就失去了數據的價值,數據必須能在最短時間內得出分析結果。大數據的影響已經深入到各個領域和行業,在商業、經濟及其他領域中,將大量數據進行分析后,就可得出許多數據的關聯性。可用于預測商業趨勢、營銷研究、金融財務、疾病研究、打擊犯罪等。決策行為將基于數據和分析的結果,而不是依靠經驗和直覺。1.2 Hadoop 簡介Hadoop是存儲與處理大量數據的平臺,是Apache軟件基金會的開放源碼、免費且廣泛使用的軟件。Hadoop名稱來自于原作者孩子的黃色小象玩具。這個名字容易拼字與發音,適合作為軟件開發代碼,黃色小象因此成為Hadoop的標志。? Hadoop的發展歷史2002年Doug Cutting與Mike Cafarelia開始進行Nutch項目。2003年Google發表GFS(Google File System)與MapReduce論文。2004年Doug Cutting開始將DFS與MapReduce加入Nutch項目。2006年Doug Cutting加入Yahoo團隊,并將Nutch改名為Hadoop。2008年Yahoo使用Hadoop包含了910個集群,對1TB的數據排序花了297秒。? Hadoop特性特性 說明可擴展性(Scalable) 由于Hadoop采用分布式計算與存儲,當我們擴充容量或運算時,不需要更換整個系統,只需要增加新的數據節點服務器即可經濟性(Economical) 由于Hadoop采用分布式計算與存儲,不必使用昂貴高端的服務器,只需一般等級的服務器就可架構出高性能、高容量的集群彈性(Flexible) 傳統的關系數據庫存儲數據時必須有數據表結構schema(各個數據對象的集合),然而Hadoop存儲的數據是非結構化(schema-less)的,也就是說可以存儲各種形式、不同數據源的數據性(Reliable) Hadoop采用分布式架構,因此即使某一臺服務器硬件壞掉,甚至整個機架壞掉,HDFS仍可正常運行,因為數據還會有另外2個副本1.3 Hadoop HDFS分布式文件系統 HDFS采用分布式文件系統(Hadoop Distributed File System),可以由單臺服務器擴充到數千臺服務器,如圖1-1所示。 圖1-1 HDFS采用分布式文件系統的可擴充架構? NameNode服務器負責管理與維護HDFS目錄系統并控制文件的讀寫操作。? 多個DataNode服務器負責存儲數據,在圖1-1中我們只列出3個DataNode,實際上大型的集群可以有成千上萬個節點。? HDFS設計的前提與目標? 硬件故障是常態而不是異常(Hardware Failure)HDFS是設計運行在低成本的普通服務器上的。硬件故障是常態,而不是異常,所以HDFS被設計成具有高度容錯能力,能夠實時檢測錯誤并且自動恢復,這是HDFS最核心的設計目標。? Streaming流式數據存取(Streaming Data Access)運行在HDFS上的應用程序會通過Streaming存取數據集。HDFS的主要設計是批處理,而不是實時互動處理,優點是可以提高存取大量數據的能力,但是犧牲了響應時間。? 大數據集(Large Data Sets)為了存儲大數據集,HDFS提供了cluster集群架構,用于存儲大數據文件,集群可擴充至數百個節點。? 簡單一致性模型(Simple Coherency Model)HDFS的存取模式是一次寫入多次讀取(write-once-read-many)。一個文件被創建后就不會再修改。這樣設計的優點是:可以提高存儲大量數據的能力,并簡化數據一致性的問題。? 移動“計算”比移動“數據”成本更低(Moving Computation is Cheaper than Moving Data)當我們的cluster集群存儲了大量的數據時,要搬移數據必須耗費大量的時間成本。因此如果我們有“計算”數據的需求時,就會將“計算功能”在接近數據的服務器中運行,而不是搬移數據。? 跨硬件與軟件平臺HDFS在設計時就考慮到平臺的可移植性。這種特性有利于Hadoop的推廣。? HDFS文件存儲架構(見圖1-2) 圖1-2 HDFS文件存儲架構? 文件分割? 當用戶以HDFS命令要求存儲文件時,系統會將文件切割為多個區塊(Block),每個區塊是64MB。在圖1-2中,文件被分割為A、B、C共3個區塊。? 區塊副本策略? 一個文件區塊默認會復制成3份,你可以在Hadoop配置中設置文件區塊要創建幾個副本。? 文件區塊損壞時,NameNode會自動尋找位于其他DataNode上的副本來恢復數據,維持3份的副本策略。? 機架感知? 在圖1-2中,共有Rack1、Rack2、Rack3共3個機架,每個機架都有4臺DataNode服務器。? HDFS具備機架感知功能,如圖1-2所示。以Block C為例:及時份副本放在Rack1機架的節點,第二份放在同機架Rack1的不同節點,一份放在不同機架Rack3的不同節點。? 這樣設計的好處是防止數據遺失,有任何機架出現故障仍可以保障恢復數據,提高網絡性能。1.4 Hadoop MapReduce的介紹利用大數據進行數據分析處理時,數據量龐大,所需的運算量也巨大。Hadoop MapReduce的做法是采用分布式計算的技術:? Map將任務分割成更小任務,由每臺服務器分別運行,如圖1-3所示。? Reduce將所有服務器的運算結果匯總整理,返回的結果。通過MapReduce方式,可以在上千臺機器上并行處理巨量的數據,大大減少數據處理的時間。? MapReduce 版本2.0 YARNHadoop 新的MapReduce架構稱為YARN(Yet Another Resource Negotiator,另一種資源協調者),是效率更高的資源管理核心。可以到下列網址查看YARN架構圖(見圖1-4):hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/YARN.html 圖1-4 YARN資源管理系統的架構圖從圖1-4中可以看到:? 在Client客戶端,用戶會向Resource Manager請求執行運算(或執行任務)。? 在NameNode會有Resource Manager統籌管理運算的請求。? 在其他的DataNode會有Node Manager負責運行,以及監督每一個任務(task),并且向Resource Manager匯報狀態。? Hadoop MapReduce的計算框架如圖1-5所示,Hadoop MapReduce在運算時,需要將中間產生的數據存儲在硬盤中。然而,磁盤I/O往往是性能的瓶頸,因此會有讀寫數據延遲的問題。 圖1-5 Hadoop MapReduce運算過程的示意圖在后續章節,我們介紹的Spark是基于內存的計算框架,可以大幅提升性能。1.5 Spark的介紹Apache Spark是開放源碼的集群運算框架,由加州大學伯克利分校的AMPLab開發。Spark是一個彈性的運算框架,適合進行Spark Streaming數據流處理、Spark SQL互動分析、MLlib機器學習等應用,因此Spark可成為一個用途廣泛的大數據運算平臺。Spark允許用戶將數據加載到cluster集群的內存中存儲,并多次重復運算,非常適合用于機器學習的算法。? Spark in-memory的計算框架如圖1-6所示,Spark是基于內存的計算框架。Spark在運算時,將中間產生的數據暫存在內存中,因此可以加快運行速度。尤其是需要反復操作的次數越多,所需讀取的數據量越大,就越能看出Spark的性能。Spark在內存中運行程序,命令運行速度(或命令周期)能比Hadoop MapReduce的命令運行速度快上100倍,即便是運行于硬盤上時Spark的速度也能快上10倍。 圖1-6 Spark in-memory的計算框架? Spark發展歷史年代 說明2009 由Matei Zaharia在加州大學伯克利分校的AMPLab開發2010 通過BSD授權條款開放源碼2013 該項目被捐贈給Apache軟件基金會2014/2 Spark成為Apache的頂級項目2014/11 Databricks團隊使用Spark刷新數據排序的世界紀錄2015/3 Spark 1.3.1版? Spark特色特色 說明命令周期短 Spark是基于內存計算的開放源碼集群運算系統,比原先的Hadoop MapReduce快100倍易于開發程序 目前Spark支持多種語言:Scala、Python、Java,也就是說開發者可以根據應用的環境來決定使用哪一種語言開發Spark程序,更具彈性,更符合開發時的需求Hadoop兼容 Spark提供了Hadoop Storage API,使它支持Hadoop的HDFS存儲系統。并且支持Hadoop YARN,可共享存儲資源與運算,而且幾乎與Hive兼容可在各平臺運行 ? 我們可以在本地端的機器上運行Spark程序,只需要import Spark的鏈接庫即可? 也可以在自有的群集上運行Spark程序,例如Mesos、Hadoop YARN等自行建立的群集? 針對更大規模的計算工作,我們可以選擇將Spark程序送至AWS的EC2平臺上運行,按照用戶使用的計算資源計費? Spark主要功能(參考圖1-7) 圖1-7 Spark的主要功能模塊功能 說明Spark SQL Spark SQL可以使用熟知的SQL查詢語言來運行數據分析Spark Streaming Spark Streaming可實現實時的數據串流的處理,具有大數據量、容錯性、可擴充性等特點GraphX GraphX是Spark上的分布式圖形處理架構,可用圖表計算MLlib MLlib是一個可擴充的Spark機器學習庫,可使用許多常見的機器學習算法,簡化大規模機器學習的時間。算法包括分類與回歸、支持向量機、回歸、線性回歸、決策樹、樸素貝葉斯、聚類分析、協同過濾等1.6 機器學習的介紹由于機器學習技術的進步,應用相當廣泛,例如推薦引擎、定向廣告、需求預測、垃圾郵件過濾、醫學診斷、自然語言處理、搜索引擎、欺詐檢測、證券分析、視覺識別、語音識別、手寫識別等。? 機器學習架構機器學習(Machine Learning)是通過算法,使用歷史數據進行訓練,訓練完成后會產生模型。未來當有新的數據提供時,我們可以使用訓練產生的模型進行預測。機器學習訓練用的數據是由Features、Label組成的。? Feature:數據的特征,例如濕度、風向、風速、季節、氣壓。? Label:數據的標簽,也就是我們希望預測的目標,例如降雨(0.不會下雨、1.會下雨)、天氣(1.晴天、2.雨天、3.陰天、4.下雪)、氣溫。如圖1-8所示,機器學習可分為以下兩個階段。? 訓練階段(Training)訓練數據是過去累積的歷史數據,可能是文本文件、數據庫或其他來源。經過Feature Extraction(特征提取),產生Feature(數據特征)與Label(預測目標),然后經過機器學習算法的訓練后產生模型。? 預測階段(Predict)新輸入數據(可能是文本文件、數據庫或其他來源),經過Feature Extraction(特征提取)產生Feature,使用訓練完成的模型進行預測,產生預測結果。 圖1-8 機器學習的兩個階段? 機器學習分類對于有監督的學習(Supervised Learning),從現有數據我們希望預測的答案有下列分類。? 二元分類我們已知濕度、風向、風速、季節、氣壓等數據特征,希望預測當天是否會下雨(0. 不會下雨、1. 會下雨)。因為希望預測的目標Label只有2種選項,所以就像是非題。? 多元分類我們已知濕度、風向、風速、季節、氣壓等數據特征,希望預測當天的天氣(1. 晴天、2. 雨天、3. 陰天、4. 下雪)。因為希望預測的目標Label有多個選項,所以就像選擇題。? 回歸分析我們已知濕度、風向、風速、季節、氣壓等數據特征,希望預測當天的氣溫。因為希望預測的目標Label是連續值,所以就像是計算題。但是對于無監督的學習(Unsupervised Learning),從現有數據我們不知道要預測的答案,所以沒有Label(預測目標)。cluster聚類分析的目的是將數據分成幾個相異性較大的群組,而群組內的相似性較高。根據上述內容我們可以整理出下列表格。分類 算法 Features(特征) Label(預測目標)有監督的學習 二元分類(Binary Classification) 濕度、風向、風速、季節、氣壓…… 只有0與1選項(是非題)0. 不會下雨、1. 會下雨有監督的學習 多元分類(Multi-Class Classification) 濕度、風向、風速、季節、氣壓…… 有多個選項(選擇題)1. 晴天、2. 雨天、3. 陰天、4. 下雪有監督的學習 回歸分析(Regression) 濕度、風向、風速、季節、氣壓…… 值是數值(計算題)溫度可能是 -50~50度的范圍無監督的學習 聚類分析(Clustering) 濕度、風向、風速、季節、氣壓…… 無LabelCluster聚類分析;目的是將數據分成幾個相異性較大的群組,而群組內的相似性較高機器學習分類可以整理成圖1-9。 圖1-9 機器學習的分類

網友評論(不代表本站觀點)

來自匿名用**的評論:

質量還不錯

2017-01-13 17:25:54
來自w***8(**的評論:

內容不錯!給開發人員用的

2017-02-10 22:02:44
來自cqxuche**的評論:

沒什么用,就是截圖加上粘貼

2017-02-11 17:51:51
來自匿名用**的評論:

種類齊全,值得購買

2017-02-23 15:08:55
來自p***2(**的評論:

包裝印刷都不錯。

2017-03-08 21:03:01
來自匿名用**的評論:

挺好的,發貨送貨都很快

2017-03-15 19:02:26
來自巒***(**的評論:

適合模仿學習。

2017-04-15 14:39:08
來自無昵稱**的評論:

還沒看完看完再評論

2017-04-20 11:06:28
來自寧***s(**的評論:

專業用書 非常好 正版 在當當買書放心

2017-04-23 14:02:49
來自寧***s(**的評論:

非常好的專業書,正版1

2017-04-27 09:01:43
來自**(匿名**的評論:

內容淺顯易懂,入門級書籍

2017-05-22 18:42:50
來自匿名用**的評論:

很實用,方便

2017-06-04 20:06:06
來自春***7(**的評論:

有點簡單,適合初學

2017-06-18 23:01:50
來自無昵稱**的評論:

還沒看應該是本不錯的指南

2017-06-26 09:31:08
來自無昵稱**的評論:

紙張很好!

2017-07-07 23:03:04
來自無昵稱**的評論:

包裝完好,物流很快!

2017-07-07 23:19:12
來自無昵稱**的評論:

紙張很好!

2017-07-07 23:26:39
來自無昵稱**的評論:

書很好!!

2017-07-07 23:51:13
來自無昵稱**的評論:

紙張很好!

2017-07-07 23:51:43
來自無昵稱**的評論:

紙張很好!

2017-07-08 00:15:35
來自匿名用**的評論:

很好的商品

2017-07-28 23:00:42
來自無昵稱**的評論:

還不錯,還沒來及看,先評論了!

2017-07-31 13:54:32
來自匿名用**的評論:

包裝不錯 性價比很高 印刷很正 紙質好 排版不錯包裝不錯 性價比很高 印刷很正 紙質好 排版不錯

2017-08-21 17:49:24
來自無昵稱**的評論:

不錯,很實用,紙質也很好,很喜歡

2017-08-28 14:36:11
來自無昵稱**的評論:

速度快,一步步講解很詳細,適合新人

2017-09-10 10:50:26
來自shuobud**的評論:

得著時間好好研究

2017-09-16 01:21:17
來自無昵稱**的評論:

感覺還行…

2017-11-01 12:49:02
來自匿名用**的評論:

很專業的書,對于我這種還沒入門的,不太容易看懂,但是看起來還是挺好的

2017-11-08 12:47:14

免責聲明

更多出版社