Hadoop2.6.0安裝—單機/偽分佈

来源:http://www.cnblogs.com/vincentzh/archive/2016/10/16/5967274.html
-Advertisement-
Play Games

目錄 環境準備 創建hadoop用戶 更新apt 配置SSH免密登陸 安裝配置Java環境 安裝Hadoop Hadoop單機/偽分佈配置 單機Hadoop 偽分佈Hadoop 啟動Hadoop 停止Hadoop 目錄 作者: vincent_zh時間:2016-10-16 出處:http://ww ...


目錄

  1. 環境準備
    1. 創建hadoop用戶
    2. 更新apt
    3. 配置SSH免密登陸
    4. 安裝配置Java環境
  2. 安裝Hadoop
  3. Hadoop單機/偽分佈配置
    1. 單機Hadoop
    2. 偽分佈Hadoop
    3. 啟動Hadoop
    4. 停止Hadoop

作者: vincent_zh
時間:2016-10-16 
出處:http://www.cnblogs.com/vincentzh/p/5967274.html 
聲明:本文以學習、研究和分享為主,如需轉載,標明作者和出處,非商業用途! 

環境準備

  此處準備的環境是Virtual Box虛擬機下的Ubuntu14.04 64位系統,Hadoop版本為Hadoop2.6.0。裝好Hadoop運行的基礎Linux環境後,還需要做以下準備:

  •   創建hadoop用戶;
  •   更新apt;
  •   配置SSH免密登陸;
  •   安裝配置Java環境。

 創建hadoop用戶

  如果安裝系統時配置的並非是“hadoop”用戶,就需要新增加一個“hadoop”用戶。

1 $ sudo useradd -m hadoop -s /bin/bash

  該命令創建新的“hadoop”用戶,並指定 /bin/bash 作為其shell。

  

  如需更改hadoop用戶密碼,可通過如下命令進行:

1 $ sudo passwd hadoop

  

  同樣,為避免後期安裝過程中的用戶許可權問題,可直接給“hadoop”用戶添加上管理員許可權:

1 $ sudo adduser hadoop sudo

  之後,需切換到hadoop用戶下進行下麵操作。

 更新apt

  切換到hadoop用戶之後,需要先更新一下apt,後續需要通過apt安裝其他軟體,直接在命令行安裝會方便很多,如果沒有更新,一些軟體可能安裝不了。可參考以下命令進行更新:

1 $ sudo apt-get update

  Linux 的編輯工具,當然非 vim 莫屬了,先裝上 vim 後期改參數配置文件時用的到。

1 $ sudo apt-get install vim

  遇到命令行的 [ yes/no] 或者 [Y/N] 選項,直接yes進行安裝。

 配置SSH免密登陸

  單點/集群都需要安裝SSH。一方面是遠程登陸,可一再本機通過SSH直接連接虛擬機的系統,這樣也便於後期在Windows環境下使用 Eclipse 進行配置開發 MapReduce 程式;另一方面,在配置Hadoop集群時,集群工作過程中主機和從機、從機和從機之間都通過SSH進行授權登陸工作通信。Ubuntu系統預設已經安裝了SSH Client,需要額外安裝SSH Server。

1 $ sudo apt-get install openssh-server

  首次登陸SSH會有首次登陸提示,鍵入yes,按提示輸入hadoop用戶密碼即可登陸。

  配置免密登陸。一方面,我們通過ssh登陸時比較方便,不需重新輸入密碼;另一方面,在集群方式工作時,主機與從機通信過程或從機與從機之間進行文件備份時是需要越過密碼驗證這一環節的,所以需要提前生成公鑰,在集群工作時,可以直接自動登陸。

1 $ exit                                    #推出剛剛登陸的 localhost
2 $ cd ~/.ssh                               #若無此目錄,請先進行一次ssh 登陸
3 $ ssh-keygen -t rsa                       #會有很多提示,全部回車即可
4 $ cat ./id_rsa.pub >> ./authorized_keys   #將公鑰文件加入授權

  再次通過 ssh 登陸就不需要輸入密碼了。

 安裝配置Java環境

  Java環境,Oracle JDK 和 OpenJDK都可以,此處直接通過命令安裝OpenJDK1.7(其中包含 jre 和 jdk):

1 $ sudo apt-get install openjdk-7-jre openjdk-7-jdk

  配置環境變數:

  安裝好JDK後,需要配置Java環境變數,通過以下命令尋找Java安裝路徑:

1 $ dpkg -L openjdk-7-jdk | grep '/bin/javac'

  該命令會輸出一個路徑,除去路徑末尾的 “/bin/javac”,剩下的就是JDK的安裝路徑了。

 

  在.bashrc文件中配置環境變數:

1 $ vi ~/.bashrc

  需要在.bashrc文件中添加如下環境變數:

 

  生效並檢驗環境變數配置是否正確:

1 $ source ./.bashrc                  #生效環境變數
2 $ echo $JAVA_HOME                   #查看環境變數
3 $ java -version
4 $ $JAVA_HOME/bin/java -version      #驗證與java -version 輸出一致

 

   OK,Java環境安裝配置完成。

安裝Hadoop

   通過http://mirrors.cnnic.cn/apache/hadoop/common/ 可下載Hadoop穩定版 hadoop-2.x.y.tar.gz 文件都是編譯好的,建議同時下載hadoop-2.x.y.tar.gz.mds,此mds文件是為了檢驗在下載和移動文件過程中文件的完整性。

  通過驗證文件的md5值去檢驗文件的完整性:

1 $ cat ./hadoop-2.6.0.tar.gz.mds | grep 'MD5'
2 $ md5sum ./hadoop-2.6.0.tar.gz | tr 'a-z' 'A-Z'

   文件驗證無誤,將文件解壓到安裝目錄:

1 $ cd /usr/lcoal                              #切換到壓縮文件所在目錄
2 $ sudo tar -zxf ./hadoop-2.6.0.tar.gz ./     #解壓文件
3 $ sudo mv ./hadoop-2.6.0 ./hadoop            #將文件名改為較容易辨認的
4 $ chown -R hadoop ./hadoop                   #修改文件許可權

   在.bashrc文件中配置hadoop相關環境變數:

   生效環境變數,並驗證Hadoop安裝成功。

1 $ source ~/.bashrc
2 $ hadoop version

Hadoop單機/偽分佈配置 

 單機Hadoop

   Hadoop 預設模式為非分散式模式,無需進行其他配置即可運行。非分散式即單 Java 進程,方便進行調試。

  註:單機、偽分佈、集群的區別:

    單機:故名思意,Hadoop運行再單台伺服器上,並且此時的Hadoop讀取的是本地的文件系統,並沒有使用自己的HDFS。

    偽分佈:單機版集群,單台伺服器既是NameNode,也是DataNode,並且也只有這一個DataNode,文件是從HDFS讀取。

    集群:單機和偽分佈說了集群就簡單了。一般單獨分配一臺伺服器作為NameNode,並且NameNode一般不會同時配置為DataNode,DataNode一般在其他伺服器上,另外對大型集群,為體現Hadoop集群的高可用性,也會單獨設置一臺伺服器作為集群的SecondaryNameNode,也就是NameNode的備份,主要用於NameNode失效時的快速恢復。

 偽分佈Hadoop

   Hadoop 偽分散式的方式是在單節點上運行的,節點既作為 NameNode 也作為 DataNode,同時,讀取的是 HDFS 中的文件,Hadoop 進程以分離的 Java 進程來運行。

  Hadoop 的配置文件位於 $HADOOP_HOME/etc/hadoop/ 中,偽分散式需要修改2個配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每個配置以聲明 property 的 name 和 value 的方式來實現。另外如果要啟動YARN,需要再修改 mapred-site.xmlyarn-site.xml 兩個配置文件。

  通過編輯器或 vim 對xml配置文件進行修改。

  修改 core-site.xml 配置文件:

 1 <configuration>
 2         <property>
 3              <name>hadoop.tmp.dir</name>
 4              <value>file:/usr/local/hadoop/tmp</value>
 5              <description>Abase for other temporary directories.</description>
 6         </property>
 7         <property>
 8              <name>fs.defaultFS</name>
 9              <value>hdfs://localhost:9000</value>
10         </property>
11 </configuration>

   修改 hdfs-site.xml  配置文件:

 1 <configuration>
 2         <property>
 3              <name>dfs.replication</name>
 4              <value>1</value>
 5         </property>
 6         <property>
 7              <name>dfs.namenode.name.dir</name>
 8              <value>file:/usr/local/hadoop/tmp/dfs/name</value>
 9         </property>
10         <property>
11              <name>dfs.datanode.data.dir</name>
12              <value>file:/usr/local/hadoop/tmp/dfs/data</value>
13         </property>
14 </configuration>

   修改 mapred-site.xml 配置文件:

1 <configuration>
2         <property>
3              <name>mapreduce.framework.name</name>
4              <value>yarn</value>
5         </property>
6 </configuration>

  修改 yarn-site.xml 配置文件:

1 <configuration>
2         <property>
3              <name>yarn.nodemanager.aux-services</name>
4              <value>mapreduce_shuffle</value>
5             </property>
6 </configuration>

 啟動Hadoop

   配置完成,首次啟動Hadoop時需要對NameNode格式化:

1 $ hdfs namenode -format

 

   有這兩個標誌,則表示配置沒問題,namenode已經格式化,可以啟動Hadoop了。如果格式化錯誤,需要檢查配置文件配置是否正確,最常見的問題就是配置文件里的拼寫錯誤。

  啟動守護進程:

1 $ start-dfs.sh                                     #啟動hdfs,含NameNode、DataNode、SecondaryNameNode守護進程
2 $ start-yarn.sh                                    #啟動yarn,含ResourceManager、NodeManager
3 $ mr-jobhistory-daemon.sh start historyserver      #開啟歷史伺服器,才能在Web中查看任務運行情況

   守護進程的啟動情況可通過 jps 命令查看,查看所有的守護進程是否都正常啟動。如果有未啟動的守護進程,需要去 $HADOOP_HOME/logs 目錄查看對應的守護進程啟動的日誌查找原因。

   成功啟動所有守護進程之後,通過Web界面 http://server_ip/50070 查看NameNode 和 DataNode 的信息,還可以線上查看HDFS文件。

  YRAN啟動之後(即 ResourceManager 和 NodeManager),也可以通過 http://server_ip/8088 查看管理資源調度,和查看Job的執行情況。

 停止Hadoop

1 $ stop-dfs.sh
2 $ stop-yarn.shResourceManager、NodeManager
3 $ mr-jobhistory-daemon.sh stop historyserver 

  Note:Hadoop常用的伺服器管理命令腳本都可以在 $HADOOP_HOME/bin 和 $HADOOP_HOME/sbin 目錄中找到。


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

-Advertisement-
Play Games
更多相關文章
  • 一個簡單的關於頁面,有一個圖片,版本號,App名稱等,著重演示各個系列的文章完整集成示例. ...
  • Linux文件和目錄許可權解讀 如何設置Linxu文件和目錄的許可權 字元表示法 1)ls -l:查看所在目錄所有文件的許可權 2)chmod u=r file:把file文件的當前(用戶user)的許可權賦值為可寫模式 3)chmod g=wrx file:把file文件的當前(組gruop)的許可權賦值為 ...
  • 在IOS開法中經常會遇到鍵盤遮擋屏幕的事情(比如輸入賬號密碼驗證碼等等),就使得原本都不大的屏幕直接占了一半甚至更多的位置,這倒無所謂,關鍵是擋住了下麵的按鈕。這樣的話按鈕的事件也就觸發不了,最好的解決辦法就是當輸入這些信息的時候讓整個屏幕上移一個鍵盤的位置,或者上移到指定的位置。 首先一般輸入的話 ...
  • 首先吹一下意圖:切割字元串是因為在資料庫中存圖片地址時,可能一件商品對應有多張圖片。那麼我們可以建一個商品表(goods)和一個圖片表(goods_image),然後讓圖片表的id作為商品表的外鍵,實現一對多的關聯。 但是想到建表一個路徑一個路徑的存,數據也蠻多的,然後既然可以在商品表中添加一個欄位 ...
  • 控制台列印的信息如下 解決辦法: Xcode8裡邊 Edit Scheme... -> Run -> Arguments, 在Environment Variables裡邊添加 OS_ACTIVITY_MODE = disable 步驟1. 步驟2. 步驟3. 結束設置 ...
  • 調整圖片大小的時候按下:option鍵讓讓控制項跟內容一樣大:command+= http://www.cr173.com/html/21801_1.html 一、關於運行調試1、運行,停止,都在工具欄的Product里。Command + R 運行。Command + . 停止 2、F6單步調試、F ...
  • Rocksdb是一個kv引擎,由facebook團隊基於levelDB改進而來,Rocksdb採用LSM-tree存儲數據,良好的讀寫特性以及壓縮特性使得其非常受歡迎。此外,Rocksdb引擎作為插件已經集成在facebook維護的MySQL分支,用戶可以通過SQL來訪問rocksDB。本文主要通過 ...
  • PL/SQL PL/SQL 簡介 每一種資料庫都有這樣的一種語言,PL/SQL 是在Oracle裡面的一種編程語言,在Oracle內部使用的編程語言。我們知道SQL語言是沒有分支和迴圈的,而PL語言是為了補充SQL語言的,是帶有了分支和迴圈的語言。 PL/SQL 語法 基本數據類型聲明 declar... ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...