【HADOOP】hadoop安裝(虛擬機)


環境:CentOS7java8
安裝包:hadoop-2.10.0.tar.gz

一、系統設置(可以先在一個系統裏做,再克隆修改)

 
!!!(零)到(五)都在master下進行!!!
!!!(零)到(五)都在master下進行!!!
!!!(零)到(五)都在master下進行!!!
 

(零)配置網絡與安裝java

1、linux虛擬機NAT網絡配置
2、linux使用JDK替換OpenJDK流程

(一)同步時鐘

1、yum install -y ntpdate安裝ntpdate
2、crontab -e自動打開一個空文件,輸入i進入編輯模式,輸入0 1 * * * /usr/sbin/ntpdate cn.pool.ntp.org,按esc後輸入:wq保存退出

可以輸入ntpstat查看是否同步,下圖說明每512秒更新一次,校正約23*10-6秒。(需要等5到10分鐘。如果是最小化安裝版,自行yum -y install ntp安裝配置ntp,然後輸入service ntpd starchkconfig ntpd on最後輸入reboot重啓)
一-(一)-2

 


(二)配置主機名(可選)

1、CentOS7及以後使用hostnamectl set-hostname 主機名進行修改
 


(三)關閉防火牆和SELINUX

1、停止防火牆systemctl stop firewalld
2、禁止開機啓動systemctl disable firewalld
3、查看防火牆狀態firewall-cmd --state,顯示not running則關閉成功
4、輸入vi /etc/selinux/config編輯config文件
5、將SELINUX=enforcing改爲SELINUX=disabled,保存退出
 


(四)創建用戶賬號(可選)

1、輸入useradd 用戶名創建用戶
 


(五)配置hosts列表

1、輸入vi /etc/hosts編輯hosts文件
2、由於準備一個master兩個slave,所以追加如下(數量與ip因人而異)

192.168.153.100 master
192.168.153.101 slave1
192.168.153.102 slave2

3、esc後輸入:wq保存退出
 


(六)關機(shutdown -h now)克隆

1、對克隆完的虛擬機按照(五)裏面的ip進行配置。過程類似(零),但是隻用改下ip就行了
2、配置對應主機名(可選)
 
!!!下面過程需要同時開啓master、slave1和slave2!!!
!!!下面過程需要同時開啓master、slave1和slave2!!!
!!!下面過程需要同時開啓master、slave1和slave2!!!
 


(七)免密鑰登錄配置

1、HadoopMaster節點

(1)進入之前創建的用戶(如果有)輸入ssh-keygen –t rsa,一直回車,會在/root/.ssh中生成id_rsa id_rsa.pub兩個文件
(2)複製公鑰文件cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
(3)修改 authorized_keys 文件的權限chmod 600 ~/.ssh/authorized_keys
(4)將authorized_keys文件複製到slave1和slave2節點ssh-copy-id slave1ssh-copy-id slave2

2、HadoopSlave節點

(1)同1_(1)輸入ssh-keygen -t rsa
(2)cd ~/.ssh進入文件夾,修改 authorized_keys 文件的權限chmod 600 ~/.ssh/authorized_keys(authorized_keys已經存在)
(3)在master輸入ssh slave1ssh slave2如果如下圖所示則成功
一_(七)_2_(3)
一_(七)_2_(3)
 



二、Hadoop配置部署

每個節點上的Hadoop配置基本相同,在master節點操作,然後完成複製到另一個節點。

(一)解壓、配置環境變量(環境變量必須使用絕對路徑)

(解壓)類似linux虛擬機NAT網絡配置中,安裝包hadoop-2.10.0.tar.gz/root/coding/hadoop目錄下
1、在/root/coding/hadoop(自定)目錄下輸入tar -xf hadoop-2.10.0.tar.gz

 
(配置環境變量hadoop-env.sh)
2、輸入vi /root/coding/hadoop/hadoop-2.10.0/etc/hadoop/hadoop-env.sh,將# export JAVA_HOME=${JAVA_HOME}改爲export JAVA_HOME=/root/coding/java/jdk1.8.0_231

 
(配置環境變量yarn-env.sh)
3、輸入vi /root/coding/hadoop/hadoop-2.10.0/etc/hadoop/yarn-env.sh,將# export JAVA_HOME=/home/y/libexec/jdk1.6.0/改爲export JAVA_HOME=/root/coding/java/jdk1.8.0_231(去掉#)
 


(二)幾個xml文件的配置

(配置核心組件core-site.xml)
1、輸入vi /root/coding/hadoop/hadoop-2.10.0/etc/hadoop/core-site.xml,用下面的代碼替換core-site.xml中的內容:(下面的<value>/root/coding/hadoop/hadoopdata</value>裏面可以自己選地址)

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/root/coding/hadoop/hadoopdata</value>
</property>
</configuration>

 
(配置文件系統hdfs-site.xml)
2、輸入vi /root/coding/hadoop/hadoop-2.10.0/etc/hadoop/hdfs-site.xml,用下面的代碼替換core-site.xml中的內容:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>

 
(配置文件統統yarn-site.xml)
3、輸入vi /root/coding/hadoop/hadoop-2.10.0/etc/hadoop/yarn-site.xml,用下面的代碼替換core-site.xml中的內容:

<?xml version="1.0"?>
<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>

 
(配置計算架mapred-site.xml)
4、先輸入cp /root/coding/hadoop/hadoop-2.10.0/etc/hadoop/mapred-site.xml.template /root/coding/hadoop/hadoop-2.10.0/etc/hadoop/mapred-site.xml。再輸入vi /root/coding/hadoop/hadoop-2.10.0/etc/hadoop/mapred-site.xml,用下面的代碼替換core-site.xml中的內容:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

 


(三)在master節點配置slaves文件

1、輸入vi /root/coding/hadoop/hadoop-2.10.0/etc/hadoop/slaves,追加

slave1
slave2

 


(四)複製到從節點

1、cd /root/coding/hadoop
2、將hadoop-2.10.0文件夾拷貝到slave1和slave2上scp -r hadoop-2.10.0 root@slave1:/root/coding/hadoopscp -r hadoop-2.10.0 root@slave2:/root/coding/hadoop
 


(五)配置Hadoop啓動的系統環境變量

該操作需要同時在master、slave1和slave2上操作

1、cd到/root目錄,然後編輯文件vi ~/.bash_profile
2、將下面的代碼追加到.bash_profile末尾:

#HADOOP
export HADOOP_HOME=/root/coding/hadoop/hadoop-2.10.0
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

3、保存退出後執行命令source ~/.bash_profile
4、在/root/coding/hadoop下創建hadoopdata目錄
 



三、啓動Hadoop集羣

(格式化文件系統)
1、在master主機執行hdfs namenode -format(如果提示hdfs命令不存在,則每個主機都需要重新執行次source ~/.bash_profile命令)

 
(啓動 Hadoop)
2、進入hadoop主目錄cd /root/coding/hadoop/hadoop-2.10.0,然後執行命令sbin/start-all.sh,輸入yes
 



四、驗證

1、在master端輸入jps命令回車,如果出現ResourceManager、Jps、
NameNode和SecondaryNameNode四個進程,則代表主節點安裝成功
四_1
 
2、在slave端輸入jps命令回車,如果出現NodeManager、DataNode
和Jps三個進程,則代表從節點安裝成功
四_2
 
3、在瀏覽器輸入http://master:50070/(master根據自己電腦不一樣,作者是192.168.153.100:50070)檢查namenode和datanode是否正常
四_3
 
4、在瀏覽器輸入http://master:18088/(master根據自己電腦不一樣,作者是192.168.153.100:18088)檢查yarn是否正常
四_4
 
5、運行PI實例檢查集羣是否成功
(1)cd /root/coding/hadoop/hadoop-2.10.0/share/hadoop/mapreduce/進入Hadoop安裝主目錄,執行下面的命令:

hadoop jar /root/coding/hadoop/hadoop-2.10.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.0.jar pi 10 10

四_5
輸出PI值則集羣安裝成功且正常啓動
 



五、使用說明

1、開啓/root/coding/hadoop/hadoop-2.10.0/sbin/start-all.sh

2、關閉/root/coding/hadoop/hadoop-2.10.0/sbin/stop-all.sh

3、哪個節點的datanode沒有啓動,使用rm -rf /root/coding/hadoop/hadoopdata/dfs/data/current刪除對應節點目錄/root/coding/hadoop/hadoopdata/dfs/data下的current,然後從新執行一下 hadoop namenode -format,然後再開啓hadoop。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章