零、寫在前面
服務器:centos7.6 jdk1.8 hadoop2.7
這個其實沒有什麼影響,都可以參照這個教程進行搭建
一、防火牆設置
停止防火牆
systemctl stop firewalld.service
禁止防火牆開機自啓動
systemctl disable firewalld.service
二、修改主機名
我將我的主機名修改爲master
reboot重啓服務器生效
三、修改hosts配置文件
vim /etc/hostname
四、安裝ssh
(1)詢問時輸入y
yum install openssh-clients openssh-server
(2)測試ssh是否安裝完成
ssh master
(3) 配置SSH免key登陸**(必須要配置)**
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
(4) 用ssh連接主機,此時不需要密碼
五、安裝jdk並配置java環境
最好使用安裝包的形式安裝,在線下載的速度很慢,不建議使用。
我這裏安裝的是jdk1.8
這裏具體的流程就直接跳過了
六、安裝hadoop並配置環境
(1)、下載安裝包
同樣的不要選擇在線安裝。下載安裝包再上傳到服務器上進行安裝。
下面是hsdoop的鏡像地址,我下載的是hsdoop2.7版本。
http://apache.claz.org/hadoop/common/
然後進入到相應的目錄進行解壓
(2)、查看是否安裝成功
(3)、修改配置文件,設置環境變量
vim ~/.bashrc
然後在添加下面,注意修改HADOOP_HOME
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
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 PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
使配置文件生效 source ~/.bashrc
(4)、然後 vim /etc/profile
結尾添加 (同樣的要注意hadoop的路徑)
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"
(5)、修改hadoop-env.sh
vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh
修改 export JAVA_HOME的路徑
然後再在結尾添加
export HADOOP_HOME=/usr/local/hadoop/
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"
(6)、修改core-site.xml
vim /usr/local/hadoop/etc/hadoop/core-site.xml
修改爲如下內容:
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>location to store temporary files</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
(7)、修改hdfs-site.xml
vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml
修改爲如下內容
<configuration>
//設置HDFS文件副本數
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.client.use.datanode.hostname</name>
<value>true</value>
</property>
<property>
<name>dfs.datanode.use.datanode.hostname</name>
<value>true</value>
</property>
//設置HDFS元數據文件存放路徑
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/hadoop-2.7.5/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/hadoop-2.7.5/tmp/dfs/data</value>
</property>
//設置其他用戶執行操作是會提醒沒有權限的問題
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
(8)、修改mapred-site.xml
將/usr/local/hadoop/etc/hadoop/mapred-site.xml.template的後綴.template去掉。然後
vim /usr/local/hadoop/etc/hadoop/mapred-site.xml
添加如下內容:
<configuration>
<property>
<name>mapreduce.framework</name>
<value>yarn</value>
</property>
</configuration>
(9)、修改yarn-site.xml
vim /usr/local/hadoop/etc/hadoop/yarn-site.xml
修改爲如下內容:
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
</configuration>
(10)、修改slaves文件
將localhost直接改成主機名(這裏爲master),如果有多個結點就每行一個。
(11)、格式化NameNode
注意:
只能格式化一次,如果之後想格式化就必須先清除/usr/local/hadoop/tmp
然後進入到bin目錄下面執行格式化操作
/usr/local/hadoop/bin/hdfs namenode -format
返回0即表示成功!
(12)、啓動hadoop
進去到sbin下面進行啓動
/usr/local/hadoop/sbin/start-all.sh
第一次啓動可能有錯誤,但是沒有關係的,多啓動幾次就好了,然後輸入yes,之後啓動就不會有什麼錯誤了。
輸入jps就可以查看進程狀態
七、開放相應的端口並進行測試
(1)、開放端口
需要開放:
50070:爲查看hdfs狀態
50010:如果不打開這個端口,在browse directory裏就查看不了文件
50075:如果不打開這個端口,可能不能在50070裏下載文件
我們可以打開ip:50070對hdfs進行操作
這幾個端口必須是要開放的,不開放否則就無法進行相應的操作:
9000:配置中把默認端口改爲9000了
8088:查看yarn狀態
也可以打開ip:8088查看yarn狀態