#在node-1上
$ bin/hdfs namenode -format
$ sbin/start-dfs.sh --启动HDFS
$ sbin/mr-jobhistory-daemon.sh start historyserver
#在node-2上:
$ sbin/start-yarn.sh --启动YARN
一、 集群规划
01 02 03
HDFS namenode SecondaryNamenode
datanode datanode datanode
historyserver
YARN resourcemanager
nodemanager nodemanager nodemanager
二、 准备系统环境
1、主机名 [root用户]
# vi /etc/sysconfig/network
bigdata01.com –第一台
bigdata02.com –第二台
bigdata03.com –第三台
2、主机名和ip地址的映射 [root用户] [三台服务器]
# vi /etc/hosts
192.168.201.128 bigdata01.com
192.168.201.129 bigdata02.com
192.168.201.130 bigdata03.com
3、关闭iptables和selinux [root用户] [三台服务器]
# service iptables stop --关闭防火墙服务
# chkconfig iptables off --让iptables开启不启动
# vi /etc/sysconfig/selinux
SELINUX=disabled
4、创建普通用户 [root用户] [三台服务器]
# useradd bigdata
# echo 123456 | passwd --stdin bigdata
5、配置静态IP和DNS [root用户] [三台服务器]
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=192.168.201.130
NETMASK=255.255.255.0
GATEWAY=192.168.201.2
DNS1=192.168.201.2
# service network restart
6、把系统启动级别改成“字符模式” [root用户] [后面两台服务器]
安装类型选择“Basic”
# vi /etc/inittab
id:3:initdefault:
7、卸载服务器JDK [root用户] [三台服务器]
# rpm -qa |grep java
# rpm -e --nodeps java软件包
三、 配置NTP时间服务器 [root用户]
** 把01这台服务器配置为时间服务器
** 然后集群内其他服务器都来同步这台服务器的时间
** 目的: 集群内部所有服务器时间一致
1、调整时间(三台服务器)
# date -R --检查当前系统时区
Thu, 25 Aug 2016 14:51:07 +0800
# rm -rf /etc/localtime --如果时区不是+0800
# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
2、bigdata01.com
2.1 同步时间
# service ntpd stop
# ntpdate cn.pool.ntp.org --同步当前服务器时间
25 Aug 14:47:41 ntpdate[10105]: step time server 202.112.29.82 offset -9.341897 sec
## 必须在ntpd进程关闭的情况下才能同步别的ntp服务器时间,反之可能出现问题:“the NTP socket is in use, exiting”错误。
问题分析:
出现该错误的原因是系统ntpd服务器正在运行中,通过 ps aux | grep ntpd或者service ntpd status 查看,会看到ntpd正在运行。
解决方法:
# service ntpd stop
2.2 检查软件包
# rpm -qa | grep ntp --查看ntp软件包是否已安装
ntp-4.2.4p8-3.el6.centos.x86_64
# yum -y install ntp --如果没有安装需要安装ntp
2.3 修改ntp配置文件
# vi /etc/ntp.conf
####去掉下面这行前面的# ,并把网段修改成自己的网段
restrict 192.168.201.0 mask 255.255.255.0 nomodify notrap
####注释掉以下几行
#server 0.centos.pool.ntp.org
#server 1.centos.pool.ntp.org
#server 2.centos.pool.ntp.org
####把下面两行前面的#号去掉,如果没有这两行内容,需要手动添加
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
2.4 重启ntp服务
# service ntpd start
# chkconfig ntpd on
3、bigdata.com [后两台服务器02、03]
3.1 关闭ntpd进程,默认关闭
# service ntpd stop
# chkconfig ntpd off
3.2 去同步第一台服务器时间
# ntpdate bigdata01.com --去第一台服务器同步时间
25 Aug 15:16:47 ntpdate[2092]: adjust time server 192.168.201.128 offset 0.311666 sec
3.3 制定计划任务,周期性同步时间
# crontab -e
*/10 * * * * /usr/sbin/ntpdate master01
[分 时 日 月 星期]
# service crond restart
四、 免密码登陆[bigdata用户] [三台服务器]
bigdata01.com –> bigdata01.com
bigdata02.com
bigdata03.com
bigdata02.com --> bigdata01.com
bigdata02.com
bigdata03.com
bigdata03.com --> bigdata01.com
bigdata02.com
bigdata03.com
在01上: [用普通用户bigdata]
$ ssh-keygen -t rsa --一直回车,生成一对公私钥对
** 在/home/bigdata/.ssh/ 文件夹生成两个秘钥文件,如果生成错误,可以删除重新生成
id_rsa id_rsa.pub
$ ssh-copy-id master --把自己的公钥拷贝给01
$ ssh-copy-id node1
$ ssh-copy-id node2
在02上: [用普通用户bigdata]
$ ssh-keygen -t rsa
$ ssh-copy-id bigdata01.com
$ ssh-copy-id bigdata02.com
$ ssh-copy-id bigdata03.com
在03上: [用普通用户bigdata]
$ ssh-keygen -t rsa
$ ssh-copy-id bigdata01.com
$ ssh-copy-id bigdata02.com
$ ssh-copy-id bigdata03.com
使用ssh hostname校验,使用ssh无秘登录后,一定要退出exit;
五、 安装配置JDK [root用户] [三台服务器]
# mkdir /opt/modules/
# mkdir /opt/softwares/
# chown bigdata:bigdata /opt/modules/
# chown bigdata:bigdata /opt/softwares/
# su - bigdata
$ tar -vzxf /opt/softwares/jdk-7u67-linux-x64.tar.gz -C /opt/modules/
环境变量 [root用户] [三台服务器]
# vi /etc/profile
## JAVA HOME
JAVA_HOME=/opt/modules/jdk1.7.0_67
export PATH=$PATH:$JAVA_HOME/bin
# source /etc/profile
# java -version
[bigdata用户]第一台安装,拷贝jdk目录给后面两台服务器
# mkdir /opt/modules/
# chown bigdata:bigdata /opt/modules/
# su - bigdata
$ scp -r jdk1.7.0_79/ node1:/opt/modules/
$ scp -r jdk1.7.0_79/ node2:/opt/modules/
六、 安装配置Hadoop
[bigdata用户] [01服务器]
$ tar -zvxf /opt/softwares/hadoop-2.5.0-cdh5.3.6.tar.gz -C /opt/modules/
1、修改JAVA_HOME
hadoop-env.sh yarn-env.sh mapred-env.sh
export JAVA_HOME=/opt/modules/jdk1.7.0_67
2、修改core-site.xml
<property>
<name>fs.defaultFSname>
<value>hdfs://master:8020value>
property>
<property>
<name>hadoop.tmp.dirname>
<value>/opt/modules/hadoop-2.5.0-cdh5.3.6/datavalue>
property>
3、修改slaves --声明哪些服务器是datanode
```
bigdata01.com
bigdata02.com
bigdata03.com
4、修改hdfs-site.xml
```
<property>
<name>dfs.replicationname>
<value>3value>
property>
<property>
<name>dfs.namenode.secondary.http-addressname>
<value>slave02:50090value>
property>
<property>
<name>dfs.namenode.http-addressname>
<value>master01:50070value>
property>
<property>
<name>dfs.permissions.enabledname>
<value>falsevalue>
property>
5、修改yarn-site.xml
```
yarn.resourcemanager.hostname
bigdata02.com
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.log-aggregation-enable
true
yarn.log-aggregation.retain-seconds
86400
6、修改mapred-site.xml
mapreduce.framework.name
yarn
mapreduce.jobhistory.address
bigdata01.com:10020
mapreduce.jobhistory.webapp.address
bigdata01.com:19888
7、拷贝hadoop安装目录给其他服务器
$ rm -rf share/doc/ --删除doc帮助文档,减少scp copy文件的时间
$ scp -r hadoop-2.5.0-cdh5.3.6/ node1:/opt/modules/
$ scp -r hadoop-2.5.0-cdh5.3.6/ node2:/opt/modules/
8、启动Hadoop [bigdata用户]
``` 在01上:
$ bin/hdfs namenode -format
$ sbin/start-dfs.sh --启动HDFS
$ sbin/mr-jobhistory-daemon.sh start historyserver
在02上:
$ sbin/start-yarn.sh --启动YARN
master:
3202 JobHistoryServer
2865 NameNode
2985 DataNode
3428 Jps
3311 NodeManager
node1:
2714 Jps
2680 NodeManager
2584 ResourceManager
2470 DataNode
node2:
2569 NodeManager
2686 Jps
2393 DataNode
2487 SecondaryNameNode
三种启动方式
第一种:
$ sbin/hadoop-daemon.sh start namenode
...
第二种:
$ sbin/start-dfs.sh
$ sbin/start-yarn.sh
第三种:
$ sbin/start-all.sh
第四种:shell脚本启动