hadoop概述和安裝配置

来源:http://www.cnblogs.com/beijingsxt/archive/2016/01/15/5133734.html
-Advertisement-
Play Games

Apache Hadoop是一個在大型集群的商品硬體上運行的應用程式的框架。Hadoop框架透明的提供了應用程式的可靠性和數據訪問的方法。Hadoop實現了Map/Reduce計算模型,每個應用程式被切分成許多碎片化的工作段,每個段可在任何急群眾的節點(重覆)執行。此外,它還提供了用以在計算節點中存...


北京尚學堂提供

Hadoop說明

對於hadoop,apache官方wiki給出的說明為

  1. Apache Hadoop is a framework for running applications on large cluster built of commodity hardware. The Hadoop framework transparently provides applications both reliability and data motion. Hadoop implements a computational paradigm named Map/Reduce, where the application is divided into many small fragments of work, each of which may be executed or re-executed on any node in the cluster. In addition, it provides a distributed file system (HDFS) that stores data on the compute nodes, providing very high aggregate bandwidth across the cluster. Both MapReduce and the Hadoop Distributed File System are designed so that node failures are automatically handled by the framework.   

大意為:

Apache Hadoop是一個在大型集群的商品硬體上運行的應用程式的框架。Hadoop框架透明的提供了應用程式的可靠性和數據訪問的方法。Hadoop實現了Map/Reduce計算模型,每個應用程式被切分成許多碎片化的工作段,每個段可在任何急群眾的節點(重覆)執行。此外,它還提供了用以在計算節點中存儲數據的分散式文件系統HDFS,HDFS提供了節點間的高度聚合能力。MapReduce和Hadoop分散式文件系統都設計成擁有節點故障時自動處理的能力。

先決條件

支持平臺

  • GNU/Linux是產品開發和運行的平臺。 Hadoop已在有2000個節點的GNU/Linux主機組成的集群系統上得到驗證。
  • Win32平臺是作為開發平臺支持的。由於分散式操作尚未在Win32平臺上充分測試,所以還不作為一個生產平臺被支持。

所需軟體

Linux和Windows所需軟體包括:

  1. JavaTM1.5.x,必須安裝,建議選擇Sun公司發行的Java版本。         
  2. ssh 必須安裝並且保證 sshd一直運行,以便用Hadoop     腳本管理遠端Hadoop守護進程

Windows下的附加軟體需求

Cygwin - 提供上述軟體之外的shell支持。 

安裝軟體

如果你的集群尚未安裝所需軟體,你得首先安裝它們。

以Ubuntu Linux為例:

  1. $ sudo apt-get install ssh   
  2. $ sudo apt-get install rsync   

linuxhadoop安裝

hadoop生產環境是linux,這裡我在虛擬機上進行軟體的安裝,系統為centos7-64bit

ssh設置及主機名修改

修改主機名

  1. 執行主機名修改(ip要與實際對應上)

修改192.168.88.128對應機器的hostname,在該ip對應的主機執行命令

  1. hostname master  

相應的,對其他兩台機器分別執行

  1. hostname slave1  
  2. hostname slave2  

同時依次修改機器上的etc/host文件

  1. 192.168.88.128  master  
  2. 192.168.88.129  slave1  
  3. 192.168.88.130  slave2  
    1. 開啟ssh服務   

安裝openssh-server:$ sudo apt-get install openssh-server

       3.  建立ssh無密碼登錄

  • 在NameNode 上實現無密碼登錄本機:
  1. ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa  

直接回車,完成後會在~/.ssh/生成兩個文件:id_dsa 和id_dsa.pub。這兩個是成對
出現,類似鑰匙和鎖。再把id_dsa.pub 追加到授權key 裡面(當前並沒有authorized_keys
文件):$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys。完成後可以實現無密碼
登錄本機:$ ssh localhost。

  • 實現NameNode 無密碼登錄其他DataNode:把NameNode 上的id_dsa.pub 文件追加到dataNode 的authorized_keys 內( 以
    192.168.88.128 節點為例):
  1. 拷貝NameNode 的id_dsa.pub 文件:
  2. scp ~/.ssh/id_dsa.pub [email protected]:/root  
    1. 登錄192.168.88.129
  3. cat /root/id_dsa.pub >> ~/.ssh/authorized_keys  

 jdk安裝

  1. 首先從oracle官網下載jdk6,下載地址為http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html#jdk-6-oth-JPR,我下載的是.bin尾碼的文件
  2. 第二步,修改.bin文件的可執行許可權,這裡我放在了桌面上
  3. chmod 755 *.bin  
    1. 解壓縮bin文件
  4. ./*.bin  
    1. 對解壓的文件重命名(這不也可省略,主要是path等設置的時候簡明)
  5. mv jdk* jdk 

設置path路徑,首先打開vi編輯器

  1. vi /etc/profile  

在/etc/profile末尾加上(按insert按鍵)

  1. export JAVA_HOME=/root/Desktop/jdk  
  2. exportCLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar  
  3. export PATH=$PATH:$JAVA_HOME/bin   

最後保存並關閉立即應用更改

  1. source /etc/profile  

安裝hadoophadoop版本0.20.2

  1. 下載hadoop-0.20.2.tar.gz文件(免積分下載地址會稍後給出)
  2. 解壓
  3. tar -zxvf hadoop-0.20.2.tar.gz  

    1. 重命名
  4. mv hadoop-0.20.2 hadoop  
    1. 設置hadoop運行環境,進入重命名的hadoop目錄下的conf目錄並編輯hadoop-env.sh
  5. cd hadoop/conf  
    1. 找到# export JAVA_HOME=/usr/lib/j2sdk1.5-sun
      設置JAVA_HOME
  6. export JAVA_HOME=/root/Desktop/jdk  
    1. 配置conf/masters 和conf/slaves 文件:(只在namenode 上配置)
  7. masters  
  8.    192.168.88.128   
  9. slaves  
  10.        192.168.88.129  
  11.        192.168.88.130  
    1. 配置core-site、mapred-site、hdfs-site三個xml文件,三台機器上配置相同

core-site.xml

  1. <configuration>  
  2. <!--- global properties -->  
  3. <property>  
  4. <name>hadoop.tmp.dir</name>  
  5. <value>/home/hexianghui/tmp</value>  
  6. <description>A base for other temporary directories.</description>  
  7. </property>  
  8. <!-- file system properties -->  
  9. <property>  
  10. <name>fs.default.name</name>  
  11. <value>hdfs://192.168.88.128:9000</value>  
  12. </property>  
  13. </configuration>  

hdfs-site.xml:( replication 預設為3,如果不修改,datanode 少於三台就會報錯,修改為與系統適應的個數)

  1. <configuration>  
  2. <property>  
  3. <name>dfs.replication</name>  
  4. <value>1</value>  
  5. </property>  
  6. </configuration>  

mapred-site.xml

  1. <configuration>  
  2. <property>  
  3. <name>mapred.job.tracker</name>  
  4. <value>192.168.88.128:9001</value>  
  5. </property>  
  6. </configuration>  

 最後不要忘記修改path,將hadoop加入到path路徑,在/etc/profile文件最後加入

  1. export HADOOP_HOME=/root/Desktop/hadoop  
  2. export PATH=$PATH:$HADOOP_HOME/bin  

格式化hadoop文件系統並啟動

  1. #格式化hadoop文件系統  
  2. hadoop namenode -format  
  3. #啟動hadoop  
  4. start-all.sh  
  5. #最後用jps查看啟動的進程個數  
  6. jps  

在Namenode節點上結果如下

  1. 12091 JobTracker  
  2. 12026 SecondaryNameNode  
  3. 11875 NameNode  
  4. 12171 Jps  

DataNode結果如下

  1. 7274 Jps  
  2. 7049 DataNode  
  3. 7159 TaskTracker  

至此,hadoop分散式文件系統安裝完畢。

 

最新文檔更新請加入尚學堂www.sxt.cn】【專業大數據培訓機構,真正零首付入學www.bjsxt.com


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • hybrid app Hybrid App(混合模式移動應用)是指介於web-app、native-app這兩者之間的app,兼具“Native App良好用戶交互體驗的優勢”和“Web App跨平臺開發的優勢”。簡介編輯“雲”時代的來臨正在改變App和運營團隊之間的關係,一場不能避免的變革正在進....
  • 從當前activity中獲取et 表單中的值,並跳轉到myactivity.java所綁定的xml佈局文件上。private EditText et;Intent intent=new Intent(MainActivity.this,myactivity.class); String str...
  • 首頁在AndroidManifest.xml中添加訪問資料庫許可權 在src中新建一個連接webservice的類,名字隨意,這裡叫做“HttpConnSoap”。基本上這個類是固定的,要改的大多數就是webservice埠地址,具體代碼如下:package com.example.hospi...
  • 如果想直接查看源碼的話可以從我的Github上下載查看:https://github.com/zhanghuijun0/demo-for-android/tree/master/SlidingMenuSlidingMenu 是github上Android開源項目 能用於快速集成 Android 側滑...
  • 【版權所有,轉載請註明出處。】項目jni的關鍵代碼(項目地址見文章底部),獲取當前程式的包名com.example.shelldemo和com.example.nocrack對比,正常運行結果是this app is illegal,編譯jni我就不介紹了,項目中也帶了編譯好的so1.工具介紹IDA...
  • 一,效果圖。二,工程圖。三,代碼。RootViewController.h#import @interface RootViewController : UIViewController{ UIImageView *iCanImageView; UIImageView *menu_car...
  • DBCC DROPCLEANBUFFERS是MSSql提供的清除緩存數據,這邊的緩存數據一定要加個前提,一定是“乾凈”的緩存數據。何為乾凈的緩存數據?就是數據頁從硬碟讀取到記憶體或者數據寫入到硬碟後在也沒有被修改過。做一個簡單的驗證。步驟一:首先從硬碟讀取一些數據,然後運行update語句,然後運行如...
  • MSSQL資料庫
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...