準備:html
1、虛擬機
Windwos:VMware Workstation Projava
安裝:
** 建立空虛擬機
** 安裝虛擬機時的資源規劃
Linux版本:Centos 6.8 或 CentOS 7.2 1611內核
內存:
linux01:
內存:4G
CPU:1個 2core
linux02:
內存:2G
CPU:1個 1core
linux03
內存:2G
CPU:1個 1corenode
** 虛擬機網絡設置
** $ su - root
輸入密碼
** # vi /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=192.168.216.20
NETMASK=255.255.255.0
GATEWAY=192.168.216.2
DNS1=192.168.216.2
DNS2=8.8.8.8
BOOTPROTO=static
ONBOOT=yes
** 重啓網卡服務
CentOS6.8: # service network restart
CentOS7.2: # systemctl restart network.service
** CRT遠程鏈接Linux
** 禁用SELinux
** Selinux:linux安全管理工具
** # vi /etc/sysconfig/selinux
** 編輯改動以下:
SELINUX:disable
** 禁用防火牆
** CentOS 6.8
iptables
# service iptables stop
# chkconfig iptables off
** CentOS 7.2
# systemctl stop firewalld.service
# systemctl disable firewalld.service
** ping外網測試
** visudo
改動以下:
admin ALL=(ALL) NOPASSWD: ALL
** 修改主機名(下節課講解)
CentOS 6.8:
$ sudo vi /etc/sysconfig/network
CentOS 7.2:
$ sudo vi /etc/hostname
** 修改ip與主機名的映射關係
$ sudo vi /etc/hosts
192.168.216.20 linux01
192.168.216.21 linux02
192.168.216.22 linux03
** 安裝JDK
** 解壓
** 配置環境變量
#JAVA_HOME
JAVA_HOME=/home/admin/modules/jdk1.8.0_121
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
** 刪除OpenJDK(CentOS 自帶的JAVA環境)
** source剛纔配置好的系統環境變量文件
$ source /etc/profile
** 驗證
$ java -version
** 克隆
將linux01,克隆出linux02,linux03
** 先關閉虛擬機
** 完成克隆
** 修改後兩臺機器的網絡配置
** 主機名
$ sudo vi /etc/sysconfig/network
** 網卡MAC地址
$ sudo vi /etc/udev/rules.d/70-persistent-net.rules
** IP地址
$ sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
** 重啓機器(注意,克隆出來的兩臺機器都要配置)
** 使用CRT鏈接3臺機器,測試
** 配置SSH無祕鑰訪問(以下操做,須要在3臺機器中分別執行)
** 生成密鑰
$ ssh-keygen -t rsa
** 分發公鑰
$ ssh-copy-id linux01; ssh-copy-id linux02; ssh-copy-id linux03;
** ssh訪問測試
ssh linux01
ssh linux02
ssh linux03
** 關閉後兩臺機器的界面
CentOS6:
$ sudo vi /etc/inittab
CentOS7:
$ sudo systemctl set-default multi-user.target
** 安裝VMTool
** 配置時間服務器
** 檢查時區
$ date -R
** 若是時區不是+0800東八區區時的話,須要手動糾正
$ sudo rm -rf /etc/localtime
$ sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
** 檢查軟件包
若是ntp工具不存在,則須要使用yum安裝
$ sudo rpm -qa | grep ntp
若是不存在則安裝:
$ sudo yum -y install ntp
** 先以網絡時間爲標準,糾正集羣的時間服務器的時間
$ sudo ntpdate pool.ntp.org
** 修改ntp配置文件
$ sudo vi /etc/ntp.conf
修改成以下:
#容許192.168.216.x網段上的全部機器和當前這臺機器進行實踐同步
restrict 192.168.216.0 mask 255.255.255.0 nomodify notraplinux
#當該節點丟失網絡鏈接,依然能夠做爲時間服務器爲集羣其餘節點提供時間同步服務
server 127.127.1.0
fudge 127.127.1.0 stratum 10web
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#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
** 重啓ntp服務
CentOS6:
$ sudo chkconfig ntpd on
$ sudo service ntpd restart
CentOS7:
$ sudo systemctl enable ntpd.service
$ sudo systemctl restart ntpd.service
** 使用從節點,手動同步時間(後面兩臺機器都要操做)
$ sudo ntpdate linux01
** 設置時間同步任務
# crontab -e 編輯時間任務
(尖叫提示:上面的#號表明root用戶,下邊的#號表明shell註釋)
# .------------------------------------------minute(0~59)
# | .----------------------------------------hours(0~23)
# | | .--------------------------------------day of month(1~31)
# | | | .------------------------------------month(1~12)
# | | | | .----------------------------------day of week(0~6)
# | | | | | .--------------------------------command
# | | | | | |
# | | | | | |
*/10 * * * * /usr/sbin/ntpdate linux01
# crontab -l 查看時間任務
** 重啓定時任務
CentOS6:
# service crond restart
CentOS7:
# systemctl restart crond.service
** 虛擬機按期備份,必定要作!!!!!
先關機:
$ sudo shutdown -h now
按照時間新建文件夾,將已經安裝完成的3臺虛擬機,備份到該文件夾中。shell
Hadoop徹底分佈式的部署
** Hadoop介紹
** HDFS:分佈式存儲文件
角色:NameNode和DataNode
** YARN:分佈式資源調度框架(Hadoop2.x以上才引用)
角色:ResourceManager和NodeManager
** MapReduce:分佈式數據處理框架
** 解壓Hadoop
tar -zxf xxx.tar.gz -C xxxx
** Hadoop徹底分佈式配置
** 準備部署的環境:
linux01 linux02 linux03
namenode resourcemanager
datanode datanode datanode
nodemanager nodemanager nodemanager
** 進入到hadoop的etc/hadoop目錄下
** 刪除windows腳本:
$ rm -rf *.cmd
** 重命名文件:
$ mv mapred-site.xml.template mapred-site.xml
** 配置文件:
evn文件:只須要修改JAVA_HOME,個人機器:/home/admin/modules/jdk1.8.0_121
hadoop-env.sh
yarn-env.sh
mapred-env.sh
site文件:
** core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://linux01:8020</value>
</property>windows
<property>
<name>hadoop.tmp.dir</name>
<value>/home/admin/modules/hadoop-2.7.2/hadoop-data</value>
</property>
</configuration>
** hdfs-site.xml
<configuration>
<!-- 指定數據冗餘份數 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!-- 關閉權限檢查-->
<property>
<name>dfs.permissions.enable</name>
<value>false</value>
</property>centos
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>linux03:50090</value>
</property>安全
<property>
<name>dfs.namenode.http-address</name>
<value>linux01:50070</value>
</property>服務器
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
** yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>linux02</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>86400</value>
</property>
<property>
<name>yarn.log.server.url</name>
<value>http://linux01:19888/jobhistory/logs/</value>
</property>
</configuration>
** mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 配置 MapReduce JobHistory Server 地址 ,默認端口10020 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>linux01:10020</value>
</property>
<!-- 配置 MapReduce JobHistory Server web ui 地址, 默認端口19888 --> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>linux01:19888</value> </property> </configuration> slaves文件: ** 分發安裝配置完成的hadoop到linux02以及linux03 $ scp -r hadoop-2.7.2/ linux02:/home/admin/modules/ $ scp -r hadoop-2.7.2/ linux03:/home/admin/modules/ ** 格式化namenode(尖叫提示:在hadoop的根目錄下執行) $ bin/hdfs namenode -format ** 啓動服務 HDFS: $ sbin/start-dfs.sh YARN:(尖叫提示:必定要在ResourceManager所在機器啓動) $ sbin/start-yarn.sh JobHistoryServer: $ sbin/mr-jobhistory-daemon.sh start historyserver