怎麼安裝大數據計算核心軟件Hadoop?進行分佈式計算和存儲第一篇

由於安裝配置Hadoop牽涉的內容較多,我將Hadoop的安裝配置拆成了3篇文章來講述。

這是第一篇。


怎麼安裝大數據計算核心軟件Hadoop?進行分佈式計算和存儲第一篇


前期準備

由於大數據的安裝和使用涉及的內容比較多,截止到這篇文章,我寫的與大數據安裝有關的文章已經超過10篇了,為了能把這個事情說清楚,不得不這麼做。

在查看本文之前,一定要安裝好CentOS Linux 8 並升級完內核和軟件包,學會怎麼使用SSH軟件,學會怎麼配置IP等操作,進行過集群規劃和基礎配置,安裝並配置好時間同步chrony,安裝並配置好Java開發工具包jdk,安裝並配置好分佈式環境的協調Zookeeper,安裝並配置好文件分發軟件Rsync,為了在測試時不去分心處理權限問題,還需要關閉SELinux並關閉防火牆Firewall(生產環境再打開)。

以上內容可以參考我發佈過的以下文章:

1、知道Linux是怎麼安裝的嗎?安裝個CentOS Linux 8開始大數據開發

2、盤點兩個經典Linux維護軟件,詳細講講SSH是個什麼東西以及用法

3、Linux內核怎麼升級?升級有什麼好處?CentOS8升級內核並開啟BBR

4、Linux怎麼配置IP?CentOS8怎麼重啟網卡?配置/修改靜態IP的方法

5、大數據開發前要做什麼準備?8臺Hadoop服務器進行集群規劃前配置

6、如何保證大數據開發的服務器時間同步?chrony服務安裝與配置

7、怎麼在Linux上面安裝jdk?大數據開發前必備軟件在CentOS8上安裝

8、大數據服務器之間是怎麼配合的?分佈式Zookeeper集群安裝與配置

9、怎麼把Linux 的文件快速傳給10臺服務器?文件分發軟件的安裝配置

10、Linux有防火牆和殺毒軟件嗎?怎麼安裝配置Firewall抵禦網絡攻擊


怎麼安裝大數據計算核心軟件Hadoop?進行分佈式計算和存儲第一篇

集群規劃

上面有篇文章進行了詳細的集群規劃的編寫描述,這裡簡單敘述以下。

手裡有一臺Dell R620服務器,共有8塊硬盤,通過VMware將虛擬機分佈在這8塊硬盤上,模擬8臺服務器,模擬在一個機架上:

編號:/BJ0/LG0/hadoop221-228

221-222:NameNode,223-228:DataNode

集群規劃如下:(服務器為hadoop221-hadoop228)

怎麼安裝大數據計算核心軟件Hadoop?進行分佈式計算和存儲第一篇

特別提示:

我們安裝Hadoop的以下所有操作都可以先在一臺服務器(Hadoop221)上操作,完畢以後再將這個虛擬服務器複製成出來7份,完成最終的部署。

也就是我們先完成Hadoop221的操作系統和軟件的安裝配置,然後複製出7份來。

下面正式開始。

相關軟件的安裝及配置

安裝配置時間同步軟件chrony

怎麼安裝大數據計算核心軟件Hadoop?進行分佈式計算和存儲第一篇

參考上述文章,並根據上面的集群規劃,我們在221上安裝chrony。配置時我們把服務端server配置成192.168.1.222,這樣後面複製出來的其它服務器就能直接在222服務器上獲取時間了。全部安裝完畢,我們直接在hadoop222上面啟動Chrony服務即可完成所有的時間配置。

怎麼安裝大數據計算核心軟件Hadoop?進行分佈式計算和存儲第一篇

防火牆和SELINUX設置

因為Hadoop需要開啟的端口很多,而且牽涉到很多的權限,所以我們在測試時將防火牆和SELINUX都關掉。

在生產環境中,需要針對不同的開放端口做針對性的設置。

參考上述關於防火牆和SELINUX的文章,關閉防火牆且關閉SELinux,大致的內容摘取如下:

<code>systemctl stop firewalld/<code>
<code>systemctl disable firewalld/<code>
<code>vi /etc/selinux/config/<code>

相關參數修改如下:

#SELINUX=enforcing

SELINUX=disabled

重啟服務器,然後查看防火牆和SELinux狀態:

<code>reboot/<code>

查看SELinux的狀態

<code>/usr/sbin/sestatus -v/<code>

查看防火牆狀態

<code>systemctl status firewalld/<code>

顯示如下內容,則說明SELINUX已經關閉了

怎麼安裝大數據計算核心軟件Hadoop?進行分佈式計算和存儲第一篇


hostname相關設置

參考上面的集群規劃文章,進行hostname的配置,具體內容摘取如下:

運行下面的命令,修改本機的hostname:

<code>hostnamectl set-hostname hadoop221/<code>

222-228服務器上的hostname修改,等服務器安裝完畢以後統一操作(本文的底部有相關內容)

怎麼安裝大數據計算核心軟件Hadoop?進行分佈式計算和存儲第一篇

hosts相關設置

參考上面的集群規劃文章,進行hosts的配置,具體內容摘取如下:

由於一次次的錄入IP地址,不利於管理,我們在hosts裡面把服務器的hostname跟IP地址對應起來,輸入下面的命令開始操作:

<code>vi /etc/hosts/<code>

內容設置成如下所示:

<code>127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4/<code>
<code>::1 localhost localhost.localdomain localhost6 localhost6.localdomain6/<code>
<code>192.168.1.221 hadoop221/<code>
<code>192.168.1.222 hadoop222/<code>
<code>192.168.1.223 hadoop223/<code>
<code>192.168.1.224 hadoop224/<code>
<code>192.168.1.225 hadoop225/<code>
<code>192.168.1.226 hadoop226/<code>
<code>192.168.1.227 hadoop227/<code>
<code>192.168.1.228 hadoop228/<code>
<code>192.168.1.229 hadoop229/<code>
<code>192.168.1.230 hadoop230/<code>
怎麼安裝大數據計算核心軟件Hadoop?進行分佈式計算和存儲第一篇


添加Hadoop用戶

我們默認登錄的是Tristone用戶,需要切換到root用戶。

<code>su/<code>

錄入下述命令來添加hadoop用戶:

<code>useradd hadoop/<code>

錄入一遍"jiqun996"回車,再錄入一遍"jiqun996"回車後將hadoop用戶密碼設置為"jiqun996"

<code>passwd hadoop/<code>
怎麼安裝大數據計算核心軟件Hadoop?進行分佈式計算和存儲第一篇


安裝並配置jdk

參考上述jdk的安裝配置文章,具體內容摘取如下:

從Oracle上下載jdk,儘量不要使用其他版本的jdk,容易出現一些奇怪的問題,比如:沒有jps命令,自己都不知道哪裡出問題了。把下載的"jdk-8u231-linux-x64.tar.gz"傳到服務器上。進入服務器保存這個文件的目錄以後進行如下操作(下面的命令都是以root的權限操作的):

建立java的工作目錄(文件夾)

<code>mkdir /usr/java/<code>

解壓JDK

<code>tar -zxvf jdk-8u231-linux-x64.tar.gz/<code>

將JDK移動(剪切)到/usr/java/目錄

<code>mv jdk1.8.0_231/ /usr/java//<code>

將JDK所有者設置為root

<code>chown -R root:root /usr/java/jdk1.8.0_231//<code>

設置JDK的軟鏈接

<code>ln -sf /usr/java/jdk1.8.0_231 /usr/local/jdk/<code>

修改全局環境變量:

<code>vi /etc/profile/<code> 

在文件底部添加以下內容:

export JAVA_HOME="/usr/local/jdk"

export PATH=$JAVA_HOME/bin:$PATH

加載新的全局環境變量:

<code>source /etc/profile/<code>

運行jps命令,顯示類似以下內容,就算安裝jdk成功了

<code>jps/<code>
怎麼安裝大數據計算核心軟件Hadoop?進行分佈式計算和存儲第一篇

安裝並配置Zookeeper

參考上述Zookeeper的安裝配置文章,具體內容摘取如下:

由於Zookeeper類似於民主選舉,每臺服務器分別投票共同選舉一個作為leader,剩下的都是follower。基於這個原因,官方建議服務器集群設置為奇數臺,偶數臺的話會有一臺的資源浪費。根據咱們的集群規劃:226-228為我們的Zookeeper服務器。

因為Zookeeper需要一臺一臺的單獨啟動,所以咱們在hadoop221上配置好,到時候只在226-228上面啟動即可。

下載Zookeeper(參考我寫的相關文章)然後進行下列操作:

<code>tar -zxvf apache-zookeeper-3.5.6-bin.tar.gz/<code>
<code>mkdir /home/hadoop/server/<code>
<code>mkdir -p /home/hadoop/data/zkdata/<code>
<code>mkdir -p /home/hadoop/log/zklog/<code>
<code>mv apache-zookeeper-3.5.6-bin/ /home/hadoop/server//<code>
<code>ln -sf /home/hadoop/server/apache-zookeeper-3.5.6-bin/ /home/hadoop/zookeeper/<code>
<code>chown -R hadoop:hadoop /home/hadoop/*/<code>
<code>vi /etc/profile/<code>

文件底部添加以下內容:

export ZOOKEEPER_HOME="/home/hadoop/zookeeper"

export PATH=$ZOOKEEPER_HOME/bin:$PATH

執行下述命令加載全局環境變量,然後切換到hadoop用戶開始操作:

<code>source /etc/profile/<code>
怎麼安裝大數據計算核心軟件Hadoop?進行分佈式計算和存儲第一篇

<code>su hadoop/<code>
<code>cd /home/hadoop/zookeeper/conf/<code>
<code>cp zoo_sample.cfg zoo.cfg/<code>
<code>vi /home/hadoop/zookeeper/conf/zoo.cfg/<code>

內容調整如下:

<code>dataDir=/home/hadoop/data/zkdata/<code>
<code>dataLogDir=/home/hadoop/log/zklog//<code>
<code>server.226=hadoop226:2888:3888/<code>
<code>server.227=hadoop227:2888:3888/<code>
<code>server.228=hadoop228:2888:3888/<code>

最後不要忘了在每個服務器"/home/hadoop/data/zkdata/"下新建文件"myid"並把當前服務器編號寫進去,舉例:

<code>echo 221 > /home/hadoop/data/zkdata/myid/<code>

啟動的事情,這裡先不操作,後面到配置226-228的時候再啟動。

注意:雖然我們在配置文件中寫明瞭服務器的列表信息,但是,我們還是需要去每一臺服務 器去啟動,不是一鍵啟動集群模式。

怎麼安裝大數據計算核心軟件Hadoop?進行分佈式計算和存儲第一篇


安裝並配置Hadoop

先從國內的源服務器上找到hadoop的下載鏈接,並複製鏈接地址:

怎麼安裝大數據計算核心軟件Hadoop?進行分佈式計算和存儲第一篇

下載Hadoop

先用root權限操作:先用root權限操作:先用root權限操作:

重要的事情說三遍:

<code>cd /home/hadoop/server/<code>
<code>wget 粘貼剛才複製的URL地址/<code>

軟件包有340多M,下載時彆著急

<code>tar -zxvf hadoop-3.2.1.tar.gz/<code>
<code>ln -sf /home/hadoop/server/hadoop-3.2.1/ /home/hadoop/hadoop/<code>
<code>chown -R hadoop:hadoop /home/hadoop/*/<code>

配置全局環境變量文件profile

<code>vi /etc/profile/<code>

在文件尾部添加以下內容,用root用戶操作

export HADOOP_HOME="/home/hadoop/hadoop"

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

加載全局變量:

<code>source /etc/profile/<code>
<code>echo $HADOOP_HOME/<code>
怎麼安裝大數據計算核心軟件Hadoop?進行分佈式計算和存儲第一篇

下面以hadoop用戶操作:下面以hadoop用戶操作:下面以hadoop用戶操作

重要的事情說三遍:

執行以下命令,建立相關的目錄

<code>su hadoop/<code>
<code>rm -rf /home/hadoop/hadoop/share/doc #刪除文檔,很大,又沒用/<code>
<code>mkdir -p /home/hadoop/data/dfs/data/<code>
<code>mkdir /home/hadoop/data/dfs/name/<code>
<code>mkdir /home/hadoop/data/dfs/tmp/<code>
<code>mkdir /home/hadoop/data/journaldata/<code>
<code>cd /home/hadoop/hadoop/etc/hadoop/<code>
<code>vi /home/hadoop/hadoop/etc/hadoop/hadoop-env.sh/<code>

添加一行內容:

export JAVA_HOME="/usr/local/jdk"

怎麼安裝大數據計算核心軟件Hadoop?進行分佈式計算和存儲第一篇

修改配置文件core-site.xml

清空原來全部內容

<code>echo > /home/hadoop/hadoop/etc/hadoop/core-site.xml/<code>
<code>vi /home/hadoop/hadoop/etc/hadoop/core-site.xml/<code>

內容如下:

<configuration>

<property>

<name>fs.defaultFS/<name>

<value>hdfs://myha01//<value>

<property>

<name>hadoop.tmp.dir/<name>

<value>/home/hadoop/data/dfs/tmp/<value>

<property>

<name>ha.zookeeper.quorum/<name>

<value>hadoop226:2181,hadoop227:2181,hadoop228:2181/<value>

<property>

<name>ha.zookeeper.session-timeout.ms/<name>

<value>1000/<value>

<description>ms/<description>

<property>

<name>ipc.client.connect.max.retries/<name>

<value>100/<value>

<description>Indicates the number of retries a client will make to establish a server connection./<description>

<property>

<name>ipc.client.connect.retry.interval/<name>

<value>10000/<value>

<description>Indicates the number of milliseconds a client will wait for before retrying to establish a server connection./<description>

<property>

<name>topology.script.file.name/<name>

<value>10000/<value>

<description>Indicates the number of milliseconds a client will wait for before retrying to establish a server connection./<description>

怎麼安裝大數據計算核心軟件Hadoop?進行分佈式計算和存儲第一篇

修改配置文件hdfs-site.xml

<code>echo > /home/hadoop/hadoop/etc/hadoop/hdfs-site.xml #清空原來全部內容/<code>
<code>vi /home/hadoop/hadoop/etc/hadoop/hdfs-site.xml/<code>

內容如下

<configuration>

<property>

<name>dfs.replication/<name>

<value>3/<value>

<property>

<name>dfs.namenode.name.dir/<name>

<value>/home/hadoop/data/dfs/name/<value>

<property>

<name>dfs.datanode.data.dir/<name>

<value>/home/hadoop/data/dfs/data/<value>

<property>

<name>dfs.webhdfs.enabled/<name>

<value>true/<value>

<property>

<name>dfs.nameservices/<name>

<value>myha01/<value>

<property>

<name>dfs.ha.namenodes.myha01/<name>

<value>nn1,nn2/<value>

<property>

<name>dfs.namenode.rpc-address.myha01.nn1/<name>

<value>hadoop221:9000/<value>

<property>

<name>dfs.namenode.http-address.myha01.nn1/<name>

<value>hadoop221:50070/<value>

<property>

<name>dfs.namenode.rpc-address.myha01.nn2/<name>

<value>hadoop222:9000/<value>

<property>

<name>dfs.namenode.http-address.myha01.nn2/<name>

<value>hadoop222:50070/<value>

<property>

<name>dfs.namenode.shared.edits.dir/<name>

<value>qjournal://hadoop223:8485;hadoop224:8485;hadoop225:8485/myha01/<value>

<property>

<name>dfs.journalnode.edits.dir/<name>

<value>/home/hadoop/data/journaldata/<value>

<property>

<name>dfs.ha.automatic-failover.enabled/<name>

<value>true/<value>

<property>

<name>dfs.client.failover.proxy.provider.myha01/<name>

<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider/<value>

<property>

<name>dfs.ha.fencing.methods/<name>

<value>sshfence/<value>

shell(/bin/true)

<property>

<name>dfs.ha.fencing.ssh.private-key-files/<name>

<value>/home/hadoop/.ssh/id_rsa/<value>

<property>

<name>dfs.ha.fencing.ssh.connect-timeout/<name>

<value>30000/<value>

<property>

<name>ha.failover-controller.cli-check.rpc-timeout.ms/<name>

<value>60000/<value>

怎麼安裝大數據計算核心軟件Hadoop?進行分佈式計算和存儲第一篇

修改配置文件mapred-site.xml

<code>echo > /home/hadoop/hadoop/etc/hadoop/mapred-site.xml #清空原來全部內容/<code>
<code>vi /home/hadoop/hadoop/etc/hadoop/mapred-site.xml/<code>

全部內容如下:

<configuration>

<property>

<name>mapreduce.framework.name/<name>

<value>yarn/<value>


<property>

<name>mapreduce.jobhistory.address/<name>

<value>hadoop222:10020/<value>


<property>

<name>mapreduce.jobhistory.webapp.address/<name>

<value>hadoop222:19888/<value>

<property>

<name>mapreduce.application.classpath/<name>

<value>/home/hadoop/hadoop/etc/hadoop:/home/hadoop/hadoop/share/hadoop/common/lib/*:/home/hadoop/hadoop/share/hadoop/common/*:/home/hadoop/hadoop/share/hadoop/hdfs:/home/hadoop/hadoop/share/hadoop/hdfs/lib/*:/home/hadoop/hadoop/share/hadoop/hdfs/*:/home/hadoop/hadoop/share/hadoop/mapreduce/lib/*:/home/hadoop/hadoop/share/hadoop/mapreduce/*:/home/hadoop/hadoop/share/hadoop/yarn:/home/hadoop/hadoop/share/hadoop/yarn/lib/*:/home/hadoop/hadoop/share/hadoop/yarn/*/<value>

怎麼安裝大數據計算核心軟件Hadoop?進行分佈式計算和存儲第一篇

修改配置文件yarn-site.xml

<code>echo > /home/hadoop/hadoop/etc/hadoop/yarn-site.xml #清空原來全部內容/<code>
<code>vi /home/hadoop/hadoop/etc/hadoop/yarn-site.xml/<code>

內容如下:

<configuration>

<property>

<name>yarn.resourcemanager.ha.enabled/<name>

<value>true/<value>


<property>

<name>yarn.resourcemanager.cluster-id/<name>

<value>yrc/<value>


<property>

<name>yarn.resourcemanager.ha.rm-ids/<name>

<value>rm1,rm2/<value>


<property>

<name>yarn.resourcemanager.hostname.rm1/<name>

<value>hadoop226/<value>


<property>

<name>yarn.resourcemanager.hostname.rm2/<name>

<value>hadoop227/<value>


<property>

<name>yarn.resourcemanager.zk-address/<name>

<value>hadoop226:2181,hadoop227:2181,hadoop228:2181/<value>


<property>

<name>yarn.nodemanager.aux-services/<name>

<value>mapreduce_shuffle/<value>


<property>

<name>yarn.log-aggregation-enable/<name>

<value>true/<value>


<property>

<name>yarn.log-aggregation.retain-seconds/<name>

<value>86400/<value>


<property>

<name>yarn.resourcemanager.recovery.enabled/<name>

<value>true/<value>


<property>

<name>yarn.resourcemanager.store.class/<name>

<value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore/<value>

<property>

<name>yarn.application.classpath/<name>

<value> /home/hadoop/hadoop/etc/hadoop:/home/hadoop/hadoop/share/hadoop/common/lib/*:/home/hadoop/hadoop/share/hadoop/common/*:/home/hadoop/hadoop/share/hadoop/hdfs:/home/hadoop/hadoop/share/hadoop/hdfs/lib/*:/home/hadoop/hadoop/share/hadoop/hdfs/*:/home/hadoop/hadoop/share/hadoop/mapreduce/lib/*:/home/hadoop/hadoop/share/hadoop/mapreduce/*:/home/hadoop/hadoop/share/hadoop/yarn:/home/hadoop/hadoop/share/hadoop/yarn/lib/*:/home/hadoop/hadoop/share/hadoop/yarn/*/<value>

<property>

<name>yarn.resourcemanager.address.rm1/<name>

<value>hadoop226:8032/<value>

<property>

<name>yarn.resourcemanager.scheduler.address.rm1/<name>

<value>hadoop226:8030/<value>

<property>

<name>yarn.resourcemanager.webapp.address.rm1/<name>

<value>hadoop226:8088/<value>

<property>

<name>yarn.resourcemanager.resource-tracker.address.rm1/<name>

<value>hadoop226:8031/<value>

<property>

<name>yarn.resourcemanager.admin.address.rm1/<name>

<value>hadoop226:8033/<value>

<property>

<name>yarn.resourcemanager.ha.admin.address.rm1/<name>

<value>hadoop226:23142/<value>

<property>

<name>yarn.resourcemanager.address.rm2/<name>

<value>hadoop227:8032/<value>

<property>

<name>yarn.resourcemanager.scheduler.address.rm2/<name>

<value>hadoop227:8030/<value>

<property>

<name>yarn.resourcemanager.webapp.address.rm2/<name>

<value>hadoop227:8088/<value>

<property>

<name>yarn.resourcemanager.resource-tracker.address.rm2/<name>

<value>hadoop227:8031/<value>

<property>

<name>yarn.resourcemanager.admin.address.rm2/<name>

<value>hadoop227:8033/<value>

<property>

<name>yarn.resourcemanager.ha.admin.address.rm2/<name>

<value>hadoop227:23142/<value>

怎麼安裝大數據計算核心軟件Hadoop?進行分佈式計算和存儲第一篇

修改配置文件workers

<code>vi /home/hadoop/hadoop/etc/hadoop/workers/<code>

這個文件裡面填寫的是存儲/計算節點(HDFS和YARN)的主機名稱,內容如下:

hadoop223

hadoop224

hadoop225

hadoop226

hadoop227

hadoop228

怎麼安裝大數據計算核心軟件Hadoop?進行分佈式計算和存儲第一篇

至此Hadoop的基礎安裝配置部分全部完成。後面還有兩篇,配置後操作以及第一次啟動,日常如何啟動,您可以持續關注後續文章。


分享到:


相關文章: