系统环境
1.设置主机名
vi /etc/sysconfig/network #编辑配置文件
HOSTNAME= cdh1
reboot重启系统
2.、Selinux
由于Selinux是基于角色的访问控制策略设置,由于设置非常繁琐。所以如无必要关闭Selinux即可
root用户下进行操作。
a.设置Selinux。执行如下命令可实时将Selinux修改为permissive状态。
setenforce 0
b.修改配置文件将默认状态修改为disabled。
修改/etc/selinux/config
SELINUX=disabled
3.时间同步服务
root用户下进行操作。
需要修改配置文件/etc/sysconfig/ntpd与/etc/ntp.conf。
1./etc/sysconfig/ntpd
添加SYNC_HWCLOCK=yes设置NTP服务自动同步硬件时间
2./etc/ntp.conf
服务端:
restrict 127.0.0.1
restrict ::1
设定ip地址权限
restrict 192.168.60.0 mask 255.255.255.255 nomodify
#设定区域网内的访问权限,选择网段设置
restrict 192.168.60.0 mask 255.255.255.0 nomodify
#最上层服务器必须跟自己进行校对否则客户端不能进行同步
server 127.127.1.0 perfer
fudge 127.127.1.0 stratum 10
客户端:
server cdh1
全部服务器启动NTP服务,每次修改配置文件也需要重启NTP服务,注:默认情况15分钟后才会与上层NTP服务器进行时间校对。也可能更长。
启动:service ntpd start
关闭:service ntpd stop
重启:service ntpd restart
设置开机启动:chkconfig ntpd on
4.修改最大进程数和句柄数
root用户下进行操作。
由于默认用户的最大进程数和句柄数不满足大数据多文件,参数需要调整大一些。否则会报错。
这里只是设置了hadoop用户和root用户的权限,如果存在其他开发用户,也需要一并添加。
修改/etc/security/limits.conf添加如下
hadoop soft nofile 131072
hadoop hard nofile 131072
修改/etc/security/limits.d/90-nproc.conf添加如下
hadoop soft nproc unlimited
root soft nproc unlimited
hadoop hard nproc unlimited
5.修改主机名文件
root用户下进行操作。
修改/etc/hosts文件
#第一列为IP地址,后面每列皆为ip地址的hostname别名
192.168.60.19 cdh1 hivemysql
##b01的别名hivemysql是作为在hive-site.xml文件的配置,ha比较便利
192.168.60.20 cdh2
192.168.60.21 cdh3
192.168.60.22 cdh4
6.防火墙
防火墙可关闭,也可根据需要设置。
root用户下操作
1.关闭防火墙服务
service iptables stop
2.设置防火墙服务器开机不自动启动
chkconfig iptables off
安装hadoop集群
1.创建用户
安装、运维及监控皆需使用hadoop用户。
root用户下执行如下命令进行添加hadoop用户。
useradd hadoop
passwd hadoop (输入两遍密码)
开发用户可选用其他新建用户
2.配置SSH互信
每个节点执行:
1.切换到hadoop用户:su hadoop
2.在家目录下:cd
3.生成秘钥:ssh-keygen -t rsa ,一路狂按回车键就可以了
最终生成(id_rsa,id_rsa.pub两个文件)
4.分发到cdh1节点:ssh-copy-id cdh1 (ip/主机名)
将cdh1生成authorized_keys scp到每个节点
scp authorized_keys hadoop@cdh2:~
3.每台机器上安装java环境( jdk-7u51-linux-x64.tar)
解压到指定目录,这里我选择的是/opt/beh/soft
tar -zxvf jdk-7u51-linux-x64.tar
mv jdk1.7.0_51 jdk
配置环境变量,
vi ~.bash_profile
source beh
vi beh
export JAVA_HOME=/opt/beh/soft/jdk
export CLASSPATH=.:$JAVA_HOME/lib/:$CLASSPATH
export PATH=$PATH:$JAVA_HOME/bin
source .bash_profile
为每个节点分发jdk
4.zookeeper安装
首先在cdh1上安装Zookeeper,然后复制到其他节点。
1、将本地下载好的zookeeper-3.4.6.tar.gz安装包,上传至cdh1节点下的/opt/beh/soft目录下。
2、解压zookeeper-3.4.6.tar.gz
tar zxvf zookeeper-3.4.6.tar.gz //解压
3、修改zookeeper的名字,删除上传的压缩文件zookeeper-3.4.6.tar.gz
rm -rf zookeeper-3.4.6.tar.gz //删除zookeeper-3.4.6.tar.gz安装包
mv zookeeper-3.4.6 zookeeper //重命名
4、修改Zookeeper中的配置文件。
cd /opt/beh/soft/zookeeper/conf/
cp zoo_sample.cfg zoo.cfg //复制一个zoo.cfg文件
vi zoo.cfg
#添加下面的
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
#数据文件目录与日志目录
dataDir=/data/zookeeper/zkdata
dataLogDir=/data/zookeeper/zkdatalog
# the port at which the clients will connect
clientPort=2181
#server.服务编号=主机名称:Zookeeper不同节点之间同步和通信的端口:选举端口(选举leader)
server.1=cdh1:2888:3888
server.2=cdh2:2888:3888
server.3=cdh3:2888:3888
5.在dataDir目录下新建myid文件:
touch myid
echo 1 > myid
6.分发zookeeper文件,替换myid
7.配置环境变量
vi /home/hadoop/beh
添加
export ZOOKEEPER_HOME=/home/hadoop/app/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
8.使环境变量文件即时生效
source /home/hadoop/.bash_profile
5.ha