-
1 # 加米穀大資料
-
2 # lgvae
大資料是需要一定的程式設計基礎的,但具體學習哪一門程式設計,自己可以選擇的。
如果你主攻Hadoop開發方向,是一定要學習java的,因為Hadoop是由java來開發的。
如果你想要主攻spark方向,是要學習Scala語言的,每個方向要求的程式語言是不同的。
如果你是想要走資料分析方向,那你就要從python程式語言下手,這個也是看自己未來的需求的。
-
3 # 雲霧風景
這個目前來說還是需要有的,但是不需要太深。以下答覆也許可以幫助到您。
學習大資料是需要有java,python和R語言的基礎。
1) Java學習到什麼樣的程度才可以學習大資料呢?
java需要學會javaSE即可。javaweb,javaee對於大資料用不到。學會了javase就可以看懂hadoop框架。
2) python是最容易學習的,難易程度:python java Scala 。
python不是比java更直觀好理解麼,因為會了Python 還是要學習java的,你學會了java,再來學習python會很簡單的,一週的時間就可以學會python。
3) R語言也可以學習,但是不推薦,因為java用的人最多,大資料的第一個框架Hadoop,底層全是Java寫的。就算學會了R還是看不懂hadoop。
java在大資料中的作用是構成大資料的語言,大資料的第一個框架Hadoop以及其他大資料技術框架,底層語言全是Java寫的,所以推薦首選學習java
再給你們舉例說明下它們的分工和作用,java注重業務,大資料注重資料,前端是臉(頁面顯示),java是胳膊(業務),大資料是直男大腦,人工智慧,深度學習是有情商的大腦。
給你分享下大資料整體技術體系以及大資料相關熱門就業崗位
-
4 # 毛毛草晃天下
大資料是指無法在一定時間內用常規軟體工具對其內容進行抓取、管理和處理的資料集合。大資料技術是指從各種各樣型別的資料中,快速獲得有價值資訊的能力。所以不必學java 。大資料完全始於資料儲存,也也就是說始於大資料框架Hadoop。
-
5 # Z張光成
一、學習大資料需要的基礎
javaSE,EE(SSM)
90%的大資料框架都是java寫的。
Hadoop--用Java編寫的開源軟體框架,用於分散式儲存,並對非常大的資料集進行分散式處理。
Spark --Apache Software Foundation中最活躍的專案,是一個開源叢集計算框架。
Hbase--開放原始碼,非關係型,分散式資料庫,採用Google的BigTable建模,用Java編寫,並在HDFS上執行。
MySQL(必須需要掌握的)
SQLon Hadoop又分:
batch SQL(Hive):一般用於複雜的 ETL 處理,資料探勘,高階分析。
interactive SQL:互動式 SQL 查詢,通常在同一個表上反覆的執行不同的查詢
operation SQL:通常是單點查詢,延時要求小於 1 秒,該類系統主要是HBase。
Linux
Linux(一種作業系統,程式設計師必須掌握的,我的部落格裡有我對Linux的介紹)
大資料的框架安裝在Linux作業系統上
二、需要學什麼
第一方面:大資料離線分析
一般處理T+1資料:
Hadoop:(common、HDFS、MapReduce、YARN)重點中的重點。
Hadoop的框架最核心的設計就是:HDFS 和 MapReduce,
Hadoop :主要是的環境搭建
Hadoop的思想:處理資料的思想。
Hadoop用Java編寫的開源軟體框架,用於分散式儲存,並對非常大的資料集進行分散式處理,
使用者可以在不瞭解分散式底層細節的情況下,開發分散式程式,
充分利用叢集進行高速運算和儲存。
Hadoop實現了一個分散式檔案系統(Hadoop Distributed File System),簡稱HDFS。
HDFS為海量的資料提供了儲存,MapReduce則為海量的資料提供了計算。
HDFS:
HDFS 的架構是基於一組特定的節點構建的,這是由它自身的特點決定的。
這些節點包括NameNode(僅一個),它在 HDFS 內部提供元資料服務;
DataNode,它為 HDFS 提供儲存塊。
由於僅存在一個 NameNode,因此這是 HDFS 的一個缺點(單點失敗)。
儲存在 HDFS 中的檔案被分成塊,然後將這些塊複製到多個計算機中(DataNode)。
這與傳統的 RAID 架構大不相同。塊的大小(通常為 64MB)和複製的塊數量在建立檔案時由客戶機決定 NameNode 可以控制所有檔案操作。
NameNode 是一個通常在HDFS例項中的單獨機器上執行的軟體,
它負責管理檔案系統名稱空間和控制外部客戶機的訪問。
NameNode 決定是否將檔案對映到 DataNode 上的複製塊上。
對於最常見的 3 個複製塊,第一個複製塊儲存在同一機架的不同節點上,最後一個複製塊儲存在不同機架的某個節點上。
DataNode:
DataNode 也是一個通常在HDFS例項中的單獨機器上執行的軟體。
Hadoop 叢集包含一個 NameNode 和大量 DataNode。
DataNode 通常以機架的形式組織,機架透過一個交換機將所有系統連線起來。
Hadoop 的一個假設是:機架內部節點之間的傳輸速度快於機架間節點的傳輸速度
MapReduce:
MapReduce是一種程式設計模型,用於大規模資料集(大於1TB)的並行運算
概念"Map(對映)"和"Reduce(歸約)"
MapReduce是面向大資料並行處理的計算模型、框架和平臺,它隱含了以下三層含義:
1)MapReduce是一個基於叢集的高效能平行計算平臺(Cluster Infrastructure)。
2)MapReduce是一個平行計算與執行軟體框架(Software Framework)
3)MapReduce是一個並行程式設計模型與方法(Programming Model & Methodology)。
Hive(MPP架構):
大資料資料倉庫
透過寫SQL對資料進行操作,類似於mysql資料庫中的sql
擴充套件:
MPP架構:MPP 架構的優點是查詢速度快,通常在秒計甚至毫秒級以內就可以返回查詢結果。
(但MPP 架構不適合大規模部署)
HBase(部落格中有 這個重要)
基於HDFS的NOSQL資料庫
面向列的儲存
列儲存:
列儲存的思想是將元組垂直劃分為列族集合,每一個列族獨立儲存,列族可以退化為只僅包含
一個列的平凡列族。當查詢少量列時,列儲存模型可以極大的減少磁碟IO 操作,提高查詢效能。
當查詢的列跨越多個列族時,需要將儲存在不同列族中列資料拼接成原始資料,由於不同列族
儲存 在不同的 HDFS 節點上,導致大量的資料跨越網路傳輸,從而降低查詢效能。
擴充套件前沿框架:
協作框架:
sqoop(橋樑:HDFS 《==》RDBMS)
Sqoop(發音:skup)是一款開源的工具,一個用來將Hadoop和關係型資料庫中的資料相互轉移的工具,
主要用於在Hadoop(Hive)與傳統的資料庫(mysql、postgresql...)間進行資料的傳遞,
可以將一個關係型資料庫(例如 :MySQL ,Oracle ,Postgres等)中的資料導進到Hadoop的HDFS
中,也可以將HDFS的資料導進到關係型資料庫中。
Sqoop介紹:
Sqoop專案開始於2009年,最早是作為Hadoop的一個第三方模組存在,後來為了讓使用者能夠快速部署,
也為了讓開發人員能夠更快速的迭代開發,Sqoop獨立成為一個Apache專案。
RDBMS:
RDBMS即關係資料庫管理系統(Relational Database Management System),
是將資料組織為相關的行和列的系統而管理關係資料庫的計算機軟體就是關係資料庫管理系統,
常用的資料庫軟體有Oracle、SQL server等。
RDBMS 是SQL 的基礎,同樣也是所有現代資料庫系統的基礎
RDBMS 中的資料儲存在被稱為表(tables)的資料庫物件中。
表是相關的資料項的集合,它由列和行組成。
RDBMS的特點:
1.資料以表格的形式出現
2.每行為各種記錄名稱
3.每列為記錄名稱所對應的資料域
4.許多的行和列組成一張表單
5.若干的表單組成database
flume:收集日誌檔案中資訊
Flume是Cloudera提供的一個高可用的,高可靠的,分散式的海量日誌採集、聚合和傳輸的系統,
Flume支援在日誌系統中定製各類資料傳送方,用於收集資料;同時,
Flume提供對資料進行簡單處理,並寫到各種資料接受方(可定製)的能力
排程框架anzkaban,瞭解
crontab(Linux自帶)
crontab命令常見於Unix和類Unix的作業系統之中,用於設定週期性被執行的指令。
該命令從標準輸入裝置讀取指令,並將其存放於“crontab”檔案中,以供之後讀取和執行。
Kylin(中國自主智慧財產權作業系統)
Kylin作業系統是國家高技術研究發展計劃(863計劃)的重大成果之一,
可支援多種微處理器和多種計算機體系結構,具有高效能、高可用性和高安全性,
並與Linux應用二進位制相容的中國產中文伺服器作業系統。
Impala:
Impala是Cloudera公司主導開發的新型查詢系統,它提供SQL語義,
能查詢儲存在Hadoop的HDFS和HBase中的PB級大資料。
已有的Hive系統雖然也提供了SQL語義,但由於Hive底層執行使用的是MapReduce引擎,
仍然是一個批處理過程,難以滿足查詢的互動性。重要的是它查詢的很快
ElasticSearch(ES)
ElasticSearch是一個基於Lucene的搜尋伺服器。
它提供了一個分散式多使用者能力的全文搜尋引擎,基於RESTful web介面。
Elasticsearch是用Java開發的,並作為Apache許可條款下的開放原始碼釋出,是當前流行的企業級搜尋引擎。
ES概念:
cluster
代表一個叢集,叢集中有多個節點,其中有一個為主節點,這個主節點是可以透過選舉產生的,
主從節點是對於叢集內部來說的。
es的一個概念就是去中心化,字面上理解就是無中心節點,這是對於叢集外部來說的,
因為從外部來看es叢集,在邏輯上是個整體,你與任何一個節點的通訊和與整個es叢集通訊是等價的。
瞭解:
Shards
Replicas
Recovery
River
Gateway
Discovery.zen
Transport
-
6 # Super分享
大資料太大了,裡面又要分很多方向和技術要求,不過Java是基礎開發語言,很多時候都是會用到的,所以必須要掌握好。
-
7 # 鴻蒙至尊
大資料很多元件都是用java開發的,你不懂java的話,看不懂原始碼,更沒辦法進行開發了,但是如果你做的只是hbase,hive這些可以不用懂太深,會SQL就行了,如果要往更深層次學習,建議還是要學習java
-
8 # AI資訊園
雖然不一定需要java 語言基礎,但是選擇java 語言是一條比較好的捷徑。
首先,大資料的很多元件都是java 語言寫的,想要加深學習,就必須去啃原始碼,要啃原始碼,那java 語言就近水樓臺先得月了。
其次,大多數做大資料的公司都是招聘java 開發人員的,這樣就業方面,就比較機會多一些。
當然,除了java 語言,python 語言,shell 指令碼語言,都是需要掌握的,能為工作帶來不少便捷。
最後,要做好大資料,數學邏輯思維很重要,可以著重培養一下
最後附上一張招聘資訊
-
9 # 程式猿來如此
你好。
學習大資料技術,java是必學的基礎知識,像hadoop是重要的大資料處理平臺,它是基於java語言開發的,所以要先從java學起。另外學大資料還有一項基礎是linux系統,它是比較好用的大資料軟體執行環境,所以也需要學習。
下面是一個大資料基礎部分學習的思路,供你參考。
Java語言和Linux系統是學習大資料的兩大基礎,這兩項的學習順序不分前後。需要同時掌握,才可以繼續大資料技術的學習。
1、Java:
大家都知道Java的方向有JavaSE、JavaEE、JavaME,學習大資料要學習那個方向呢?
只需要學習Java的標準版JavaSE就可以了,像Servlet、JSP、Tomcat、Struts、Spring、Hibernate,Mybatis都是JavaEE方向的技術在大資料技術裡用到的並不多,只需要瞭解就可以了,當然Java怎麼連線資料庫還是要知道的,像JDBC一定要掌握一下,有同學說Hibernate或Mybites也能連線資料庫啊,為什麼不學習一下,我這裡不是說學這些不好,而是說學這些可能會用你很多時間,到最後工作中也不常用,我還沒看到誰做大資料處理用到這兩個東西的,當然你的精力很充足的話,可以學學Hibernate或Mybites的原理,不要只學API,這樣可以增加你對Java操作資料庫的理解,因為這兩個技術的核心就是Java的反射加上JDBC的各種使用。
2、Linux:
因為大資料相關軟體都是在Linux上執行的,所以Linux要學習的紮實一些,學好Linux對你快速掌握大資料相關技術會有很大的幫助,能讓你更好的理解hadoop、hive、hbase、spark等大資料軟體的執行環境和網路環境配置,能少踩很多坑,學會shell就能看懂指令碼這樣能更容易理解和配置大資料叢集。還能讓你對以後新出的大資料技術學習起來更快。
-
10 # 陽光海牛大資料
不請自來,利益相關。
學習大資料,可以按照這個線路圖來學習。
如你所見,Java基礎是學習大資料的前置條件,是必須要學好的。至於你在學習大資料之前有沒有Java基礎倒不是特別重要的,只要你開始學的時候能好好學,跟上進度,課下自己多加練習,一定是可以跟得上課程的。
JavaEE是在基礎知識JavaSE和MySQL之後的課程,這不是並不是特別重要的課程,但是需要有一定的瞭解,畢竟是學了一遍Java,需要知道他們是怎樣實現的,需要知道原理。
但這部分不是重點,略作了解就可以。
之後,我們把主要精力放在Hadoop的學習上面,從這裡開始,才算是真正地進入了大資料的學習階段。
最後,希望你能好好學習,早日加入大資料的家庭。
如果還有什麼不明白的,可以隨時提問。
-
11 # IT少女
當然啊。
校招都需要紮實的java基礎,還需要有參加過javaEE專案,有開發經驗的。
如果只會一點JavaSE,可能簡歷都過不了。
這還只是校園招聘的要求,要是社招對JAVA的要求就更高了,其它企業,大家可以自行去招聘網站檢視,基本都如此。
雖然大資料開發崗位隨著大資料產業的發展,需求在增加,但是學習大資料開發的人也在增加。2019年,開設大資料專業的本科高校就達到了283所,可以預見,幾年之後,大資料開發崗位競爭將會非常激烈,隨之,企業對大資料開發崗位的要求也會增加。
-
12 # 合肥新華電腦
優秀的資料分析師需要具備這樣一些素質:有紮實的 SQL 基礎,熟練使用 Excel,有統計學基礎,至少掌握一門資料探勘語言(R、SAS、Python、SPSS),有良好的溝通和表達能力,做好不斷學習的準備,有較強的資料敏感度和邏輯思維能力,深入瞭解業務,有管理者思維,能站在管理者的角度考慮問題。
回覆列表
首先無論如何肯定要有計算機基礎百,當然實在基礎很薄弱也不是不行,不影響入行但是影響你的上限。
其次很重度要的是對資料庫要有一定的理解,不過如果是零基礎開始學的話,也問題知不大。
然後就是語言基礎,Java對大資料開發很重要,Python對資料分析重要。有語言基礎肯定方便你學習,道但實在沒有也沒關係。