0. 本文说明

  1. 本文主要撰写安装Spark过程中linux系统需要做的一些前置工作及系统配置
  2. 本文所有步骤均在以下环境实施:

    • Centos 6.5
  3. 参考文献:

    1. 阿里yum源
    2. java安装
    3. NTP配置
    4. NTP详解(参考)

0. 基本配置

0.1 修改主机名

修改主机名的过程一般有两种,永久修改主机名和临时修改主机名,我们选择永久修改主机名

1.临时修改主机名

hostname #显示主机名

hostname spark001 #将主机名临时设定成spark0001

2.永久修改主机名

修改/etc/sysconfig/network中的hostname。vim /etc/sysconfig/network

HOSTNAME=spark001 #将主机名永久设定为spark001

0.2 关闭防火墙和SELINUX

1.关闭防火墙

service iptables stop #临时关闭  
chkconfig iptables off #重启后生效

2.关闭SELINUX

修改vim /etc/selinux/config中的

SELINUX=disabled #重启后永久生效

0.3 SSH免密登录配置

每台机子都要配置

1.修改hosts文件,vim /etc/hosts,加入如下内容:

192.168.1.101   cdh1
192.168.1.102   cdh2
192.168.1.103   cdh3

2.在每台机子上运行免密码SSH文件

0.4 配置交换设置及透明大页面压缩问题

每台机子都要配置

echo 0 > /proc/sys/vm/swappiness
echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

1. yum源的配置

配置yum源的目的在于能够快速安装和下载所需要的工具,感谢阿里的yum源。

1.备份原yum源

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup.`date +%Y%m%d.%H%M%S`

2.下载阿里的yum源配置文件

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

或者

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

3.运行yum makecache更新yum缓存

2. JAVA环境的安装与配置

网上关于CDH使用JAVA包有以下几种说法:

  1. 不需要卸载系统自带的OPEN JDK,直接安装新的oracle的JDK即可
  2. 需要卸载OPEN JDK,并且是先安装新的oracle的JDK,后删除OPEN JDK
  3. 需要卸载OPEN JDK,先删除OPEN JDK,后安装新的oracle的JDK

2.1 卸载OPEN JDK

1.输入java -version观察目前已有的JDK情况
java安装情况

2.java -version只能看到目前环境配置的情况,因此使用rpm -qa | grep java 命令来查看相关的安装包安装情况,从下图中我们可以看出,系统里面不止安装了1.7而且1.6也存在。
图片描述

3.通过命令yum -y remove命令依次卸载OPEN JDK,例如:

yum -y remove java-1.6.0-openjdk-devel-1.6.0.0-1.66.1.13.0.el6.x86_64

但是我们从以下的卸载结果来看,在删除OPEN JDK的过程中也删除了很多依赖包,可能会导致日后启动其他应用的时候出现问题,所以卸载的时候请务必谨慎

图片描述

2.2 安装JDK 1.8

1.先从官网或者本文开头给予的下载地址下载java安装tar包(一定要选64位的)

2.将安装包放到固定目录下,我比较喜欢在/opt/software目录下,并用过tar命令解压(附赠 tar命令教学)。

tar -zxvf jdk-8u144-linux-x64.tar.gz

3.配置环境文件

解压完之后就要用vim /etc/profile配置全局环境,并添加以下内容,

JAVA_HOME=/opt/software/jdk1.8.0_144 #java home的地址

JRE_HOME=/opt/software/jdk1.8.0_144/jre #jre的地址

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

PATH=$JAVA_HOME/bin:$PATH

export PATH JAVA_HOME CLASSPATH

然后用命令source /etc/profile让配置文件立刻生效,并通过以下命令查看配置是否正确

echo $JAVA_HOME
echo $CLASSPATH
echo $PATH

4.用java -version确认配置是否完成。

3. 配置NTP服务器

3.1 基本命令

rpm -q ntp #查询ntp是否安装

yum install ntp #yum安装ntp

chkconfig ntpd on #设置NTP开机自启动

chkconfig --list ntpd #查看是否设置成功 
#成功的话为:ntpd      0:off    1:off    2:on    3:on    4:on    5:on    6:off

NTP结构

由于是实验集群,故只有四台机器,主同步节点是spark001,我先手动设定了时间,接着让主机自同步,然后让集群中的其他服务器时间和主节点同步。集群如下:

  • NTP主机:10.6.2.201(spark001)
  • NTP同步机器:

    • 10.6.2.224(spark002)
    • 10.6.2.214(spark003)
    • 10.6.2.213(spark004)

3.2 主NTP节点配置

1.首先手动调整本地时间(默认是内网环境,无法连通外网),然后通过hwclock命令写入硬件时钟。hwclock命令参考 date命令参考

date -s "20170913 14:38:00"  #设定本地时间
hwclock -w #写入硬件时钟,-r表示读取硬件时钟

2.修改NTP配置文件,vim /etc/ntp.conf,并添加如下内容:


#server 10.6.2.201 #要同步的上级服务器地址,因为我这个是内网,我就注销了。如果相同步外网服务器就填外网的IP。
server 127.127.1.0 #设定本地始终为自同步源,当外界联系不上时候就自同步
fudge 127.127.1.0 stratum 10

#如果是封闭集群,屏蔽掉默认server:
#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

restrict 10.6.2.0 mask 255.255.255.0 nomodify notrap
#这条命令的含义是只允许。10.6.2.0网段的所有机器查询服务器时间,但不能修改和trap远程时间登录

其中restrict参数设定方式为:

restrict [address] mask [netmask_ip] [parameter]

其中parameter的参数主要有:
ignore:拒绝所有类型的ntp连接
nomodify:客户端不能使用ntpc与ntpq两支程式来修改服务器的时间参数
noquery:客户端不能使用ntpq、ntpc等指令来查询服务器时间,等于不提供ntp的网络校时
notrap:不提供trap这个远程时间登录的功能
notrust:拒绝没有认证的客户端
nopeer:不与其他同一层的ntp服务器进行时间同步

3.完成过后,通过以下命令,启动并查看结果。

service ntpd start #启动ntp服务,或者 service ntpd restart 重启服务
ntpq -p #查看对时服务器状态
ntpstat #查看同步状态

3.3 同步节点配置

1.设置NTP服务开机自动,并同步主节点

chkconfig ntpd on #设置NTP开机自启动

chkconfig --list ntpd #查看是否设置成功 
#成功的话为:ntpd      0:off    1:off    2:on    3:on    4:on    5:on    6:off

ntpdate -u 10.6.2.201 #同步命令,后面的IP为上级NTP时钟的IP

2.编辑NTP配置文件,vim /etc/ntp.conf

server 10.6.2.201 #添加主节点IP
 
restrict 10.6.2.201 nomodify notrap noquery #只允许和主节点连接
 
server  127.127.1.0     # 配置本地时钟
fudge   127.127.1.0 stratum 10

3.完成过后,通过以下命令,启动并查看结果。

service ntpd start #启动ntp服务,或者 service ntpd restart 重启服务
ntpq -p #查看对时服务器状态
ntpstat #查看同步状态

4.配置多台从节点时,可以考虑使用SCP命令来复制配置文件,从而实现快速配置的目的。SCP命令详解

ntpdate -u 10.6.2.201

scp 10.6.2.224:/etc/ntp.conf /etc/ntp.conf
#从spark002这个从节点复制配置文件到本地,不要错复制为主节点了,那就悲剧了。


service ntpd start

4.安装与配置Mysql

我这里的Mysql是用的阿里的源安装的Mysql,版本号5.1.73

4.1 Mysql安装

yum install mysql-server

4.2 配置Mysql

4.2.1 启动mysql服务和设置mysql开机启动

service mysqld start #启动mysql服务

chkconfig mysqld on #设置开机启动

4.2.1 登录Mysql及设置Mysql密码

使用如下代码登录mysql:

mysql -uroot

Mysql中的代码

mysql> use mysql;

mysql> UPDATE user SET Password = PASSWORD('123456') WHERE user = 'root'; #给所有情况下root登录时设置密码123456

mysql> FLUSH PRIVILEGES; #刷新权限

提前创建数据库并授权

# hive
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
# amon
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
# hue
create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
# oozie
create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
#reports
create database reports DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
#授权用户在这些数据库的访问权限
Grant all privileges on *.* to 'root'@'spark001' with grant option;
Flush privileges;

MrZONT
741 声望92 粉丝