-
新建虚拟机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