hadoop2.7【單節點】單機、偽分布、分布式安裝指導


問題導讀

1.從本文部署實際部署,總結本地模式、偽分布、分布式的區別是什么?
2.單機是否是偽分布?
3.本地模式是否可以運行mapreduce?




來源:about雲

about雲開發

http://www.aboutyun.com/thread-12798-1-1.html


hadoop2.7發布,這一版不太適合用於生產環境,但是並不影響學習:由於hadoop安裝方式有三種,並且三種安裝方式都可以在前面的基礎上繼續配置,分別是:

  • 本地模式
  • 偽分布
  • 分布式



###############################################
1.准備

安裝jdk1.7參考
linux(ubuntu)安裝Java jdk環境變量設置及小程序測試

測試:
Java -version


安裝ssh

sudo apt-get install ssh

 

  $ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
  $ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
  $ export HADOOP\_PREFIX=/usr/local/hadoop


最后達到無密碼登錄

ssh localhost





安裝rsync

sudo apt-get install rsync


修改網卡:
注釋掉127.0.1.1 ubuntu
添加新的映射
10.0.0.81 ubuntu


這里必須修改,否則后面會遇到連接拒絕等問題

2.安裝

進入配置文件目錄

我這里是

~/hadoop-2.7.0/etc/hadoop




修改配置文件:
etc/hadoop/hadoop-env.sh

添加JAVA_HOME、HADOOP_COMMON_HOME

export JAVA_HOME=/usr/jdk
export HADOOP_COMMON_HOME=~/hadoop-2.7.0


配置環境變量

sudo nano /etc/environment

增加hadoop配置
將下面添加到變量PATH中

/home/aboutyun/hadoop-2.7.0/bin:/home/aboutyun/hadoop-2.7.0/sbin:






########################################################
3.本地模式驗證[可忽略]

所謂的本地模式:在運行程序的時候,比如wordcount是在本地磁盤運行的
上面已經配置完畢,我們對其測試,分別執行面命令:
注意: bin/hadoop的執行條件是在hadoop_home中,我這里是

  $ mkdir input

 

$ cp etc/hadoop/*.xml input



$bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.0.jar grep input output 'dfs[a-z.]+'




$ cat output/*




##################################################################
上面本地模式,我們知道就可以,我們下面繼續配置偽分布模式
4.偽分布模式

我這里的全路徑:/home/aboutyun/hadoop-2.7.0/etc/hadoop


修改文件etc/hadoop/core-site.xml
添加如下內容:
含義:接收Client連接的RPC端口,用於獲取文件系統metadata信息。

<configuration>
  <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>







修改etc/hadoop/hdfs-site.xml:
添加如下內容:
含義:備份只有一份

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




5.偽分布模式

1.格式化namenode

hdfs namenode -format

有的地方使用

bin/hdfs namenode -format

如果配置的環境變量直接使用hdfs namenode -format即可

2.啟動集群

start-dfs.sh




這時候單節點偽分布就已經安裝成功了

驗證
輸入下面

http://localhost:50070/

如果是在虛擬機中安裝,但是在宿主主機中訪問,需要輸入虛擬機ip地址
這里虛擬機ip地址是10.0.0.81



所以,我這里是

http://10.0.0.81:50070/






配置到這里也是可以的,我們同樣可以運行wordcount,也就是我們的mapreduce不運行在yarn上。如果想讓程序運行在yarn上,繼續下面配置
#####################################################

6.配置Yarn

1.修改配置文件
修改配置文件mapred-site.xml
編輯文件etc/hadoop/mapred-site.xml,添加下面內容由於etc/hadoop中沒有mapred-site.xml,所以對mapred-queues.xml.template復制一份

cp mapred-site.xml.template mapred-site.xml

然后編輯文件mapred-site.xml
添加

<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>


最后形式:



修改配置文件yarn-site.xml

添加如下內容:

  <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>







2.啟動yarn

start-yarn.sh




(由於我這里已經配置了環境變來那個,所以在哪個地方都可以運行start-yarn.sh)
如果你沒有配置環境變量,則需要進入hadoop_home,執行下面命令

sbin/start-yarn.sh


3.驗證
啟動yarn之后,輸入

http://localhost:8088/

即可看到下面界面




下一篇hadoop2.7 運行wordcount

遇到問題

問題1:

Error: Could not find or load main class 

org.apache.hadoop.hdfs.server.namenode.NameNode



解決辦法:
在~/hadoop-2.7.0/etc/hadoop/hadoop-env.sh中添加

export HADOOP_COMMON_HOME=~/hadoop-2.7.0

重啟生效

問題2:
格式化Java_home not found

bin/hdfs namenode -format

在/etc/environment 中添加

export JAVA_HOME=/usr/jdk



生效

source /etc/environment

重啟[如還不行,重啟]

sudo init 6






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM