{eval=Array;=+count(Array);}
大數(shù)據(jù)是我的主要研究方向之一,我使用Java的時間也比較久,多年前(2008年)還出版過Java的書籍,所以我來說一說Java與大數(shù)據(jù)的結(jié)合都需要學習哪些內(nèi)容。
首先Java是一門編程語言,而大數(shù)據(jù)則是一個產(chǎn)業(yè)領域,簡單的說做大數(shù)據(jù)的相關研發(fā)可以使用Java語言來實現(xiàn),Java是大數(shù)據(jù)領域的一個重要工具。
大數(shù)據(jù)行業(yè)涉及到諸多崗位,這些崗位主要圍繞數(shù)據(jù)展開,包括數(shù)據(jù)采集、數(shù)據(jù)整理、數(shù)據(jù)傳輸、數(shù)據(jù)存儲、數(shù)據(jù)安全、數(shù)據(jù)分析、數(shù)據(jù)呈現(xiàn)以及應用等。這些不同的崗位有不同的職責,所使用的工具也不盡相同。
在數(shù)據(jù)采集端往往與物聯(lián)網(wǎng)對接,當然也有大量的傳統(tǒng)ERP系統(tǒng),這部分崗位要對數(shù)據(jù)庫知識有全面的了解。目前有不少ERP系統(tǒng)都是采用Java語言開發(fā)的,當然了解Java開發(fā)知識對這部分崗位也是有一定幫助的。
在數(shù)據(jù)的存儲端往往涉及到云計算平臺,云計算跟大數(shù)據(jù)的關系十分密切,主要涉及到數(shù)據(jù)的分布式存儲和分布式計算。一般情況下,云平臺是大數(shù)據(jù)的重要支撐,云計算平臺為大數(shù)據(jù)提供硬件資源,做云計算研發(fā)的Java程序員主要圍繞資源管理展開工作,嚴格的說這部分開發(fā)屬于云計算研發(fā)的范疇。
Java做大數(shù)據(jù)主要的應用在數(shù)據(jù)分析和呈現(xiàn)上,使用Java做算法實現(xiàn),做落地應用。這部分知識涉及到Java基礎語法、JavaWeb開發(fā)、Java數(shù)據(jù)結(jié)構(gòu)、Java分布式開發(fā)等幾大方面的知識,另外需要掌握Hadoop及Spark平臺的開發(fā)API。
Java基礎語法部分圍繞類、對象、屬性和方法展開,包括封裝、繼承、多態(tài)等幾個核心概念的掌握。Java Web開發(fā)則包括Servlet、JSP、JavaBean等基本的Web組件,以及SpringMVC框架等知識的掌握。Java分布式開發(fā)則要掌握RMI,以及Java分布式框架的應用。
由于Hadoop平臺本身就是基于Java構(gòu)建的,所以一般在Hadoop平臺下使用Java也是一個常見的選擇。Hadoop平臺為Java語言提供了一系列API,以方便Java在Hadoop平臺下的場景研發(fā)。
我在頭條上寫了關于Java的系列文章,包括Java基礎開發(fā)、Java并發(fā)、Java分布式開發(fā)和JavaWeb開發(fā),感興趣的朋友可以關注我的頭條號,相信一定會有所收獲。
如果有Java、大數(shù)據(jù)方面的問題,也可以咨詢我。
謝謝!
Java是編程語言,編程語言可以用來開發(fā)各種應用軟件,比如BS架構(gòu)的各類web系統(tǒng),如電商系統(tǒng),CRM系統(tǒng),移動運營商的業(yè)務運營管理系統(tǒng),今日頭條等互聯(lián)網(wǎng)業(yè)務系統(tǒng)等等
而大數(shù)據(jù)狹義上來說,則是現(xiàn)實中各類海量數(shù)據(jù)的處理需求處理技術,比如電商系統(tǒng)里面,往往要根據(jù)海量的用戶瀏覽購買行為記錄做各類運算處理后,挖掘出各類有價值的信息來提高電商業(yè)務運營效率,支撐智能商品推薦; 在今日頭條里面,要根據(jù)海量用戶瀏覽行為和海量內(nèi)容屬性進行分析,以支撐為每個用戶提供個性化的內(nèi)容推薦等等。
當然,這些數(shù)據(jù)處理的需求最終必定是通過程序來完成,而這些程序當然可以使用Java語言來開發(fā);
所以,Java是一個編程語言,你可以用它來開發(fā)業(yè)務功能系統(tǒng),也可以用它來開發(fā)大數(shù)據(jù)處理系統(tǒng),你甚至可以用它開發(fā)電腦桌面軟件,也可以開發(fā)安卓app
最后,Java能做的,基本上別的語言也能做,只是在不同領域由不同的需要各領風騷
最最后,整體上說來,Java的使用范圍和使用規(guī)模,目前在各類語言中是排第一位的
Java基礎語法
· 分支結(jié)構(gòu)if/switch
· 循環(huán)結(jié)構(gòu)for/while/do while
· 方法聲明和調(diào)用
· 方法重載
· 數(shù)組的使用
· 命令行參數(shù)、可變參數(shù)
IDEA
· IDEA常用設置、常用快捷鍵
· 自定義模板
· 關聯(lián)Tomcat
· Web項目案例實操
面向?qū)ο缶幊?/strong>
· 封裝、繼承、多態(tài)、構(gòu)造器、包
· 異常處理機制
· 抽象類、接口、內(nèi)部類
· 常有基礎API、集合List/Set/Map
· 泛型、線程的創(chuàng)建和啟動
· 深入集合源碼分析、常見數(shù)據(jù)結(jié)構(gòu)解析
· 線程的安全、同步和通信、IO流體系
· 反射、類的加載機制、網(wǎng)絡編程
Java8/9/10/11
新特性
· Lambda表達式、方法引用
· 構(gòu)造器引用、StreamAPI
· jShell(JShell)命令
· 接口的私有方法、Optional加強
· 局部變量的類型推斷
· 更簡化的編譯運行程序等
MySQL
· DML語言、DDL語言、DCL語言
· 分組查詢、Join查詢、子查詢、Union查詢、函數(shù)
· 流程控制語句、事務的特點、事務的隔離級別等
JDBC
· 使用JDBC完成數(shù)據(jù)庫增刪改查操作
· 批處理的操作
· 數(shù)據(jù)庫連接池的原理及應用
· 常見數(shù)據(jù)庫連接池C3P0、DBCP、Druid等
Maven
· Maven環(huán)境搭建
· 本地倉庫&中央倉庫
· 創(chuàng)建Web工程
· 自動部署
Linux
· VI/VIM編輯器
· 系統(tǒng)管理操作&遠程登錄
· 常用命令
· 軟件包管理&企業(yè)真題
Shell編程
· 自定義變量與特殊變量
· 運算符
· 條件判斷
· 流程控制
· 系統(tǒng)函數(shù)&自定義函數(shù)
· 常用工具命令
· 面試真題
Hadoop
· Hadoop生態(tài)介紹
· Hadoop運行模式
· 源碼編譯
· HDFS文件系統(tǒng)底層詳解
· DN&NN工作機制
· HDFS的API操作
· MapReduce框架原理
· 數(shù)據(jù)壓縮
· Yarn工作機制
· MapReduce案例詳解
· Hadoop參數(shù)調(diào)優(yōu)
· HDFS存儲多目錄
· 多磁盤數(shù)據(jù)均衡
· LZO壓縮
· Hadoop基準測試
Zookeeper
· Zookeeper數(shù)據(jù)結(jié)果
· 內(nèi)部原理
· 選舉機制
· Stat結(jié)構(gòu)體
· 監(jiān)聽器
· 分布式安裝部署
· API操作
· 實戰(zhàn)案例
· 面試真題
· 啟動停止腳本
HA+新特性
· HDFS-HA集群配置
Hive
· Hive架構(gòu)原理
· 安裝部署
· 遠程連接
· 常見命令及基本數(shù)據(jù)類型
· DML數(shù)據(jù)操作
· 查詢語句
· Join&排序
· 分桶&函數(shù)
· 壓縮&存儲
· 企業(yè)級調(diào)優(yōu)
· 實戰(zhàn)案例
· 面試真題
Flume
· Flume架構(gòu)
· Agent內(nèi)部原理
· 事務
· 安裝部署
· 實戰(zhàn)案例
· 自定義Source
· 自定義Sink
· Ganglia監(jiān)控
Kafka
· 消息隊列
· Kafka架構(gòu)
· 集群部署
· 命令行操作
· 工作流程分析
· 分區(qū)分配策略
· 數(shù)據(jù)寫入流程
· 存儲策略
· 高階API
· 低級API
· 攔截器
· 監(jiān)控
· 高可靠性存儲
· 數(shù)據(jù)可靠性和持久性保證
· ISR機制
· Kafka壓測
· 機器數(shù)量計算
· 分區(qū)數(shù)計算
· 啟動停止腳本
DataX
· 安裝
· 原理
· 數(shù)據(jù)一致性
· 空值處理
· LZO壓縮處理
Scala
· Scala基礎入門
· 函數(shù)式編程
· 數(shù)據(jù)結(jié)構(gòu)
· 面向?qū)ο缶幊?/p>
· 模式匹配
· 高階函數(shù)
· 特質(zhì)
· 注解&類型參數(shù)
· 隱式轉(zhuǎn)換
· 高級類型
· 案例實操
Spark Core
· 安裝部署
· RDD概述
· 編程模型
· 持久化&檢查點機制
· DAG
· 算子詳解
· RDD編程進階
· 累加器&廣播變量
Spark SQL
· SparkSQL
· DataFrame
· DataSet
· 自定義UDF&UDAF函數(shù)
Spark Streaming
· SparkStreaming
· 背壓機制原理
· Receiver和Direct模式原理
· Window原理及案例實操
· 7x24 不間斷運行&性能考量
Spark內(nèi)核&優(yōu)化
· 內(nèi)核源碼詳解
· 優(yōu)化詳解
Hbase
· Hbase原理及架構(gòu)
· 數(shù)據(jù)讀寫流程
· API使用
· 與Hive和Sqoop集成
· 企業(yè)級調(diào)優(yōu)
Presto
· Presto的安裝部署
· 使用Presto執(zhí)行數(shù)倉項目的即席查詢模塊
Ranger2.0
· 權限管理工具Ranger的安裝和使用
Azkaban3.0
· 任務調(diào)度工具Azkaban3.0的安裝部署
· 使用Azkaban進行項目任務調(diào)度,實現(xiàn)電話郵件報警
Kylin3.0
· Kylin的安裝部署
· Kylin核心思想
· 使用Kylin對接數(shù)據(jù)源構(gòu)建模型
Atlas2.0
· 元數(shù)據(jù)管理工具Atlas的安裝部署
Zabbix
· 集群監(jiān)控工具Zabbix的安裝部署
DolphinScheduler
· 任務調(diào)度工具DolphinScheduler的安裝部署
· 實現(xiàn)數(shù)倉項目任務的自動化調(diào)度、配置郵件報警
Superset
· 使用SuperSet對數(shù)倉項目的計算結(jié)果進行可視化展示
Echarts
· 使用Echarts對數(shù)倉項目的計算結(jié)果進行可視化展示
Redis
· Redis安裝部署
· 五大數(shù)據(jù)類型
· 總體配置
· 持久化
· 事務
· 發(fā)布訂閱
· 主從復制
Canal
· 使用Canal實時監(jiān)控MySQL數(shù)據(jù)變化采集至實時項目
Flink
· 運行時架構(gòu)
· 數(shù)據(jù)源Source
· Window API
· Water Mark
· 狀態(tài)編程
· CEP復雜事件處理
Flink SQL
· Flink SQL和Table API詳細解讀
Flink 內(nèi)核
· Flink內(nèi)核源碼講解
· 經(jīng)典面試題講解
Git&GitHub
· 安裝配置
· 本地庫搭建
· 基本操作
· 工作流
· 集中式
ClickHouse
· ClickHouse的安裝部署
· 讀寫機制
· 數(shù)據(jù)類型
· 執(zhí)行引擎
DataV
· 使用DataV對實時項目需求計算結(jié)果進行可視化展示
sugar
· 結(jié)合Springboot對接百度sugar實現(xiàn)數(shù)據(jù)可視化大屏展示
Maxwell
· 使用Maxwell實時監(jiān)控MySQL數(shù)據(jù)變化采集至實時項目
ElasticSearch
· ElasticSearch索引基本操作、案例實操
Kibana
· 通過Kibana配置可視化分析
Springboot
· 利用Springboot開發(fā)可視化接口程序
數(shù)據(jù)采集平臺項目
離線數(shù)據(jù)倉庫項目
Spark實時分析項目
Flink實時數(shù)倉項目
推薦和機器學習項目
用戶畫像項目
在線教育項目
ucloud云電商項目
感謝悟空問答的邀請
筆者曾就職與ucloud,ucloud,samsung,是一個資深碼農(nóng),歡迎大家關注我哦
一:兩者關系
java是計算機的一門編程語言;可以用來做很多工作,大數(shù)據(jù)開發(fā)屬于其中一種;
大數(shù)據(jù)屬于互聯(lián)網(wǎng)方向,就像現(xiàn)在建立在大數(shù)據(jù)基礎上的AI方向一樣,
他兩不是一個同類,但是屬于包含和被包含的關系;
java可以用來做大數(shù)據(jù)工作,大數(shù)據(jù)開發(fā)或者應用不必要用java,可以Python,Scala,go語言等。
目前最火的大數(shù)據(jù)開發(fā)平臺是Hadoop,而Hadoop則是采用java語言編寫。一方面由于hadoop的歷史原因,Hadoop的項目誕生于一個java高之手;另一方面,也有Java跨平臺方面的優(yōu)勢;基于這兩個方面的原因,所以Hadoop采用了Java語言。但是也因為Hadoop使用了java所以就出現(xiàn)了市場上很多外行所說的“Java大數(shù)據(jù)”。
java屬于語言,編程語言的發(fā)展未來說不準,至少現(xiàn)在java變成還是不錯的前景,大數(shù)據(jù)大部分框架都有java的支持或者底層是java寫的;
大數(shù)據(jù)的發(fā)展,概念可以理解為社會進步數(shù)據(jù)的巨量增加帶來的價值性利用,成為大數(shù)據(jù)的一個方向。就像AI建立在大數(shù)據(jù)的數(shù)據(jù)量的基礎上,未來會一直往技術前進的方向發(fā)展。
Java作為一種語言,它的存在已經(jīng)有很多年了,而大數(shù)據(jù)作為一個新的概念他的出現(xiàn)是由于信息時代信息量的爆炸增長帶來的,海量的數(shù)據(jù)等待我們?nèi)ヌ幚?,海量的信息需要我們?nèi)ヨb別,而這些處理和鑒別的方式可以用hadoop,用java去實現(xiàn)這一系列的鑒別處理工具,也就是用java語言去實現(xiàn)這些大數(shù)據(jù)算法的過程。
java目前算是主流,可以多學幾門語言,技多不壓身,百利而無一害對于開發(fā);
大數(shù)據(jù)的這個方向,不會消失,只會隨著技術的發(fā)展更加智慧性,要研究好大數(shù)據(jù)嚴格意義上來說是和java語言沒有關系的,需要的是我們具備算法知識。當然,最主要的是我們有大數(shù)據(jù),畢竟大數(shù)據(jù)時代最值錢的是數(shù)據(jù),這也是為什么各大社交媒體,各大購物網(wǎng)站,甚至任意的app都需要用戶您提交各人用戶信息數(shù)據(jù)的原因。
大數(shù)據(jù)已經(jīng)成為時代發(fā)展的趨勢,很多人紛紛選擇學習大數(shù)據(jù),想要進入大數(shù)據(jù)行業(yè)。大數(shù)據(jù)技術體系龐大,包括的知識較多,系統(tǒng)的學習大數(shù)據(jù)可以讓你全面掌握大數(shù)據(jù)技能。學習大數(shù)據(jù)需要掌握哪些知識
學習大數(shù)據(jù),要從Java開始學起,如果已經(jīng)有Java編程語言了,學習大數(shù)據(jù)就會相對輕松很多。在掌握了大數(shù)據(jù)的基本編程語言之后,就要正式進入大數(shù)據(jù)相關知識的學習了。
首先是基礎階段。
學習大數(shù)據(jù)首先要學習Java基礎。在學習Java的時候,我們一般需要學習這些課程: HTML,CSS,JS,java的基礎,JDBC與數(shù)據(jù)庫,JSP java web技術, jQuery與AJAX技術,Spring、Mybatis、Hibernate等等。這些課程都能幫助我們更好了解Java,學會運用Java。
這一階段還包括:關系型數(shù)據(jù)庫原理、LINUX操作系統(tǒng)原理及應用。在掌握了這些基礎知識后,還會有這些基礎課程的進階課程,即:數(shù)據(jù)結(jié)構(gòu)與算法、MYSQL數(shù)據(jù)庫應用及開發(fā)、SHELL腳本編程。在掌握了這些內(nèi)容之后,大數(shù)據(jù)基礎學習階段才算是完成了。
第二階段:大數(shù)據(jù)理論及核心技術。
第二階段也被分為了基礎和進階兩部分,先理解基礎知識,再進一步對知識內(nèi)容做深入的了解和實踐。
基礎部分包括:布式存儲技術原理與應用、分布式計算技術、HADOOP集群搭建、運維;
進階內(nèi)容包括:HDFS高可靠、ZOOKEEPER、CDH、Shuffle、HADOOP源碼分析、HIVE、HBASE、Mongodb、HADOOP項目實戰(zhàn)。
完成了這部分內(nèi)容的學習,就已經(jīng)掌握了大數(shù)據(jù)專業(yè)大部分的知識,并具有了一定的項目經(jīng)驗。
第三階段:數(shù)據(jù)分析挖掘及海量數(shù)據(jù)高級處理技術。
基礎部分有:PYTHON語言、機器學習算法、FLUME+KAFKA;
進階部分有:機器學習算法庫應用、實時分析計算框架、SPARK技術、PYTHON高級語言應用、分布式爬蟲與反爬蟲技術、實時分析項目實戰(zhàn)、機器學習算法項目實戰(zhàn)。
以上便是大數(shù)據(jù)的主要學習內(nèi)容。相信在掌握了以上大數(shù)據(jù)專業(yè)知識后,題主能夠在將來的工作中得心應手,完成自己的職業(yè)理想。
說起大數(shù)據(jù),大數(shù)據(jù)有三個層數(shù)據(jù)采集、存儲、計算三層。
第一個是數(shù)據(jù)采集層,以App、saas為代表的服務。
大數(shù)據(jù)基礎階段需掌握的技術有:Linux、Docker、KVM、MySQL基礎、Oracle基礎、MongoDB、redis以及hadoopmapreduce hdfs yarn等。
第二個數(shù)據(jù)存儲層,比如云存儲,需掌握的技術有:hbase、hive、sqoop等。
比如:Hadoop作為一個開源的框架,專為離線和大規(guī)模數(shù)據(jù)分析而設計,HDFS作為其核心的存儲引擎,已被廣泛用于數(shù)據(jù)存儲。HBase,是一個分布式的、面向列的開源數(shù)據(jù)庫,可以認為是hdfs的封裝,本質(zhì)是數(shù)據(jù)存儲、NoSQL數(shù)據(jù)庫。
HBase是一種Key/Value系統(tǒng),部署在hdfs上,克服了hdfs在隨機讀寫這個方面的缺點,與hadoop一樣,Hbase目標主要依靠橫向擴展,通過不斷增加廉價的商用服務器,來增加計算和存儲能力。
第三個是數(shù)據(jù)計算應用層,以數(shù)據(jù)為基礎,為將來的移動社交、交通、教育,金融進行服務,涉及到大數(shù)據(jù)架構(gòu)設計階段需掌握的技術有:Flume分布式、Zookeeper、Kafka等,以及大數(shù)據(jù)實時計算階段需掌握的技術有:Mahout、Spark、storm。
順便再談一個大數(shù)據(jù)相關的崗位:
答者:IT人升職加薪進階站 優(yōu)知學院 (www.youzhixueyuan.com) 創(chuàng)始人陳睿|mikechen, 歷任淘寶高級軟件工程師、盛大架構(gòu)師、百度研發(fā)經(jīng)理、攜程定制旅游CTO,分享職場、架構(gòu)、CTO進階經(jīng)驗和新技術趨勢。
1、精通java基礎知識
2、熟悉hadoop生態(tài)系統(tǒng),并嘗試搭建相關環(huán)境,熟悉mapredus編程
3、熟悉常用的linux命令,并掌握在linux下部署hadoop生態(tài)系統(tǒng)
數(shù)據(jù)分析師需要的技能大致有這些:Excel、SQL、統(tǒng)計學及SPSS、Python/R等。
建議從Excel開始,因為Excel是使用最多,也是最強大的數(shù)據(jù)分析工具,入門簡單,因為大部分人都接觸過Excel。
數(shù)據(jù)分析師需要的技能大致有這些:Excel、SQL、統(tǒng)計學及SPSS、Python/R等。建議從Excel開始,因為Excel是使用最多,也是最強大的數(shù)據(jù)分析工具,入門簡單,因為大部分人都接觸過Excel。
數(shù)據(jù)分析師需要的技能大致有這些:Excel、SQL、統(tǒng)計學及SPSS、Python/R等。
建議從Excel開始,因為Excel是使用最多,也是最強大的數(shù)據(jù)分析工具,入門簡單,因為大部分人都接觸過Excel。
0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答