文章目錄
一、安裝準備
在linux環境下安裝hadoop需要準備的資料如下:
這裏主要需要準備的就是jdk和hadoop安裝包,將這兩個拖到opt目錄下解壓,jdk的環境變量還是像之前那樣配置。
這裏可以事先配置好另外兩個host,方便後面的集羣搭建,參照前面ELK集羣搭建的配置方法,能夠實現免密登錄即可。
二、hadoop的配置
首先切換到如下目錄:
[root@localhost opt]# mv hadoop-2.6.0-cdh5.14.2/ hadoop --先將解壓好的hadoop目錄改個名
[root@localhost hadoop]# cd etc/hadoop --再切換到其下面etc/hadoop下
此時進行ll查看,可以看到有很多xml、sh等類型的文件。
1.首先配置hadoop-env.sh
# The java implementation to use.
#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/opt/java8
這裏將jdk的路徑改成自己配置的路徑,這裏我也將jdk重命名成java8,改完後保存退出
2.配置core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.234.101:9000</value> --默認節點端口,端口號默認是9000
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/tmp</value> --hdfs存放的臨時目錄
</property>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value> --其他機器的所有root用戶可以訪問
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value> --其他root用戶的組內用戶可以訪問
</property>
</configuration>
在configuration裏面加上屬性配置。
3.配置hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value> ---副本數
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop01:50090</value> ---從元數據節點名
</property>
</configuration>
4.配置mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value> --MapReduce默認的工作模式:yarn
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop01:10020</value> --MapReduce的工作地址
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop01:19888</value> --MapReduce的歷史日誌查詢地址
</property>
</configuration>
PS:mapred-site.xml文件原本解壓後是mapred-site.xml.template,這裏將其改名爲了保持一致。
5.配置yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<!-- reducer獲取數據方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop01</value>
</property>
<!-- 日誌聚集功能使用 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日誌保留時間設置7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
</configuration>
6.配置slaves
hadoop01 --本機用戶改成hadoop01
7.配置hadoop環境變量
直接:vi /etc/profile,在最後一行插入下面的配置
export HADOOP_HOME=/opt/hadoop
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
三、格式化HDFS
輸入命令:
hadoop namenode -format
PS:這裏如果出現:
-bash: hadoop: command not found
兩種解決方案:(1) 看一下自己的hadoop路徑是否配置正確,主要是HADOOP_HOME的配置路徑
(2) 因爲配置完環境變量,需要使之立即生效,纔可以使用hadoop命令,所以要:source /etc/profile
四、啓動hadoop
輸入命令啓動hadoop:
start-all.sh
同時也可以將hadoop的歷史查詢服務也啓動:
[root@localhost hadoop]# mr-jobhistory-daemon.sh start historyserver
然後輸入jps查詢當前所有進程,顯示如下幾個,說明啓動成功:
[root@localhost hadoop]# jps
10466 NodeManager
9988 NameNode
10100 DataNode
10244 SecondaryNameNode
10789 JobHistoryServer
10379 ResourceManager
10878 Jps
輸入網址:192.168.234.101:50070,端口號位50070,顯示如下結果再次驗證了hadoop啓動成功。
五、集羣搭建
1.克隆虛擬機
克隆一個虛擬機命名爲hadoop2(PS:複製後的虛擬機,網絡適配器的MAC地址需要重新生成,不然只能開一個),需要如下操作
vi /etc/sysconfig/network-scripts/ifcfg-ens33 --修改主機地址爲:192.168.234.102
vi /etc/hostname --修改主機名爲:hadoop02
vi /etc/hosts --增加主機列表:hadoop01和hadoop02
2.配置免密登錄
因爲一開始配置第一臺hadoop01時已經將私鑰配置完成並生成了公鑰,所以這裏只需要將hadoop02的重新生成一下即可
[root@hadoop02 ~]# ssh-keygen -t rsa -P "" --生成私鑰
[root@hadoop02 ~]# cat .ssh/id_rsa.pub >> .ssh/authorized_keys --複製成公鑰
配置成功後,將兩臺機器實現遠程登錄“
[root@hadoop01 ~]# ssh-copy-id -i .ssh/id_rsa.pub -p22 [email protected] --hadoop01連接hadoop02
[root@hadoop02 ~]# ssh-copy-id -i .ssh/id_rsa.pub -p22 [email protected] --hadoop02連接hadoop01
這樣就可以實現免密登錄,可以測試在hadoop01下輸入命令:ssh root@hadoop02 直接可以登錄。
3.修改主機器的配置文件
1).修改hdfs-site.xml文件
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value> ----兩個分塊
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop02:50090</value> ----namenode的輔助節點
</property>
</configuration>
2).修改slaves文件
hadoop01
hadoop02
將兩個節點名全部加進去
4.複製配置文件到備用機器
[root@hadoop01 hadoop]# scp /opt/hadoop/etc/hadoop/hdfs-site.xml root@hadoop02:/opt/hadoop/etc/hadoop/hdfs-site.xml
[root@hadoop01 hadoop]# scp /opt/hadoop/etc/hadoop/slaves root@hadoop02:/opt/hadoop/etc/hadoop/slaves
這裏直接使用scp命令,將主機器修改好的配置文件直接覆蓋掉備用機器的配置文件
5.啓動hadoop
1).在主機器格式化: hdfs:hadoop namenode -format
2).啓動所有服務:start-all.sh和 mr-jobhistory-daemon.sh start historyserver
3).輸入命令:jps 顯示所有進程服務:
[root@hadoop01 hadoop]# jps
4020 NodeManager
3894 ResourceManager
2760 JobHistoryServer
3549 NameNode
4350 Jps
3663 DataNode
[root@hadoop01 hadoop]#
4).備用機器也啓動所有服務,輸入jps顯示所有進程:
[root@hadoop02 hadoop]# jps
3121 NodeManager
3489 Jps
2902 SecondaryNameNode
2812 DataNode
[root@hadoop02 hadoop]#
5).登錄網址進行確認驗證