Hadoop單機和偽分散式安裝

来源:http://www.cnblogs.com/yongjian/archive/2017/03/15/6552647.html
-Advertisement-
Play Games

本教程為單機版+偽分散式的Hadoop,安裝過程寫的有些簡單,只作為筆記方便自己研究Hadoop用。 環境 Hadoop 有兩個主要版本,Hadoop 1.x.y 和 Hadoop 2.x.y 系列,比較老的教材上用的可能是 0.20 這樣的版本。Hadoop 2.x 版本在不斷更新,本教程均可適用 ...


本教程為單機版+偽分散式的Hadoop,安裝過程寫的有些簡單,只作為筆記方便自己研究Hadoop用。

環境

操作系統 Centos 6.5_64bit  
本機名稱 hadoop001  
本機IP 192.168.3.128  
JDK jdk-8u40-linux-x64.rpm 點此下載
Hadoop 2.7.3 點此下載

 

Hadoop 有兩個主要版本,Hadoop 1.x.y 和 Hadoop 2.x.y 系列,比較老的教材上用的可能是 0.20 這樣的版本。Hadoop 2.x 版本在不斷更新,本教程均可適用。如果需安裝 0.20,1.2.1這樣的版本,本教程也可以作為參考,主要差別在於配置項,配置請參考官網教程或其他教程。

 

單機安裝


 

一、創建Hadoop用戶

為了方便之後的操作,不幹擾其他用戶,咱們先建一個單獨的Hadoop用戶並設置密碼[root@localhost ~]# useradd -m hadoop -s /bin/bash

[root@localhost ~]# passwd hadoop
Changing password for user hadoop.
New password: 
BAD PASSWORD: it is based on a dictionary word
BAD PASSWORD: is too simple
Retype new password: 
passwd: all authentication tokens updated successfully.

 

//還要修改host文件
[root@hadoop001 .ssh]# vim /etc/hosts
192.168.3.128 hadoop001

 

  

 

二、創建SSH無密碼登錄

單節點、集群都需要用到SSH登錄,方便無障礙登錄和通訊。

[hadoop@hadoop001 .ssh]$ cd ~/.ssh/
[hadoop@hadoop001 .ssh]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa): // 回車
Enter passphrase (empty for no passphrase):   //回車
Enter same passphrase again: 
Your identification has been saved in /home/hadoop/.ssh/id_rsa.
Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub.
The key fingerprint is:
97:75:b0:56:3b:57:8c:1f:b1:51:b6:d9:9f:77:f3:cf hadoop@hadoop001
The key's randomart image is:
+--[ RSA 2048]----+
|            . .=*|
|             +.+O|
|            + +=+|
|           + . o+|
|        S o    o+|
|         .      =|
|                .|
|               ..|
|                E|
+-----------------+
[hadoop@hadoop001 .ssh]$ cat ./id_rsa.pub >> ./authorized_keys
[hadoop@hadoop001 .ssh]$ ll
total 12
-rw-rw-r--. 1 hadoop hadoop  398 Mar 14 14:09 authorized_keys
-rw-------. 1 hadoop hadoop 1675 Mar 14 14:09 id_rsa
-rw-r--r--. 1 hadoop hadoop  398 Mar 14 14:09 id_rsa.pub
[hadoop@hadoop001 .ssh]$ chmod 644 authorized_keys
[hadoop@hadoop001 .ssh]$ ssh hadoop001
Last login: Tue Mar 14 14:11:52 2017 from hadoop001

這樣的話本機免密碼登錄已經配置成功了。

 

三、安裝JDK

rpm -qa  |grep java

// 卸載所有出現的包 
rpm -e --nodeps java-x.x.x-gcj-compat-x.x.x.x-40jpp.115

// 執行jdk-8u40-linux-x64.rpm包,不用配環境變數,不過需要加JAVA_HOME

echo "JAVA_HOME"=/usr/java/latest/ >> /etc/environment

 

測試安裝成功與否

[hadoop@hadoop001 soft]$ java -version
java version "1.8.0_40"
Java(TM) SE Runtime Environment (build 1.8.0_40-b25)
Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode)


四、安裝Hadoop

//安裝到opt目錄下
[root@hadoop001 soft]# tar -zxf hadoop-2.7.3.tar.gz -C /opt/

修改目錄許可權

[root@hadoop001 opt]# ll
total 20
drwxr-xr-x.  9 root  root  4096 Aug 17  2016 hadoop-2.7.3

[root@hadoop001 opt]# chown -R hadoop:hadoop hadoop-2.7.3/
[root@hadoop001 opt]# ll
total 20
drwxr-xr-x.  9 hadoop hadoop 4096 Aug 17  2016 hadoop-2.7.3

添加環境變數

[hadoop@hadoop001 bin]$ vim ~/.bash_profile
# hadoop 
HADOOP_HOME=/opt/hadoop-2.7.3

PATH=$PATH:$HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

export PATH

 

測試安裝成功與否

[hadoop@hadoop001 bin]$ hadoop
Usage: hadoop [--config confdir] [COMMAND | CLASSNAME]
  CLASSNAME            run the class named CLASSNAME
 or
  where COMMAND is one of:
  fs                   run a generic filesystem user client
  version              print the version
  jar <jar>            run a jar file
                       note: please use "yarn jar" to launch
                             YARN applications, not this command.
  checknative [-a|-h]  check native hadoop and compression libraries availability
  distcp <srcurl> <desturl> copy file or directories recursively
  archive -archiveName NAME -p <parent path> <src>* <dest> create a hadoop archive
  classpath            prints the class path needed to get the
  credential           interact with credential providers
                       Hadoop jar and the required libraries
  daemonlog            get/set the log level for each daemon
  trace                view and modify Hadoop tracing settings

Most commands print help when invoked w/o parameters.

 

單詞統計

創建輸入文件夾input放輸入文件

[root@hadoop001 /]# mkdir -p /data/input

//創建測試文件word.txt

[root@hadoop001 /]# vim word.txt

Hi, This is a test file.
Hi, I love hadoop and love you .

//授權
[root@hadoop001 /]# chown hadoop:hadoop /data/input/word.txt

//運行單詞統計
[hadoop@hadoop001 hadoop-2.7.3]$ hadoop jar /opt/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /data/

//...中間日誌省略
17/03/14 15:22:44 INFO mapreduce.Job: Counters: 30
	File System Counters
		FILE: Number of bytes read=592316
		FILE: Number of bytes written=1165170
		FILE: Number of read operations=0
		FILE: Number of large read operations=0
		FILE: Number of write operations=0
	Map-Reduce Framework
		Map input records=3
		Map output records=14
		Map output bytes=114
		Map output materialized bytes=127
		Input split bytes=90
		Combine input records=14
		Combine output records=12
		Reduce input groups=12
		Reduce shuffle bytes=127
		Reduce input records=12
		Reduce output records=12
		Spilled Records=24
		Shuffled Maps =1
		Failed Shuffles=0
		Merged Map outputs=1
		GC time elapsed (ms)=0
		Total committed heap usage (bytes)=525336576
	Shuffle Errors
		BAD_ID=0
		CONNECTION=0
		IO_ERROR=0
		WRONG_LENGTH=0
		WRONG_MAP=0
		WRONG_REDUCE=0
	File Input Format Counters 
		Bytes Read=59
	File Output Format Counters 
		Bytes Written=85
 

  

執行成功,到output目錄下看結果

[hadoop@hadoop001 output]$ vim part-r-00000
.       1
Hi,     2
I       1
This    1
a       1
and     1
file.   1
hadoop  1
is      1
love    2
test    1
you     1

【至此單機安裝完成】

 

偽分散式安裝


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

Hadoop 的配置文件位於 /$HADOOP_HOME/etc/hadoop/ 中,偽分散式需要修改2個配置文件 core-site.xmlhdfs-site.xml

Hadoop的配置文件是 xml 格式,每個配置以聲明 property 的 name 和 value 的方式來實現。

 

修改core-site.xml

<configuration>

 <property>
      <name>hadoop.tmp.dir</name>
              <value>file:/opt/hadoop-2.7.3/tmp</value>
              <description>Abase for other temporary directories.</description>
 </property>
                                                       
 <property>
      <name>fs.defaultFS</name>
      <value>hdfs://hadoop001:9000</value>
   </property>

</configuration>

 

修改hdfs-site.xml

<configuration>
<property>
             <name>dfs.replication</name>
             <value>1</value>
</property>

<property>
            <name>dfs.namenode.name.dir</name>
            <value>file:/data/dfs/name</value>
 </property>

 <property>
           <name>dfs.datanode.data.dir</name>
           <value>file:/data/dfs/data</value>
 </property>
</configuration>

偽分散式雖然只需要配置 fs.defaultFS 和 dfs.replication 就可以運行(官方教程如此),不過若沒有配置 hadoop.tmp.dir 參數,則預設使用的臨時目錄為 /tmp/hadoo-hadoop,而這個目錄在重啟時有可能被系統清理掉,導致必須重新執行 format 才行。所以我們進行了設置,同時也指定 dfs.namenode.name.dir 和 dfs.datanode.data.dir,否則在接下來的步驟中可能會出錯。

 

格式化namenode

[hadoop@hadoop001 hadoop]$ hdfs namenode –format

 

好,格式化後啟動namenode和datanode的守護進程,發現報錯

image

設置一下hadoop-env.sh文件,把${JAVA_HOME}替換成絕對路徑

[hadoop@hadoop001 hadoop-2.7.3]$ vim etc/hadoop/hadoop-env.sh

export JAVA_HOME=/usr/java/jdk1.8.0_40/

重新啟動start-dfs.sh

image

守護進程已經成功啟動了,證明配置偽分散式成功。

 

遠程訪問http://192.168.3.128:50070,發現無法訪問,本地可以訪問。

原因其實是修改了hadoop-env.sh 後沒有重啟格式化namenode,重新格式化後發現datanode啟動不起來了。

最後,刪除datanode數據文件下VERSION文件,格式化後重啟就可以了。


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

-Advertisement-
Play Games
更多相關文章
  • CoreAnimation 寄宿圖 博客園makedown支持不佳,如有需要請進 "GitHub" . 寄宿圖:圖層中所包含的圖 by:旭寶愛吃魚     針對於寄宿圖我在這裡只討論contents屬性以及Custom Drawing. contents &n ...
  • 在移動互聯網領域蓬勃發展的今天,APP的性能也成為各大公司重點關註的方向,該系列文章主要針對iOS的性能的幾個方面做一些研究。 什麼是HTTP2.0? 什麼是HTTP2.0? 網上很容易搜到關於HTTP2.0的概念的文章,這裡不再累述。 蘋果從iOS9開始支持HTTP2.0,對iOS開發人員來說,即 ...
  • 本文主要講述了在FineReport移動端中釘釘如何集成設計器的插件從而實現企業應用。 ...
  • phpMyAdmin的程式主要使用php和javascript開發,它的安裝使用都比較簡單而且已有很多相關介紹,今天來自騰訊雲資料庫團隊的高級開發工程師在此給大家介紹一下——源碼中的一個核心組件sql-parser ...
  • 3月9日14點,業內首個結合技術與應用的線上大數據技術峰會即將展開,屆時6位阿裡技術大咖與4位行業資深實踐者將從技術與業務兩個方面,與大家探討大數據如何最快落地到實踐。較為有看點的是: 最深入的實踐:本次線上峰會上,6個阿裡規模的大數據實踐將被深入分享,包括大數據平臺的性能調優、流式增量計算、持續發... ...
  • 前幾天卡Q在網上搜嘍大數據的課程,偶遇了廈門大學林子雨教授的大數據公開課,嚇得卡Q一身冷汗,為什麼呢? 這不,卡Q剛給自己的人生定了個小目標,比如,進入互聯網公司當個產品經理。因為在卡Q的眼裡,互聯網是個朝氣蓬勃的圈子,裡面的人都很牛掰,和聰明人共事,運氣總不會太差,所以,卡Q決定削尖了腦袋也要和聰... ...
  • 摘要: 目前我國物流業保持較快增長,但還是存在一些問題:物流成本高、效率低,條塊分割嚴重(自營物流、規模小、技術落後、標準不統一)、基礎設施相對滯後(物流基礎設施之間不銜接、不配套),對訂單創建到用戶簽收整套完整流程缺乏完善的監控和預警手段. ...
  • “令人驚喜的是,利用阿裡雲的數加平臺,我們差不多一個多月就搭建好了大數據平臺,並且可以通過圖形化的界面快速的開發,幾個開發人員很快的掌握,甚至我們把阿裡雲的開髮端給了業務部門,他們一些稍微資深一點的業務人員也可以使用,所以我們初步估計了一下,給我們節省的價值至少是千萬級的。 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...