(# 为root账户下操作,$ 为hadoop账户下操作)
【 比较好用的工具:ambari https://blog.csdn.net/cy309173854/article/details/58039594 】
环境准备
安装虚拟机VMware
使用centOS镜像
创建三个linux虚拟机:hadoop01,hadoop02,hadoop03
(hadoop02、hadoop03可在hadoop01执行完一些基本配置之后,克隆hadoop01的快照得来)
修改主机名
# vi /etc/sysconfig/network
修改网卡地址
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
// 重启网络服务
# service network restart添加内网域名映射
// 修改hosts文件
# vi /etc/hosts
创建hadoop用户
# useradd hadoop
// 修改hadoop这个用户的密码
# passwd hadoop
设置系统的默认启动级别
# vi /etc/inittab
3 是多用户模式,并且不启动图形界面
配置 hadoop 用户 sudoer 权限
# vi /etc/sudoers
找到 root ALL=(ALL) ALL 这一行,然后在他下面添加一行:hadoop ALL=(ALL) ALL
防火墙设置
查看防火墙状态:service iptables status
关闭防火墙:service iptables stop
开启防火墙:service iptables start
重启防火墙:service iptables restart
关闭防火墙开机启动:chkconfig iptables off
开启防火墙开机启动:chkconfig iptables on
安装jdk
上传 jdk-7u80-linux-x64.tar.gz(本人使用secureCRT,配置连接虚拟机进行操作)
// 解压至 /usr/local 目录
# tar –zxvf jdk-7u80-linux-x64.tar.gz –C /usr/local
// 修改配置文件
# vi /etc/profile
在最后加入两行:
export JAVA_HOME=/usr/local/jdk1.8.0_73export PATH=$PATH:$JAVA_HOME/bin
// 重新加载配置文件
# source /etc/profile
// 检查是否安装成功
# java–version
mysql安装
// 检查以前是否装过 Mysql
# rpm -qa | grep -i mysql
// 发现有的话就都卸载
# rpm -e --nodeps mysql-libs-5.1.73-5.el6_6.x86_64
// 删除老版本 mysql 的开发头文件和库
# rm -rf /usr/lib/mysql
# rm -rf /usr/include/mysql
// 注意:卸载后/var/lib/mysql 中的数据及/etc/my.cnf 不会删除,确定没用后就手工删除
# rm -rf /etc/my.cnf
# rm-rf /var/lib/mysq
// 上传压缩包
// 解压至 /root/apps
# tar -zxvf mysql-5.6.26-1.linux_glibc2.5.x86_64.rpm-bundle.tar –C /root/apps
// 进入到相应目录
# cd /root/apps
// 安装server
# rpm-ivh MySQL-server-5.6.26-1.linux_glibc2.5.x86_64.rpm
// 安装客户端
# rmp -ivh MySQL-client-5.6.26-1.linux_glibc2.5.x86_64.rpm
// 启动 mysql
# service mysql start
(初始密码在 /root/.mysql_secret 这个文件里)
// 登录之后修改密码
mysql>set PASSWORD=PASSWORD('root')
// 退出登陆验证,看是否改密码成功
mysql>exit
# mysql -uroot -p
// 增加远程登录权限
mysql>GRANT ALL PRIVILEGES ON *.* TO'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES
zookeeper集群搭建
// 上传安装包
// 解压至相应目录
$ tar -zxvf zookeeper-3.4.10.tar.gz -C apps/
// 修改配置文件
$ mv apps/zookeeper-3.4.10/conf/zoo_sample.cfg apps/zookeeper-3.4.10/conf/zoo.cfg
$ vi apps/zookeeper-3.4.10/conf/zoo.cfg
// 如果有第四台机器,并且想配置 observer
增加 server.4=hadoop04:2888:3888:observer
// 分发给其它节点
$ scp -r zookeeper-3.4.10/ root@hadoop02:$PWD
$ scp-r zookeeper-3.4.10/ root@hadoop03:$PWD// 在dataDir=/home/hadoop/data/zkdata中建立服务器id文件
// 例如server.1=hadoop01:2888:3888当中的 id就是 1
// 在hadoop01 /home/hadoop/data/zkdata 中执行
$ echo 1 > myid
// 在hadoop02 /home/hadoop/data/zkdata 中执行
$ echo 2 > myid
// 在hadoop03 /home/hadoop/data/zkdata 中执行
$ echo 3 > myid
参数说明:
tickTime
基本事件单元,以毫秒为单位。它用来控制心跳和超时,默认情况下最小的会话超时时间为两倍的 tickTime。
initLimit
此配置表示,允许 follower (相对于 leader 而言的“客户端”)连接并同步到 leader 的初始化连接时间,它以 tickTime 的倍数来表示。当超过设置倍数的 tickTime 时间,则连接失败。
syncLimit
此配置表示, leader 与 follower 之间发送消息,请求和应答时间长度。如果 follower 在设置的时间内不能与 leader 进行通信,那么此 follower 将被丢弃。
dataDir
存储内存中数据库快照的位置
注意:如果需要保留日志信息,那么可以考虑配置 dataLogDir 的位置,这个位置就是日志的存储目录。通常情况下是分开存储的。并且应该谨慎地选择日志存放的位置,使用专用的日志存储设备能够大大地提高系统的性能,如果将日志存储在比较繁忙的存储设备上,那么将会在很大程度上影响系统的性能。
clientPort
监听客户端连接的端口,默认是 2181,最好不要修改。
最后再增加 zookeeper 的服务器列表信息,格式为:
server.id= 主机名: 心跳端口: 选举端口
例子:server.1=hadoop01:2888:3888
其中 id 虽然可以随便写,但是有两点要求,第一不能重复,第二范围是 1-255,并且对应服务器列表上还得存在对应的 id 文件,具体看上面操作。
// 配置环境变量
$ vi ~/.bash_profile
// 增加两行
export ZOOKEEPER_HOME=/home/hadoop/apps/zookeeper-3.4.10
export PATH=$PATH:$ZOOKEEPER/bin
// 重新加载
$ source ~/.bash_profile
// 启动命令
$ zkServer.shstart
hadoop集群环境安装
服务器同步时间
方法一:
// 查看时间
# date