一岩睁、軟件下載
為了成功配置Hadoop,我們需要下載以下的軟件:
1.Linux操作系統(tǒng)(Hadoop要運行在Linux上,必不可少撒穷,Centos或者Ubuntu都可以)
2.Hadoop (主角,不用說了)
Hadopp下載一是在官網(wǎng)直接下載:http://hadoop.apache.org
另一種方式是找國內(nèi)的景象裆熙,這里貼出一個北理的景象站:http://mirror.bit.edu.cn/apache/hadoop/common/
3.JDK(Hadoop是用Java來寫的端礼,所以必須的JDK不能少)
4.WinSCP(可選,僅用來將本地電腦上的文件傳到虛擬機中入录,如果直接在虛擬機內(nèi)下載所需的包和文件可忽略不裝)
二蛤奥、準備
在安裝之前需要進行一些前置操作,關(guān)閉防火墻和SELinux僚稿,否則Hadoop安裝可能會出現(xiàn)問題
1凡桥、關(guān)閉防火墻
//關(guān)閉防火墻,默認是關(guān)閉狀態(tài)
sudo ufw disable
//查看fw狀態(tài)
sudo ufw status
最后狀態(tài)是這樣就對了
2蚀同、關(guān)閉SELinux
//查看SELinux狀態(tài),Ubuntu默認狀態(tài)是關(guān)閉的
getenforce
//如果有沒關(guān)閉的情況可以嘗試以下的命令修改文件關(guān)閉SELinux
//將SELINUX=enforcing改成SELINUX=disabled,重啟生效
sudo vi /etc/selinux/config
三缅刽、安裝JDK
首先將JDK下載到虛擬機中啊掏,并解壓,記住JDK的位置
1衰猛、設(shè)置JDK路徑
使用 sudo vi /etc/profile 命令打開配置文件迟蜜,在結(jié)尾加上以下的代碼
#set java env
export JAVA_HOME=/Documents/kit/JDK/jdk1.8.0_261
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
設(shè)置完之后再使用一下命令使配置進行重啟
source /etc/profile
之后再使用 java -version 命令如果能看到版本號證明JDK已經(jīng)正確安裝了
1.1 配置正確但是java -version沒有顯示版本號的解決方法
1.1.1 版本問題
在Oracle的官網(wǎng)上有很多種JDK,一般虛擬機上的Centos和Ubuntu記得使用Compressed版的jdk
可以用以下方法驗證是否下載了正確的JDK
//查看系統(tǒng)位數(shù)
getconf LONG_BIT
//在你jdk解壓出來的文件的bin目錄下輸入一下命令啡省,如果能顯示jdk的版本號說明jdk合適
./java -version
1.1.2 權(quán)限
//有時候可能會因為用戶權(quán)限的問題導(dǎo)致娜睛,可以嘗試一下命令修改jdk文件夾權(quán)限
chmod -R a=rwx {你的jdk文件夾/}
1.1.3 路徑
明明我的路徑也對JDK也對權(quán)限也給了但是就是輸入java -version顯示不出來,還可以嘗試以下的方法
//在jdk解壓出來的目錄下輸入一下命令冕杠,將得到的路徑替換掉配置中JAVA_HOME的位置
pwd
四微姊、Hadoop安裝
1、解壓
2分预、創(chuàng)建子目錄
在Hadoop解壓出來的目錄下創(chuàng)建以下四個目錄,并將data文件夾的權(quán)限設(shè)為755兢交,否則DataNode會啟動失敗
mkdir -p tmp hdfs/data hdfs/name
chmod -R 755 hdfs/data
3、配置(偽分布式)
3.1 hadoop-evn.sh配置
在解壓出來的hadoop目錄下找到hadoop-evn.sh文件(可能因為版本不一樣位置不一樣建議搜索)笼痹,打開并在其中添加以下代碼
export JAVA_HOME=/home/tao/Documents/kit/JDK/jdk1.8.0_261
export PATH=$PATH:/home/tao/Documents/software/BD/hadoop/hadoop-3.1.3/bin
//更新配置
resource hadoop-evn.sh
//如果能顯示則說明hd安裝正確
hadoop-evn.sh
3.2 core-site.xml配置(核心組件)
同樣找到core-site.xml文件(搜索)配喳,并在其中添加如下代碼(注意修改對應(yīng)路徑)
hadoop.tmp.dir :臨時數(shù)據(jù)存放的位置
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/Documents/software/BD/hadoop/hadoop-3.1.3/tmp</value>
</property>
</configuration>
3.3 hdfs-site.xml配置(HDFS框架)
dfs.replication : 副本數(shù)量,偽分布式下副本數(shù)量為1
dfs.name.dir : NameNode數(shù)據(jù)保存的位置
dfs.data.dir : DataNode數(shù)據(jù)保存的位置
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/Documents/software/BD/hadoop/hadoop-3.1.3/hdfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/Documents/software/BD/hadoop/hadoop-3.1.3/hdfs/data</value>
</property>
</configuration>
3.4 mapred-site.xml配置(MapReduce框架)
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>hadoop:9001</value>
</property>
</configuration>
3.5 yarn-site.xml配置
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:18040</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:18030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:18025</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:18141</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:18088</value>
</property>
</configuration>
4凳干、格式化節(jié)點
在hadoop解壓的bin目錄下執(zhí)行以下命令
./hadoop namenode -format
如果在結(jié)果中看到如下則格式化節(jié)點成功
5晴裹、啟動hd并檢驗
這里有幾種常用的hd的啟動方式,分別是:
? start-dfs.sh:啟動HDFS
? start-mapreted.sh:啟動MapReduce
? start-all.sh:啟動所有救赐,啟動順序:NameNode涧团,DateNode,SecondaryNameNode经磅,JobTracker泌绣,TaskTracker
5.1 but there is no *** 報錯
? 修改start-dfs.sh文件和stop-dfs.sh文件
#!/usr/bin/env bash
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
? 修改start-yarn.sh文件和stop-yarn.sh文件
#!/usr/bin/env bash
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
5.2 Could not resolve***報錯
? 在 ~/.bashrc中加入以下代碼
export HADOOP_HOME=/home/tao/Documents/software/BD/hadoop/hadoop-3.1.3
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:
5.3 Permission denied (publickey,password)報錯
? 首先檢查是否是ssh秘鑰的問題,輸入如下命令,如果需要輸入密碼則說明是因為ssh秘鑰引起的問題
ssh localhost
? 解決方法
//手動配置秘鑰
cd ~/.ssh
//之后要你輸入路徑预厌,直接回車會默認生成
ssh-keygen -t rsa -P ""
cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
6阿迈、查看運行情況
? 使用 jps 可以看到當前運行情況