問題導讀
1.從本文部署實際部署,總結本地模式、僞分佈、分佈式的區別是什麼?
2.單機是不是僞分佈?
3.本地模式是否能夠運行mapreduce?
來源:about雲html
http://www.aboutyun.com/thread-12798-1-1.html
hadoop2.7發佈,這一版不太適合用於生產環境,可是並不影響學習:因爲hadoop安裝方式有三種,而且三種安裝方式均可以在前面的基礎上繼續配置,分別是:
node
###############################################
1.準備
安裝jdk1.7參考
linux(ubuntu)安裝Java jdk環境變量設置及小程序測試
測試:
Java -version
安裝ssh
linux
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
最後達到無密碼登陸
apache
ssh localhost
安裝rsyncubuntu
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中ssh
/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信息。oop
<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