首先,學(xué)習(xí)大數(shù)據(jù)是需要有java,python和R語言的基礎(chǔ)。
成都創(chuàng)新互聯(lián)堅(jiān)實(shí)的技術(shù)研發(fā)基礎(chǔ)贏得了行業(yè)內(nèi)的良好口碑,公司成立十多年來,為成百上千家企業(yè)提供過網(wǎng)站建設(shè)、軟件開發(fā)、搜索引擎優(yōu)化技術(shù)、互聯(lián)網(wǎng)大數(shù)據(jù)整合營銷服務(wù),多年的技術(shù)服務(wù)成功經(jīng)驗(yàn)、眾多的客戶使我們能懂得更多,做得更好。"讓您的網(wǎng)站跑起來"是我們一直追求的目標(biāo)!
1) Java學(xué)習(xí)到什么樣的程度才可以學(xué)習(xí)大數(shù)據(jù)呢?
java需要學(xué)會(huì)javaSE即可。javaweb,javaee對(duì)于大數(shù)據(jù)用不到。學(xué)會(huì)了javase就可以看懂hadoop框架。
2) python是最容易學(xué)習(xí)的,難易程度:python java Scala 。
python不是比java更直觀好理解么,因?yàn)闀?huì)了Python 還是要學(xué)習(xí)java的,你學(xué)會(huì)了java,再來學(xué)習(xí)python會(huì)很簡單的,一周的時(shí)間就可以學(xué)會(huì)python。
3) R語言也可以學(xué)習(xí),但是不推薦,因?yàn)閖ava用的人最多,大數(shù)據(jù)的第一個(gè)框架Hadoop,底層全是Java寫的。就算學(xué)會(huì)了R還是看不懂hadoop。
java在大數(shù)據(jù)中的作用是構(gòu)成大數(shù)據(jù)的語言,大數(shù)據(jù)的第一個(gè)框架Hadoop以及其他大數(shù)據(jù)技術(shù)框架,底層語言全是Java寫的,所以推薦首選學(xué)習(xí)java
大數(shù)據(jù)開發(fā)學(xué)習(xí)路線:
第一階段:Hadoop生態(tài)架構(gòu)技術(shù)
1、語言基礎(chǔ)
Java:多理解和實(shí)踐在Java虛擬機(jī)的內(nèi)存管理、以及多線程、線程池、設(shè)計(jì)模式、并行化就可以,不需要深入掌握。
Linux:系統(tǒng)安裝、基本命令、網(wǎng)絡(luò)配置、Vim編輯器、進(jìn)程管理、Shell腳本、虛擬機(jī)的菜單熟悉等等。
Python:基礎(chǔ)語法,數(shù)據(jù)結(jié)構(gòu),函數(shù),條件判斷,循環(huán)等基礎(chǔ)知識(shí)。
2、環(huán)境準(zhǔn)備
這里介紹在windows電腦搭建完全分布式,1主2從。
VMware虛擬機(jī)、Linux系統(tǒng)(Centos6.5)、Hadoop安裝包,這里準(zhǔn)備好Hadoop完全分布式集群環(huán)境。
3、MapReduce
MapReduce分布式離線計(jì)算框架,是Hadoop核心編程模型。
4、HDFS1.0/2.0
HDFS能提供高吞吐量的數(shù)據(jù)訪問,適合大規(guī)模數(shù)據(jù)集上的應(yīng)用。
5、Yarn(Hadoop2.0)
Yarn是一個(gè)資源調(diào)度平臺(tái),主要負(fù)責(zé)給任務(wù)分配資源。
6、Hive
Hive是一個(gè)數(shù)據(jù)倉庫,所有的數(shù)據(jù)都是存儲(chǔ)在HDFS上的。使用Hive主要是寫Hql。
7、Spark
Spark 是專為大規(guī)模數(shù)據(jù)處理而設(shè)計(jì)的快速通用的計(jì)算引擎。
8、SparkStreaming
Spark Streaming是實(shí)時(shí)處理框架,數(shù)據(jù)是一批一批的處理。
9、SparkHive
Spark作為Hive的計(jì)算引擎,將Hive的查詢作為Spark的任務(wù)提交到Spark集群上進(jìn)行計(jì)算,可以提高Hive查詢的性能。
10、Storm
Storm是一個(gè)實(shí)時(shí)計(jì)算框架,Storm是對(duì)實(shí)時(shí)新增的每一條數(shù)據(jù)進(jìn)行處理,是一條一條的處理,可以保證數(shù)據(jù)處理的時(shí)效性。
11、Zookeeper
Zookeeper是很多大數(shù)據(jù)框架的基礎(chǔ),是集群的管理者。
12、Hbase
Hbase是一個(gè)Nosql數(shù)據(jù)庫,是高可靠、面向列的、可伸縮的、分布式的數(shù)據(jù)庫。
13、Kafka
kafka是一個(gè)消息中間件,作為一個(gè)中間緩沖層。
14、Flume
Flume常見的就是采集應(yīng)用產(chǎn)生的日志文件中的數(shù)據(jù),一般有兩個(gè)流程。
一個(gè)是Flume采集數(shù)據(jù)存儲(chǔ)到Kafka中,方便Storm或者SparkStreaming進(jìn)行實(shí)時(shí)處理。
另一個(gè)流程是Flume采集的數(shù)據(jù)存儲(chǔ)到HDFS上,為了后期使用hadoop或者spark進(jìn)行離線處理。
第二階段:數(shù)據(jù)挖掘算法
1、中文分詞
開源分詞庫的離線和在線應(yīng)用
2、自然語言處理
文本相關(guān)性算法
3、推薦算法
基于CB、CF,歸一法,Mahout應(yīng)用。
4、分類算法
NB、SVM
5、回歸算法
LR、DecisionTree
6、聚類算法
層次聚類、Kmeans
7、神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)
NN、Tensorflow
以上就是學(xué)習(xí)Hadoop開發(fā)的一個(gè)詳細(xì)路線,如果需要了解具體框架的開發(fā)技術(shù),可咨詢加米谷大數(shù)據(jù)老師,詳細(xì)了解。
學(xué)習(xí)大數(shù)據(jù)開發(fā)需要掌握哪些技術(shù)呢?
(1)Java語言基礎(chǔ)
Java開發(fā)介紹、熟悉Eclipse開發(fā)工具、Java語言基礎(chǔ)、Java流程控制、Java字符串、Java數(shù)組與類和對(duì)象、數(shù)字處理類與核心技術(shù)、I/O與反射、多線程、Swing程序與集合類
(2)HTML、CSS與Java
PC端網(wǎng)站布局、HTML5+CSS3基礎(chǔ)、WebApp頁面布局、原生Java交互功能開發(fā)、Ajax異步交互、jQuery應(yīng)用
(3)JavaWeb和數(shù)據(jù)庫
數(shù)據(jù)庫、JavaWeb開發(fā)核心、JavaWeb開發(fā)內(nèi)幕
LinuxHadoop生態(tài)體系
Linux體系、Hadoop離線計(jì)算大綱、分布式數(shù)據(jù)庫Hbase、數(shù)據(jù)倉庫Hive、數(shù)據(jù)遷移工具Sqoop、Flume分布式日志框架
分布式計(jì)算框架和SparkStrom生態(tài)體系
(1)分布式計(jì)算框架
Python編程語言、Scala編程語言、Spark大數(shù)據(jù)處理、Spark—Streaming大數(shù)據(jù)處理、Spark—Mlib機(jī)器學(xué)習(xí)、Spark—GraphX 圖計(jì)算、實(shí)戰(zhàn)一:基于Spark的推薦系統(tǒng)(某一線公司真實(shí)項(xiàng)目)、實(shí)戰(zhàn)二:新浪網(wǎng)()
(2)storm技術(shù)架構(gòu)體系
Storm原理與基礎(chǔ)、消息隊(duì)列kafka、Redis工具、zookeeper詳解、大數(shù)據(jù)項(xiàng)目實(shí)戰(zhàn)數(shù)據(jù)獲取、數(shù)據(jù)處理、數(shù)據(jù)分析、數(shù)據(jù)展現(xiàn)、數(shù)據(jù)應(yīng)用
大數(shù)據(jù)分析—AI(人工智能)Data
Analyze工作環(huán)境準(zhǔn)備數(shù)據(jù)分析基礎(chǔ)、數(shù)據(jù)可視化、Python機(jī)器學(xué)習(xí)
以上的回答希望對(duì)你有所幫助
NoSQL,指的是非關(guān)系型的數(shù)據(jù)庫。隨著互聯(lián)網(wǎng)web2.0網(wǎng)站的興起,傳統(tǒng)的關(guān)系數(shù)據(jù)庫在應(yīng)付web2.0網(wǎng)站,特別是超大規(guī)模和高并發(fā)的
SNS類型的web2.0純動(dòng)態(tài)網(wǎng)站已經(jīng)顯得力不從心,暴露了很多難以克服的問題,而非關(guān)系型的數(shù)據(jù)庫則由于其本身的特點(diǎn)得到了非常迅速的發(fā)展。
NoSQL(NoSQL
= Not Only SQL
),意即“不僅僅是SQL”,是一項(xiàng)全新的數(shù)據(jù)庫革命性運(yùn)動(dòng),早期就有人提出,發(fā)展至2009年趨勢越發(fā)高漲。NoSQL的擁護(hù)者們提倡運(yùn)用非關(guān)系型的數(shù)
據(jù)存儲(chǔ),相對(duì)于鋪天蓋地的關(guān)系型數(shù)據(jù)庫運(yùn)用,這一概念無疑是一種全新的思維的注入。
從這一新興技術(shù)中選擇一款正確的NoSQL數(shù)據(jù)庫是非常具有挑戰(zhàn)性的。比一下網(wǎng)建議在選擇時(shí)考慮以下因素:
并發(fā)控制
并
發(fā)控制指的是當(dāng)多個(gè)用戶同時(shí)更新運(yùn)行時(shí),用于保護(hù)數(shù)據(jù)庫完整性的各種技術(shù)。并發(fā)機(jī)制不正確可能導(dǎo)致臟讀、幻讀和不可重復(fù)讀等此類問題。并發(fā)控制的目的是保
證一個(gè)用戶的工作不會(huì)對(duì)另一個(gè)用戶的工作產(chǎn)生不合理的影響。在某些情況下,這些措施保證了當(dāng)用戶和其他用戶一起操作時(shí),所得的結(jié)果和她單獨(dú)操作時(shí)的結(jié)果是
一樣的。在另一些情況下,這表示用戶的工作按預(yù)定的方式受其他用戶的影響。
封鎖
就是事務(wù)T在對(duì)某個(gè)數(shù)據(jù)對(duì)象(例如表、記錄等)操作之前,先向系統(tǒng)發(fā)出請(qǐng)求,對(duì)其加鎖。加鎖后事務(wù)T就對(duì)該數(shù)據(jù)對(duì)象有了一定的控制,在事務(wù)T釋放它的鎖之前,其它的事務(wù)不能更新此數(shù)據(jù)對(duì)象。
封鎖是一次只允許一個(gè)用戶讀取或修改的一種機(jī)制,是實(shí)現(xiàn)并發(fā)控制的一個(gè)非常重要的技術(shù)。
MVCC
Multi-Version Concurrency Control多版本并發(fā)控制,維持一個(gè)數(shù)據(jù)的多個(gè)版本使讀寫操作沒有沖突。MVCC優(yōu)化了數(shù)據(jù)庫并發(fā)系統(tǒng),使系統(tǒng)在有大量并發(fā)用戶時(shí)得到最高的性能,并且可以不用關(guān)閉服務(wù)器就直接進(jìn)行熱備份。
ACID
指
數(shù)據(jù)庫事務(wù)正確執(zhí)行的四個(gè)基本要素的縮寫。包含:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久
性(Durability)。一個(gè)支持事務(wù)(Transaction)的數(shù)據(jù)庫系統(tǒng),必需要具有這四種特性,否則在事務(wù)過程(Transaction
processing)當(dāng)中無法保證數(shù)據(jù)的正確性,交易過程極可能達(dá)不到交易方的要求。
None
一些系統(tǒng)不提供原子性。
鏡像
數(shù)據(jù)庫鏡像是DBMS根據(jù)DBA的要求,自動(dòng)把整個(gè)數(shù)據(jù)庫或其中的關(guān)鍵數(shù)據(jù)復(fù)制到另一個(gè)磁盤上,每當(dāng)主數(shù)據(jù)庫更新時(shí),DBMS會(huì)自動(dòng)把更新后的數(shù)據(jù)復(fù)制過去,即DBMS自動(dòng)保證鏡像數(shù)據(jù)與主數(shù)據(jù)的一致性。
鏡像分為同步和異步。
數(shù)據(jù)存儲(chǔ)
指的是數(shù)據(jù)的物理特性怎樣被存儲(chǔ)在數(shù)據(jù)庫中。
磁盤 數(shù)據(jù)被存儲(chǔ)在硬盤驅(qū)動(dòng)器里;
GFS或谷歌文件系統(tǒng)是一個(gè)由谷歌開發(fā)的專有的分布式文件系統(tǒng);
Hadoop是Apache軟件框架,免費(fèi)許可下支持?jǐn)?shù)據(jù)密集型分布式應(yīng)用程序;
RAM隨機(jī)存儲(chǔ)器;
插件 可以添加外部插件;
Amazon S3通過Web服務(wù)接口提供存儲(chǔ);
BDB:BDB
全稱是 “Berkeley DB”,它是MySQL具有事務(wù)能力的表類型,由Sleepycat
Software開發(fā)。BDB表類型提供了MySQL用戶長久期盼的功能,即事務(wù)控制能力。在任何RDBMS中,事務(wù)控制能力都是一種極其重要和寶貴的功
能。事務(wù)控制能力使得我們能夠確保一組命令確實(shí)已經(jīng)全部執(zhí)行成功,或者確保當(dāng)任何一個(gè)命令出現(xiàn)錯(cuò)誤時(shí)所有命令的執(zhí)行結(jié)果均被退回。
實(shí)現(xiàn)語言
實(shí)現(xiàn)語言會(huì)影響數(shù)據(jù)庫的發(fā)展速度。典型的NoSQL數(shù)據(jù)庫是用低級(jí)語言如C / C + +編寫的。另一方面,那些更高層次的語言如Java,使自定義更容易。
實(shí)現(xiàn)語言有:C, C++, Erlang, Java, Python
特性
考慮下列哪一個(gè)特點(diǎn)對(duì)你的數(shù)據(jù)庫是最重要的:
持久性
可用性
一致性
分區(qū)容忍性
證書類型
下面這些許可證是一個(gè)不同的開放源碼許可的形式:
GPL:通用公共許可證
BSD:伯克利軟件分發(fā)
MPL:Mozilla公共許可證
EPL:Eclipse公共許可證
IDPL:最初的開發(fā)者的公共許可證
LGPL:較寬松通用公共許可證
存儲(chǔ)類型
存儲(chǔ)類型是NoSQL數(shù)據(jù)庫最大的不同,是決定使用哪款數(shù)據(jù)庫的一個(gè)首要指標(biāo)。
關(guān)鍵字:支持get、put和刪除操作
按列存儲(chǔ):相對(duì)于傳統(tǒng)的按行存儲(chǔ),數(shù)據(jù)集成容易多了
面向文件系統(tǒng):存儲(chǔ)像是JSON或XML這樣的結(jié)構(gòu)化文件,很容易就能從面向?qū)ο筌浖蝎@取數(shù)據(jù)。
mongodb hoodoop hbase 等?,F(xiàn)在都挺火的。目前京東,58,360都在使用mongodb。