hadoop學習;大資料集在HDFS中存為單個檔案;安裝linux下eclipse出錯解決;查看.class檔案外掛程式

來源:互聯網
上載者:User

標籤:style   blog   class   java   c   ext   

sudo apt-get install eclipse

安裝後開啟eclipse,提示出錯

An error has occurred. See the log file
/home/pengeorge/.eclipse/org.eclipse.platform_3.7.0_155965261/configuration/1342406790169.log.

查看錯誤記錄檔然後解決

開啟log檔案,看到下面的錯誤

!SESSION 2012-07-16 10:46:29.992 -----------------------------------------------
eclipse.buildId=I20110613-1736
java.version=1.7.0_05
java.vendor=Oracle Corporation
BootLoader constants: OS=linux, ARCH=x86, WS=gtk, NL=zh_CN
Command-line arguments:  -os linux -ws gtk -arch x86


!ENTRY org.eclipse.osgi 4 0 2012-07-16 10:46:31.885
!MESSAGE Application error
!STACK 1
java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons:
no swt-gtk-3740 in java.library.path
no swt-gtk in java.library.path
Can‘t load library: /home/pengeorge/.swt/lib/linux/x86_64/libswt-gtk-3740.so
Can‘t load library: /home/pengeorge/.swt/lib/linux/x86/libswt-gtk.so

解決辦法

把相關檔案拷貝到~/.swt/lib/linux/x86下即可
cp /usr/lib/jni/libswt-*3740.so ~/.swt/lib/linux/x86_64然後重啟就可以了

eclipse在usr/lib/eclipse下

http://www.blogjava.net/hongjunli/archive/2007/08/15/137054.html 解決查看.class檔案

一個典型的hadoop工作流程會在別的地方產生資料檔案(如記錄檔),再將這些複製到HDFS中,接著由Mapreduce處理這個資料,通常不會直接讀取一個HDFS檔案,它們依靠MAPReduce架構讀取,並將之解析為獨立的記錄(鍵/值對),除非指定資料的匯入與匯出,否則幾乎用不到編程來讀寫HDFS檔案

Hadoop檔案命令既可以與HDFS檔案系統互動,也可以和本地檔案系統互動,也可以與Amazon S3檔案系統互動

hadoop fs -mkdir /user/chuck建立檔案夾  hadoop fs -ls/查看   hadoop fs -lsr /查看子目錄 hadoop fs -put example.txt  .  添加檔案到/user/chuck後面的點相當於/user/chuck

注意這裡的example.txt是放在根目錄使用者下,比如student使用者,可以是 /home/student/example.txt  以上操作將本地檔案放入hdfs

當你把資料放入HDFS可以運行hadoop處理,處理過程將輸出一組新的HDFS檔案,查看hadoop fs -cat /user/chuck/pg20417.txt 讀取hadoop fs -get /user/chuck/pg20417.txt

 可以在hadoop中使用UNIX的管道hadoop fs -cat /user/chuck/pg20417.txt | head 查看最後一KBhadoop fs -tail  /user/chuck/pg20417.txt

刪除檔案hadoop fs -rm  /user/chuck/pg20417.txt

查看Hadoop命令協助,例如要瞭解ls 則可以hadoop fs -help ls

Hadoop命令列有個getMerge用於將HDFS複製到本機電腦檔案之前進行合并,在Hadoop用於檔案操作的主類位於org.apache.hadoop.fs


輸入資料被分到不同節點之後,節點間的資料交換在“洗牌”階段,節點間通訊的唯一時間是“洗牌”階段,這個通訊約束對可擴充性有極大的協助

MapReduce提供了一種序列化鍵值對的方法,因此只有那些這些序列化的類能夠在這個架構中充當鍵或者值,實現Writable介面的可以是值,實現WritableComparable<T>介面的可以是鍵和值,鍵需要比較。一些預定義的類實現writablecomparable介面ti

實現的方法有:如何讀入資料,如何寫出資料,資料的排序比較

可以開始第一階段mapper,一個類要作為mapper,需要繼承mapreducebase基類和實現mapper介面

構造方法void configure(JobConif job)提取xml設定檔,或者應用程式主類中的參數,在資料處理之前調用該函數

析構方法void close()mapper結束前的一個方法,完成所有結尾工作,如關閉資料庫連接,開啟檔案等。

mapper只有一個方法map,用於處理一個單獨的鍵值對

reduce函數,通過迭代處理那些與指定鍵相關聯的值,產生一個(可能為空白)列表

在mapper和reduce之間還有個極其重要的步驟:將mapper的結果輸出給不同的reducer,這就是partitioner的工作

多個reducer實現並行計算,預設的做法是對鍵進行散列來確定reducer,hadoop通過國HashPartitionner來強制執行這個策略,但有時會讓你出錯

(上海,北京)和(上海,廣州),這兩行可以被送到不同的reducer航線離港地,若以上海為key,則處理兩次,若以北京為離港地,為key,也是處理兩次,若以廣州為可以,也是處理兩次,這時北京和廣州為key的各自兩次就是多餘的

這時我們應該對partitioner量身定製,只需要對departure進行散列,相同離港地的航線送往同一個reducer

一個partitioner需要實現configure函數(將hadoop作業應用在partitioner上),實現getPartition()函數(返回一個介於0到reduce任務數之間的整數,指向鍵值對要發送的reducer)

由partitioner決定鍵放入的位置(哪個reducer)
HDFS支持將多個檔案合并成一個大檔案到HDFS處理(效率還高點)處理後滿足MapReduce使用,MapReduce處理的原則之一就是將輸入資料分割成塊, 這些快可以在多台電腦上平行處理,在hadoop術語這些被稱之為輸入分區(Input split),這些分區應足夠小實現粒度並行,也不能太小

FSDataInputStream擴充了java.io.DataInputStream以支援隨機讀,MapReduce需要這個特性,因為一台機器可能被指派從輸入檔案的中間開始處理一個分區,如果沒有隨機訪問,則需要從頭一直讀到分區的位置

HDFS為了儲存MapReduce並行切分和處理的資料所做的設計,HDFS按Block Storage並分布在多個機器上,每個檔案塊為一個分區,如果每個分區/塊都由它所在的機器進行處理,就自動實現了並行,多個節點負責資料區塊以實現可靠性,MapReduce可以任意選擇一個包含分區/資料區塊副本的節點

輸入分區是一種邏輯劃分,而HDFS資料區塊是對輸入資料的物理劃分,當它們一致時,效率非常高,但在實際中從未達到完全一致,記錄可能會跨過資料區塊的邊界,處理特定分區的計算節點會從一個資料區塊中擷取記錄的一個片段


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.