㈠ sqoop問題,求幫助
用sqlserver2000自帶的導入導出數據工具,將access表中的數據導入到oracle中去 下面是我在一個人的博客中找到的注意事項,你可以看一看 1.導入的時候access中的表名必須是大寫的,否則導進去之後,因為sqlplus運行到後台的時候會把所有字元自動變為大寫,而oracle大小寫敏感,所以生成的小寫表無法訪問,你用toad或DBARtsion也是白搭 2.表中的欄位名稱比如user之類的改進改名,很有可能就會因為這個卡掉,得重新導 3.注意資料庫中的數據,有可能會出現因為數據導致導入一半後卡住,出現這種問題的時候多半是因為備注轉化為的對象類型不對 4.ACCESS中的備注問題,這個是個頭疼的問題,真tm頭疼,剛開始我用OLE DB方式連接資料庫,備注默認轉化的oracle數據類型為LONG,但是TNND每張oracle表中最多隻有一個LONG類型的欄位,(古怪的規定~!我找了半天沒找到原因),琢磨了半天後決定舍棄(當初選OLE DB是受頁面裡面OLE DB連接比ODBC連接先進點的觀點影響。。),改用ODBC,這里連接資料庫的時候有幾種方法,我選的是用定義好的文件來連接,在生成文件的時候一定要注意,用戶名和密碼必須是大寫的,不然的時候你就等著哭吧,然後配連接好的,執行導入,我第一遍的時候就相當成功,但是後來因為插錯數據和表格,又懶的刪只好刪掉用戶重新導,一模一樣的數據,就是用戶名變了,nnd就報了n多錯誤,備注自動生成的方式是CLOB,我們ACCESS資料庫表中還有個OLE對象類型的,自動轉化為BLOB類型,在頁面上不能直接用通俗的方法獲取rs讀CLOB,要是這樣寫,一準報錯,這個問題一直沒解決。。從網上找了些資料,有種說將對象分割拿出來,但太麻煩了,能生成一個完整的結果集就不錯了。。還有迭代,我們哥倆商量了半天准備用VARCHAR2(2000)替代,結果頁面報錯。
㈡ 大數據雲計算好不好學習
說一下大數據的四個典型的特徵:
數據量大;
數據類型繁多,(結構化、非結構化文本、日誌、視頻、圖片、地理位置等);
商業價值高,但需要在海量數據之上,通過數據分析與機器學習快速的挖掘出來;
處理時效性高,海量數據的處理需求不再局限在離線計算當中。
第一章:Hadoop
在大數據存儲和計算中Hadoop可以算是開山鼻祖,現在大多開源的大數據框架都依賴Hadoop或者與它能很好的兼容。
關於Hadoop,你至少需要搞清楚這些是什麼:
自己學會如何搭建Hadoop,先讓它跑起來。建議先使用安裝包命令行安裝,不要使用管理工具安裝。現在都用Hadoop 2.0。
目錄操作命令;上傳、下載文件命令;提交運行MapRece示常式序;打開Hadoop WEB界面,查看Job運行狀態,查看Job運行日誌。知道Hadoop的系統日誌在哪裡。
以上完成之後,就應該去了解他們的原理了:
MapRece:如何分而治之;HDFS:數據到底在哪裡,究竟什麼才是副本;
Yarn到底是什麼,它能幹什麼;NameNode到底在幹些什麼;Resource Manager到底在幹些什麼;
如果有合適的學習網站,視頻就去聽課,如果沒有或者比較喜歡書籍,也可以啃書。當然最好的方法是先去搜索出來這些是干什麼的,大概有了概念之後,然後再去聽視頻。
第二章:更高效的WordCount
在這里,一定要學習SQL,它會對你的工作有很大的幫助。
就像是你寫(或者抄)的WordCount一共有幾行代碼?但是你用SQL就非常簡單了,例如:
SELECT word,COUNT(1) FROM wordcount GROUP BY word;
這便是SQL的魅力,編程需要幾十行,甚至上百行代碼,而SQL一行搞定;使用SQL處理分析Hadoop上的數據,方便、高效、易上手、更是趨勢。不論是離線計算還是實時計算,越來越多的大數據處理框架都在積極提供SQL介面。
另外就是SQL On Hadoop之Hive於大數據而言一定要學習的。
什麼是Hive?
官方解釋如下:The Apache Hive data warehouse software facilitates reading, writing, and managing large datasets residing in distributed storage and queried using SQL syntax。
為什麼說Hive是數據倉庫工具,而不是資料庫工具呢?
有的朋友可能不知道數據倉庫,數據倉庫是邏輯上的概念,底層使用的是資料庫,數據倉庫中的數據有這兩個特點:最全的歷史數據(海量)、相對穩定的;所謂相對穩定,指的是數據倉庫不同於業務系統資料庫,數據經常會被更新,數據一旦進入數據倉庫,很少會被更新和刪除,只會被大量查詢。而Hive,也是具備這兩個特點,因此,Hive適合做海量數據的數據倉庫工具,而不是資料庫工具。
了解了它的作用之後,就是安裝配置Hive的環節,當可以正常進入Hive命令行是,就是安裝配置成功了。
了解Hive是怎麼工作的
學會Hive的基本命令:
創建、刪除表;載入數據到表;下載Hive表的數據;
MapRece的原理(還是那個經典的題目,一個10G大小的文件,給定1G大小的內存,如何使用java程序統計出現次數最多的10個單詞及次數);
HDS讀寫數據的流程;向HDFS中PUT數據;從HDFS中下載數據;
自己會寫簡單的MapRece程序,運行出現問題,知道在哪裡查看日誌;
會寫簡單的Select、Where、group by等SQL語句;
Hive SQL轉換成MapRece的大致流程;
Hive中常見的語句:創建表、刪除表、往表中載入數據、分區、將表中數據下載到本地;
從上面的學習,你已經了解到,HDFS是Hadoop提供的分布式存儲框架,它可以用來存儲海量數據,MapRece是Hadoop提供的分布式計算框架,它可以用來統計和分析HDFS上的海量數據,而Hive則是SQL On Hadoop,Hive提供了SQL介面,開發人員只需要編寫簡單易上手的SQL語句,Hive負責把SQL翻譯成MapRece,提交運行。
此時,你的」大數據平台」是這樣的:那麼問題來了,海量數據如何到HDFS上呢?
第三章:數據採集
把各個數據源的數據採集到Hadoop上。
3.1 HDFS PUT命令
這個在前面你應該已經使用過了。put命令在實際環境中也比較常用,通常配合shell、python等腳本語言來使用。建議熟練掌握。
3.2 HDFS API
HDFS提供了寫數據的API,自己用編程語言將數據寫入HDFS,put命令本身也是使用API。
實際環境中一般自己較少編寫程序使用API來寫數據到HDFS,通常都是使用其他框架封裝好的方法。比如:Hive中的INSERT語句,Spark中的saveAsTextfile等。建議了解原理,會寫Demo。
3.3 Sqoop
Sqoop是一個主要用於Hadoop/Hive與傳統關系型資料庫,Oracle、MySQL、SQLServer等之間進行數據交換的開源框架。就像Hive把SQL翻譯成MapRece一樣,Sqoop把你指定的參數翻譯成MapRece,提交到Hadoop運行,完成Hadoop與其他資料庫之間的數據交換。
自己下載和配置Sqoop(建議先使用Sqoop1,Sqoop2比較復雜)。了解Sqoop常用的配置參數和方法。
使用Sqoop完成從MySQL同步數據到HDFS;使用Sqoop完成從MySQL同步數據到Hive表;如果後續選型確定使用Sqoop作為數據交換工具,那麼建議熟練掌握,否則,了解和會用Demo即可。
3.4 Flume
Flume是一個分布式的海量日誌採集和傳輸框架,因為「採集和傳輸框架」,所以它並不適合關系型資料庫的數據採集和傳輸。Flume可以實時的從網路協議、消息系統、文件系統採集日誌,並傳輸到HDFS上。
因此,如果你的業務有這些數據源的數據,並且需要實時的採集,那麼就應該考慮使用Flume。
下載和配置Flume。使用Flume監控一個不斷追加數據的文件,並將數據傳輸到HDFS;Flume的配置和使用較為復雜,如果你沒有足夠的興趣和耐心,可以先跳過Flume。
3.5 阿里開源的DataX
現在DataX已經是3.0版本,支持很多數據源。
第四章:把Hadoop上的數據搞到別處去
Hive和MapRece進行分析了。那麼接下來的問題是,分析完的結果如何從Hadoop上同步到其他系統和應用中去呢?其實,此處的方法和第三章基本一致的。
HDFS GET命令:把HDFS上的文件GET到本地。需要熟練掌握。
HDFS API:同3.2.
Sqoop:同3.3.使用Sqoop完成將HDFS上的文件同步到MySQL;使用Sqoop完成將Hive表中的數據同步到MySQL。
如果你已經按照流程認真完整的走了一遍,那麼你應該已經具備以下技能和知識點:
知道如何把已有的數據採集到HDFS上,包括離線採集和實時採集;
知道sqoop是HDFS和其他數據源之間的數據交換工具;
知道flume可以用作實時的日誌採集。
從前面的學習,對於大數據平台,你已經掌握的不少的知識和技能,搭建Hadoop集群,把數據採集到Hadoop上,使用Hive和MapRece來分析數據,把分析結果同步到其他數據源。
接下來的問題來了,Hive使用的越來越多,你會發現很多不爽的地方,特別是速度慢,大多情況下,明明我的數據量很小,它都要申請資源,啟動MapRece來執行。
第五章:SQL
其實大家都已經發現Hive後台使用MapRece作為執行引擎,實在是有點慢。因此SQL On Hadoop的框架越來越多,按我的了解,最常用的按照流行度依次為SparkSQL、Impala和Presto.這三種框架基於半內存或者全內存,提供了SQL介面來快速查詢分析Hadoop上的數據。
我們目前使用的是SparkSQL,至於為什麼用SparkSQL,原因大概有以下吧:使用Spark還做了其他事情,不想引入過多的框架;Impala對內存的需求太大,沒有過多資源部署。
5.1 關於Spark和SparkSQL
什麼是Spark,什麼是SparkSQL。
Spark有的核心概念及名詞解釋。
SparkSQL和Spark是什麼關系,SparkSQL和Hive是什麼關系。
SparkSQL為什麼比Hive跑的快。
5.2 如何部署和運行SparkSQL
Spark有哪些部署模式?
如何在Yarn上運行SparkSQL?
使用SparkSQL查詢Hive中的表。Spark不是一門短時間內就能掌握的技術,因此建議在了解了Spark之後,可以先從SparkSQL入手,循序漸進。
關於Spark和SparkSQL,如果你認真完成了上面的學習和實踐,此時,你的」大數據平台」應該是這樣的。
第六章:數據多次利用
請不要被這個名字所誘惑。其實我想說的是數據的一次採集、多次消費。
在實際業務場景下,特別是對於一些監控日誌,想即時的從日誌中了解一些指標(關於實時計算,後面章節會有介紹),這時候,從HDFS上分析就太慢了,盡管是通過Flume採集的,但Flume也不能間隔很短就往HDFS上滾動文件,這樣會導致小文件特別多。
為了滿足數據的一次採集、多次消費的需求,這里要說的便是Kafka。
關於Kafka:什麼是Kafka?Kafka的核心概念及名詞解釋。
如何部署和使用Kafka:使用單機部署Kafka,並成功運行自帶的生產者和消費者例子。使用Java程序自己編寫並運行生產者和消費者程序。Flume和Kafka的集成,使用Flume監控日誌,並將日誌數據實時發送至Kafka。
如果你認真完成了上面的學習和實踐,此時,你的」大數據平台」應該是這樣的。
這時,使用Flume採集的數據,不是直接到HDFS上,而是先到Kafka,Kafka中的數據可以由多個消費者同時消費,其中一個消費者,就是將數據同步到HDFS。
如果你已經認真完整的學習了以上的內容,那麼你應該已經具備以下技能和知識點:
為什麼Spark比MapRece快。
使用SparkSQL代替Hive,更快的運行SQL。
使用Kafka完成數據的一次收集,多次消費架構。
自己可以寫程序完成Kafka的生產者和消費者。
從前面的學習,你已經掌握了大數據平台中的數據採集、數據存儲和計算、數據交換等大部分技能,而這其中的每一步,都需要一個任務(程序)來完成,各個任務之間又存在一定的依賴性,比如,必須等數據採集任務成功完成後,數據計算任務才能開始運行。如果一個任務執行失敗,需要給開發運維人員發送告警,同時需要提供完整的日誌來方便查錯。
第七章:越來越多的分析任務
不僅僅是分析任務,數據採集、數據交換同樣是一個個的任務。這些任務中,有的是定時觸發,有點則需要依賴其他任務來觸發。當平台中有幾百上千個任務需要維護和運行時候,僅僅靠crontab遠遠不夠了,這時便需要一個調度監控系統來完成這件事。調度監控系統是整個數據平台的中樞系統,類似於AppMaster,負責分配和監控任務。
7.1 Apache Oozie
Oozie是什麼?有哪些功能?
Oozie可以調度哪些類型的任務(程序)?
Oozie可以支持哪些任務觸發方式?
安裝配置Oozie。
7.2 其他開源的任務調度系統
Azkaban,light-task-scheler,Zeus,等等。另外,我這邊是之前單獨開發的任務調度與監控系統,具體請參考《大數據平台任務調度與監控系統》。
第八章:我的數據要實時
在第六章介紹Kafka的時候提到了一些需要實時指標的業務場景,實時基本可以分為絕對實時和准實時,絕對實時的延遲要求一般在毫秒級,准實時的延遲要求一般在秒、分鍾級。對於需要絕對實時的業務場景,用的比較多的是Storm,對於其他准實時的業務場景,可以是Storm,也可以是Spark Streaming。當然,如果可以的話,也可以自己寫程序來做。
8.1 Storm
什麼是Storm?有哪些可能的應用場景?
Storm由哪些核心組件構成,各自擔任什麼角色?
Storm的簡單安裝和部署。
自己編寫Demo程序,使用Storm完成實時數據流計算。
8.2 Spark Streaming
什麼是Spark Streaming,它和Spark是什麼關系?
Spark Streaming和Storm比較,各有什麼優缺點?
使用Kafka + Spark Streaming,完成實時計算的Demo程序。
至此,你的大數據平台底層架構已經成型了,其中包括了數據採集、數據存儲與計算(離線和實時)、數據同步、任務調度與監控這幾大模塊。接下來是時候考慮如何更好的對外提供數據了。
第九章:數據要對外
通常對外(業務)提供數據訪問,大體上包含以下方面。
離線:比如,每天將前一天的數據提供到指定的數據源(DB、FILE、FTP)等;離線數據的提供可以採用Sqoop、DataX等離線數據交換工具。
實時:比如,在線網站的推薦系統,需要實時從數據平台中獲取給用戶的推薦數據,這種要求延時非常低(50毫秒以內)。根據延時要求和實時數據的查詢需要,可能的方案有:HBase、Redis、MongoDB、ElasticSearch等。
OLAP分析:OLAP除了要求底層的數據模型比較規范,另外,對查詢的響應速度要求也越來越高,可能的方案有:Impala、Presto、SparkSQL、Kylin。如果你的數據模型比較規模,那麼Kylin是最好的選擇。
即席查詢:即席查詢的數據比較隨意,一般很難建立通用的數據模型,因此可能的方案有:Impala、Presto、SparkSQL。
這么多比較成熟的框架和方案,需要結合自己的業務需求及數據平台技術架構,選擇合適的。原則只有一個:越簡單越穩定的,就是最好的。
㈢ sqoop2 1.99.7 java api 如何設置file format
//流讀入和寫入InputStreamin=null;//獲取HDFS的conf//讀取HDFS上的文件系統FileSystemhdfs=FileSystem.get(conf);//使用緩沖流,進行按行讀取的功能BufferedReaderbuff=null;//獲取日誌文件的根目錄Pathlistf=newPath("hdfs://10
㈣ sqoop問題,求幫助
通過配置本地資料庫的tns配置文件實現: 去oracle安裝目錄下oracle\proct\10.2.0\db_2\NETWORK\ADMIN\ 找到tnsnames.ora,用記事本打開,里邊有遠程資料庫的tns連接配置串如下 ORCL23 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL
㈤ sqoop問題,求幫助
用sqlserver2000自帶的導入導出數據工具,將access表中的數據導入到oracle中去下面是我在一個人的博客中找到的注意事項,你可以看一看1.導入的時候access中的表名必須是大寫的,否則導進去之後,因為sqlplus運行到後台的時候會把所有字元自動變為。
㈥ 大數據培訓到底是培訓什麼
一、基礎部分:JAVA語言 和 LINUX系統
二、數據開發:
1、數據分析與挖掘
一般工作包括數據清洗,執行分析和數據可視化。學習Python、資料庫、網路爬蟲、數據分析與處理等。
大數據培訓一般是指大數據開發培訓。
大數據技術龐大復雜,基礎的技術包含數據的採集、數據預處理、分布式存儲、資料庫、數據倉庫、機器學習、並行計算、可視化等各種技術范疇和不同的技術層面。
2、大數據開發
數據工程師建設和優化系統。學習hadoop、spark、storm、超大集群調優、機器學習、Docker容器引擎、ElasticSearch、並發編程等;
課程學習一共分為六個階段:
7
㈦ 大數據培訓的內容是什麼有哪些方式
一、基礎部分:JAVA語言 和 LINUX系統
二、數據開發:
1、數據分析與挖掘
一般工作包括數據清洗,執行分析和數據可視化。學習Python、資料庫、網路爬蟲、數據分析與處理等。
大數據培訓一般是指大數據開發培訓。
大數據技術龐大復雜,基礎的技術包含數據的採集、數據預處理、分布式存儲、資料庫、數據倉庫、機器學習、並行計算、可視化等各種技術范疇和不同的技術層面。
2、大數據開發
數據工程師建設和優化系統。學習hadoop、spark、storm、超大集群調優、機器學習、Docker容器引擎、ElasticSearch、並發編程等;
課程學習一共分為六個階段:
㈧ 大數據指的是什麼啊什麼叫大數據啊
網路中資料內容:
大數據(big data),指無法在一定時間范圍內用常規軟體工具進行捕捉、管理和處理的數據集合,是需要新處理模式才能具有更強的決策力、洞察發現力和流程優化能力的海量、高增長率和多樣化的信息資產。
大數據的價值體現在以下幾個方面:
1)對大量消費者提供產品或服務的企業可以利用大數據進行精準營銷
2) 做小而美模式的中小微企業可以利用大數據做服務轉型
3) 面臨互聯網壓力之下必須轉型的傳統企業需要與時俱進充分利用大數據的價值
㈨ sqoop2 java api上傳hdfs的用戶怎麼修改
//流讀入和寫入
InputStream in=null;
//獲取HDFS的conf
//讀取HDFS上的文件系統
FileSystem hdfs=FileSystem.get(conf);
//使用緩沖流,進行按行讀取的功能
BufferedReader buff=null;
//獲取日誌文件的根目錄
Path listf =new Path("hdfs://10.2.143.5:9090/root/myfile/");
//獲取根目錄下的所有2級子文件目錄
FileStatus stats[]=hdfs.listStatus(listf);
//自定義j,方便查看插入信息
int j=0;
for(int i = 0; i < stats.length; i++){
//獲取子目錄下的文件路徑
FileStatus temp[]=hdfs.listStatus(new Path(stats[i].getPath().toString()));
for(int k = 0; k < temp.length;k++){
System.out.println("文件路徑名:"+temp[k].getPath().toString());
//獲取Path
Path p=new Path(temp[k].getPath().toString());
//打開文件流
in=hdfs.open(p);
//BufferedReader包裝一個流
buff=new BufferedReader(new InputStreamReader(in));
String str=null;
while((str=buff.readLine())!=null){
System.out.println(str);
}
buff.close();
in.close();
}
㈩ java開發都需要學什麼
首先要明確後端包括哪些職業:DBA(資料庫維護優化專家),Developer(程序猿),Architect(構架師),Scrum master及類似(敏捷開發專家),Project Manager(產品狗),Maintenance&IT support(通訊和伺服器相關),當然這只是一個大致的分類,並沒有一個清晰的界限。
按程序猿內功而言:關系型資料庫,領域驅動設計(Domain-Driven Design),設計模式Design Pattern,演算法Algorithm,面向對象編程OOP(SOLID),線程安全,事件驅動,測試驅動開發,依賴注入框架,等等。
對於初學Java並且有志於後端開發的同學來說,需要重點關注以下幾個部分:
基礎:比如計算機系統、演算法、編譯原理等等
Web開發: 主要是Web開發相關的內容,包括HTML/CSS/js(前端頁面)、 Servlet/JSP(J2EE)以及MySQL(資料庫)相關的知識。它們的學習順序應該是從前到後,因此最先學習的應該是HTML/CSS/JS(前端頁面)。
J2EE:你需要學習的是Servlet/JSP(J2EE)部分,這部分是Java後端開發必須非常精通的部分,因此這部分是這三部分中最需要花精力的。關於Servlet/Jsp部分視頻的選擇,業界比較認可馬士兵的視頻。
最後一步,你需要學會使用資料庫,mysql是個不錯的入門選擇,而且Java領域里主流的關系型資料庫就是mysql。這部分一般在你學習Servlet/Jsp的時候,就會接觸到的,其中的JDBC部分就是資料庫相關的部分。你不僅要學會使用JDBC操作資料庫,還要學會使用資料庫客戶端工具,比如navicat,sqlyog,二選一即可。
開發框架:目前比較主流的是SSM框架,即spring、springmvc、mybatis。你需要學會這三個框架的搭建,並用它們做出一個簡單的增刪改查的Web項目。你可以不理解那些配置都是什麼含義,以及為什麼要這么做,這些留著後面你去了解。但你一定要可以快速的利用它們三個搭建出一個Web框架,你可以記錄下你第一次搭建的過程,相信我,你一定會用到的。還要提一句的是,你在搭建SSM的過程中,可能會經常接觸到一個叫maven的工具。這個工具也是你以後工作當中幾乎是必須要使用的工具,所以你在搭建SSM的過程中,也可以順便了解一下maven的知識。在你目前這個階段,你只需要在網路上了解一下maven基本的使用方法即可,一些高端的用法隨著你工作經驗的增加,會逐漸接觸到的。
因此,你需要去看一些JDK中的類的源碼,也包括你所使用的框架的源碼。這些源碼能看懂的前提是,你必須對設計模式非常了解。否則的話,你看源碼的過程中,永遠會有這樣那樣的疑問,這段代碼為什麼要這么寫?為什麼要定義這個介面,它看起來好像很多餘?由此也可以看出,這些學習的過程是環環相扣的,如果你任何一個階段拉下來了,那麼你就真的跟不上了,或者說是一步慢步步慢。而且我很負責的告訴你,我在這個階段的時候,所學習的東西遠多於這里所羅列出來的。
總而言之,這個階段,你需要做的是深入了解Java底層和Java類庫(比如並發那本書就是Java並發包java.concurrent的內容),也就是JVM和JDK的相關內容。而且還要更深入的去了解你所使用的框架,方式比較推薦看源碼或者看官方文檔。