Hadoop的下載和安裝
一:Hadoop的簡介
Apache的Hadoop是一個開源的、可靠的、可擴展的系統架構,可利用分布式架構來存儲海量數據,以及實現分布式的計算。
Hadoop許使用簡單的編程模型在計算機集群中對大型數據集進行分布式處理。可以從單個服務器擴展到數千台機器,
每個機器都提供本地計算和存儲,而不是依靠硬件來提供高可用性。
此外,Hadoop集群的高可用性也非常良好,因為框架內的機制是可以夠自動檢測和處理故障。
hadoop名字的來源:這個名字不是一個縮寫,它是一個虛構的名字。該項目的創建者,Doug Cutting如此解釋
Hadoop的得名:"這個名字是我孩子給一頭吃飽了的棕黃色大象命名的。我的命名標准就是簡短,容易發音和拼寫,
沒有太多的意義,並且不會被用於別處。小孩子是這方面的高手。
二:下載
第一種方式:官網下載 http://hadoop.apache.org/releases.html
第二種方式:百度網盤2.7.1版本 鏈接: https://pan.baidu.com/s/1Nkp4hQEMWblKqdBvj-lUZA 密碼: yy18
三:安裝和配置環境
1.1安裝模式
單機模式:不能使用HDFS,只能使用MapReduce,所以單機模式最主要的目的是在本機調試mapreduce代碼
偽分布式模式:用多個線程模擬多台真實機器,即模擬真實的分布式環境。(本次用這個)
完全分布式模式:用多台機器(或啟動多個虛擬機)來完成部署集群。
1.2安裝步驟
1關閉防火牆.
執行:service iptables stop 臨時關閉防火牆,重啟失效
chkconfig iptables off 永久關閉防火牆,打完上面的命令再打一次這個,兩個配合永久關閉.
2.配置主機名稱
有些主機名稱名字又長,有不好記,就需要改一下主機名稱,配置Hadoop的時候會方便一些
當然也可以不改,不影響的
執行: vim /etc/sysconfig/network 找到HOSTNAME改等號后面就可以改你想改的主機名稱了
我這里是BigData02我就不改了,你們隨意。
注意:主機名里不能有下滑線,或者特殊字符 #$,不然會找不到主機導致無法啟動
這種方式更改主機名需要重啟才能永久生效,因為主機名屬於內核參數
如果不想重啟,可以執行:host name BigData2(這里寫你改的)。
但是這種更改是臨時的,重啟后會恢復原主機名。
所以可以結合使用。先修改配置文件,然后執行:hostname BigData02 。
可以達到不重啟或重啟都是主機名都是同一個的目的
3.配置hosts文件
執行 vim /etc/hosts
4.配置自己節點免秘鑰登錄
如果是單機的偽分布式環境,節點需要登錄自己節點,即BigData02要登錄BigData02
但是此時是需要輸入密碼的,所以要在BigData02節點上配置免密匙登錄.
執行:ssh-keygen
然后一直回車
生成節點的公鑰和私鑰,生成的文件會自動放在/root/.ssh目錄下(了解)
啟動hadoop的時候會自己調用自己,還有重復輸入用戶名和密碼太麻煩了。所以就
這樣Hadoop重啟的時候就可以不用重復輸入賬號密碼了
比如:ssh 你的主機ip 我剛才改hosts文件了,把我的ip映射成BigData02也可以用
ssh BigData02 登錄,記住登錄了別忘了exit退出來。
如果A主機想免密登錄到B主機就可以在A主機執行
ssh-copy-id root@B主機的ip地址
這樣A主機就可以免密登錄到B主機
5.安裝前的環境.
需要jdk環境 裝環境不太熟悉的可以參考一下https://www.cnblogs.com/bybdz/p/9525540.html
使用Xshell連接Linux雲主機或者虛擬機我這里用虛擬機,我使用Xshell連接Linux虛擬機
對Xshell感興趣的可以看一下 https://www.cnblogs.com/bybdz/p/9311354.html
6.如何上傳到Linux.
rz -e 把下載下來的Hadoop包傳到Linux系統下(Xshell連接了Linux,別的我沒試過,效果不保證)
如果輸入rz -e 提示command not found,用 yum install lrzsz 安裝 然后rz -e選擇上傳
或者直接拖拽上傳
7.配置 hadoop-env.sh
先把上傳過來的hadoop解壓一下
計入hadoop目錄的ect目錄下的hadoop目錄下注意是hadoop目錄下的ect/hadoop目錄
然后: vim hadoop-env.sh 這個文件也是在hadoop目錄下的ect/hadoop目錄
修改 java_home路徑和 hadoop_conf_dir 路徑
自己的hadoop目錄,后面的etc/hadoop別忘了寫
然后執行:source hadoop-env.sh 讓配置立即生效
8.修改 core-site.xml
在 hadoop目錄下 ,進入 etc/hadoop目錄
以下的配置如果沒有做說明,全都在Hadoop根目錄下的etc目錄下的hadoop目錄下操作
現在我在我們本身就在這個目錄下如下圖:
執行: vim core-site.xml
最下面本來是這樣的
添加2個property節點,沒有做說明的可以照着寫,有說明的根據自己情況寫
這個這頂的目錄如果不存在的話一定要自己創建!!!
9.修改 hdfs-site.xml
配置如下:照着抄
<!--如果是偽分布模式,此值是1-->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!--設置hdfs的操作權限,false表示任何用戶都可以在hdfs上操作文件-->
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
10.修改mapred-site.xml
這個文件初始時是沒有的,有一個模板文件,mapred-site.xml.template
所以需要拷貝一份,並重命名為mapred-site.xml
執行:cp mapred-site.xml.template mapred-site.xml
配置如下
<property>
<!--指定mapreduce運行在yarn上-->
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
11.修改 yarn-site.xml
配置如下圖
<configuration>
<property>
<!--指定yarn的老大 resoucemanager的地址-->
<name>yarn.resourcemanager.hostname</name>:
<value>hadoop01</value>
</property>
<property>
<!--NodeManager獲取數據的方式-->
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<configuration>
12.配置slaves文件
13.配置hadoop的環境變量,JDK目錄和HADOOP目錄寫自己的
vim /etc/profile 在最后添加
JDK目錄,和HADOOP目錄寫自己的,CLASSPATH和PATH和export可以照着抄
JAVA_HOME=/home/software/jdk1.8
HADOOP_HOME=/home/software/hadoop-2.7.1
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export JAVA_HOME PATH CLASSPATH HADOOP_HOME
source /etc/profile 使環境變量生效
14.格式化namenode
執行:hadoop namenode -format
如果不好使,可以重啟linux
當出現:successfully,證明格式化成功
15.啟動Hadoop
因為配置了Hadoop環境變量,不需要到sbin目錄下啟動
直接執行:start-dfs.sh 啟動hadoop相關的服務
出現如下圖就成功了,如果少的化,可能是配置文件寫錯了,檢查配置文件
打開瀏覽器http://你的ip地址:50070/ 比如:http://192.168.139.133:50070/
會出現如下圖,說明啟動成功了
注:如果在啟動時,報錯:Cannot find configuration directory: /etc/hadoop
解決辦法:編輯 etc/hadoop下的 hadoop-env.sh 文件,添加如下配置信息:
export HADOOP_CONF_DIR=/home/software/hadoop-2.7.1/etc/hadoop
然后執行 source hadoop-env.sh 使配置立即生效(在配置文件目錄下)
執行:start-yarn.sh 啟動yarn相關的服務
end 2018年8月25日