-
新建虛擬機java
-
修改虛擬機的靜態IPnode
-
修改主機名,添加主機和ip的映射關係web
-
關閉防火牆 (1-4 經過腳本完成)vim
-
建立普通用戶
useradd jinghang
passwd jinghang
centos -
配置普通用戶具備root權限
vim /etc/sudoers
在91行下添加以下內容:
jinghang ALL=(ALL) NOPASSWD:ALL
完成後:wq!
服務器
7.在/opt目錄下建立文件夾(software存放壓縮軟件包,modul存放解壓後的軟件包)網絡
-
在/opt目錄下建立module、software文件夾app
mkdir /opt/module /opt/software
-
修改module、software文件夾全部者和所屬組ssh
chown jinghang:jinghang /opt/module /opt/software
八、關機拍攝快照webapp
九、從拍照位置克隆三臺虛擬機
十、克隆虛擬機有兩個網卡(三臺都須要改):
-
進入這個文件 vim /etc/udev/rules.d/70-persistent-net.rules
1.刪除 NAME="eth0"這一行 2.修改NAME="eth1" -> NAME="eth0" (:wq!) 3.複製ADDR地址(虛擬mac地址) 4.進入到 vim /etc/sysconfig/network-scripts/ifcfg-eth0 HWADDR=賦值ADDR地址(虛擬mac地址) :wq! 5.service network restart (若是失敗,reboot)
十一、修改克隆後虛擬機的ip和主機名、ip主機的映射關係(使用腳本完成)
十二、肯定任務
-
簡介
HDFS: namenode datanode secondarynamenode YARN:resourcemanager nodemanager history: historyserver
-
master(主節點) slaves(從節點)
-
hadoop集羣默認3個副本,這裏集羣搭建3臺服務器,對應服務器上存放的服務
Hadoop03 Hadoop04 Hadoop05 datanode datanode datanode namenode resourcemanager secondarynamenode nodemanager nodemanager nodemanager historyserver
1三、編輯 /etc/profile來配置環境
[jinghang@Hadoop02 hadoop-2.7.2]$ sudo vim /etc/profile #配置JAVA_HOME export JAVA_HOME=/opt/module/jdk1.8.0_144 export PATH=$ PATH:$ JAVA_HOME/bin #配置HADOOP_HOME export HADOOP_HOME=/opt/module/hadoop-2.7.2 export PATH=$ PATH:$ HADOOP_HOME/bin export PATH=$ PATH:$ HADOOP_HOME/sbin 添加完環境source一下: [jinghang@Hadoop02 hadoop-2.7.2]$ source /etc/profile
1四、查看環境是否配置成功
[jinghang@Hadoop02 hadoop-2.7.2]$ hadoop version [jinghang@Hadoop02 hadoop-2.7.2]$ java -version 若是java不是1.8.0_144版本 卸載以前的版本 rpm -qa | grep java (查看java安裝包) sudo rpm -e java-1.6.0-openjdk-1.6.0.41-1.13.13.1.el6_8.x86_64 (卸載jdk安裝包) sudo rpm -e java-1.7.0-openjdk-1.7.0.181-2.6.14.10.el6.x86_64 --nodeps (忽略依賴卸載jdk安裝包)
1五、配置集羣
-
在hadoop-2.7.2目錄下:
vim etc/hadoop/hadoop-env.sh 修改JAVA_HOME路徑 export JAVA_HOME=/opt/module/jdk1.8.0_144 vim etc/hadoop/yarn-env.sh 修改JAVA_HOME路徑 export JAVA_HOME=/opt/module/jdk1.8.0_144 vim etc/hadoop/mapred-env.sh 修改JAVA_HOME路徑 export JAVA_HOME=/opt/module/jdk1.8.0_144
- 配置HDFS,在hadoop-2.7.2目錄下:
vim etc/hadoop/core-site.xml 添加設置 <! -- 指定HDFS中NameNode的地址 --> <property> <name>fs.defaultFS</name> <value>hdfs://Hadoop03:9000</value> </property> <! -- 指定Hadoop運行時產生文件的存儲目錄 --> <property> <name>hadoop.tmp.dir</name> <value>/opt/module/hadoop-2.7.2/data/tmp</value> </property>
vim etc/hadoop/hdfs-site.xml 添加配置 < !-- 指定HDFS副本的數量 --> <property> <name>dfs.replication</name> <value>3</value> </property> < !-- 指定Hadoop輔助名稱節點主機配置 --> <property> <name>dfs.namenode.secondary.http-address</name> <value>Hadoop05:50090</value> </property>
- 配置YARN,在hadoop-2.7.2目錄下:
vim etc/hadoop/yarn-site.xml 添加配置 <!-- Reducer獲取數據的方式 --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!-- 指定YARN的ResourceManager的地址 --> <property> <name>yarn.resourcemanager.hostname</name> <value>Hadoop04</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>
- 在hadoop-2.7.2目錄下,重命名mapred-site.xml.template:mv
etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
而後編輯: vim etc/hadoop/mapred-site.xml 添加配置: <!-- 指定MapReduce運行在YARN上 --> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <!-- 歷史服務器端地址 --> <property> <name>mapreduce.jobhistory.address</name> <value>Hadoop03:10020</value> </property> <!-- 歷史服務器web端地址 --> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>Hadoop03:19888</value> </property>
1六、分發
這時一臺服務器已經配置完成,將配置分發到其餘的服務器上。 一、將Hadoop03服務器的hadoop-2.7.2分發給Hadoop04服務器 rsync -av /opt/module/hadoop-2.7.2 jinghang@Hadoop04:/opt/module/ 二、將Hadoop03服務器的hadoop-2.7.2分發給Hadoop05服務器 rsync -av /opt/module/hadoop-2.7.2 jinghang@Hadoop05:/opt/module/ 三、將Hadoop03服務器的 jdk1.8.0_144 分發給Hadoop04服務器 rsync -av /opt/module/ jdk1.8.0_144 jinghang@Hadoop04:/opt/module/ 四、將Hadoop03服務器的 jdk1.8.0_144 分發給Hadoop05服務器 rsync -av /opt/module/ jdk1.8.0_144 jinghang@Hadoop05:/opt/module/ 五、將Hadoop03服務器的 /etc/profile 分發給Hadoop04服務器的root用戶 rsync -av /etc/profile root@Hadoop04:/etc/profile 在Hadoop04服務器上 source /etc/profile 六、將Hadoop03服務器的/etc/hosts分發給Hadoop04服務器的root用戶 rsync -av /etc/hosts root@Hadoop04:/etc/hosts 七、分發完畢,檢查三臺服務器的java版本和hadoop版本
1七、啓動集羣(在集羣的各臺服務器上啓動對應的服務進程)
一、啓動集羣以前必定要格式化(/opt/module/hadoop-2.7.2) bin/hdfs namenode -format ( has been successfully formatted) 若是格式化失敗了: 1.刪除/opt/module/hadoop-2.7.2目錄下的data logs 2.bin/hdfs namenode --format 注意:格式化NameNode,會產生新的集羣id,致使NameNode和DataNode的集羣id不一致, 集羣找不到已往數據。因此,格式NameNode時,必定要先刪除data數據和log日誌, 而後再格式化NameNode。 2 啓動HDFS服務 啓動namenode sbin/hadoop-daemon.sh start/stop namenode 啓動datanode sbin/hadoop-daemon.sh start/stop datanode 啓動secondarynamenode 檢查namenode的web頁面是否能夠訪問 http://192.168.232.202:50070 3 啓動YARN服務 啓動resourcemanager sbin/yarn-daemon.sh start/stop resourcemanager 啓動nodemanager sbin/yarn-daemon.sh start/stop nodemanager 檢查yarn的web頁面:http://192.168.232.201:8088 4 開啓歷史服務 sbin/mr-jobhistory-daemon.sh start/stop historyserver
1八、配置免密登陸,實現羣起羣停
一、生成公鑰和私鑰 ssh-keygen -t rsa 二、分發公鑰祕鑰 rsync -av /home/jinghang/.ssh jinghang@Hadoop04:/home/jinghang/ rsync -av /home/jinghang/.ssh jinghang@Hadoop05:/home/jinghang/ 三、在namenode所在的服務器的hadoop-2.7.2目錄下 編輯 etc/hadoop/slaves 刪掉其餘,添加 Hadoop03 Hadoop04 Hadoop05 四、將slaves文件分發給 運行resourcemanager的服務器 rsync -av slaves jinghang@Hadoop04:/opt/module/hadoop-2.7.2/etc/hadoop/ 五、如今能夠羣起羣停了 一、在配置namenode的服務器(03) start-dfs.sh stop-dfs.sh 二、在配置resourcemanager的服務器(04) start-yarn.sh stop-yarn.sh start-all.sh stop-all.sh
1九、配置集羣時間同步
檢查ntp是否安裝 rpm -qa|grep ntp 查看ntp的狀態:切記正在運行的狀態是不能夠的,須要先中止,否則端口會被佔用 [jinghang@Hadoop03 ~]$ service ntpd status 若是ntp服務開着,要先關閉ntpd服務 關閉 [jinghang@Hadoop03 ~]$ service ntpd stop 關閉開機自啓 [jinghang@Hadoop03 ~]$ sudo chkconfig ntpd off 修改 /etc/ntp.conf 配置文件 進入編輯: [jinghang@Hadoop03 ~]$ sudo vim /etc/ntp.conf 修改1(受權192.168.1.0-192.168.1.255網段上的全部機器能夠從這臺機器上查詢和同步時間) 解開註釋 restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap 修改2(集羣在局域網中,不使用其餘互聯網上的時間) 加上註釋 #server 0.centos.pool.ntp.org iburst #server 1.centos.pool.ntp.org iburst #server 2.centos.pool.ntp.org iburst #server 3.centos.pool.ntp.org iburst 添加3(當該節點丟失網絡鏈接,依然能夠採用本地時間做爲時間服務器爲集羣中的其餘節點提供時間同步) server 127.127.1.0 fudge 127.127.1.0 stratum 10 修改/etc/sysconfig/ntpd 文件 進入編輯: [jinghang@Hadoop03 ~]$ sudo vim /etc/sysconfig/ntpd 增長內容以下(讓硬件時間與系統時間一塊兒同步) SYNC_HWCLOCK=yes 從新啓動ntpd服務 [jinghang@Hadoop03 ~]$ sudo service ntpd start 設置ntpd服務開機啓動 [jinghang@Hadoop03 ~]$ sudo chkconfig ntpd on 其餘服務器配置 在其餘機器配置10分鐘與時間服務器同步一次 root用戶登陸,編寫定時任務: [root@Hadoop04 jinghang]# crontab -e */10 * * * * /usr/sbin/ntpdate Hadoop03 如今修改任意的服務器時間,三臺服務器10分鐘後均可以實現同步時間 若是沒同步成功,開啓一下另外兩臺服務器的ntpd服務 service ntpd start chkconfig ntpd on