Zookeeper3.4+Hadoop2.7+Spark2.3.1+kafka+Redis+Tensorflow服务器配置说明

本文档详细记录了一次三台云服务器上搭建大数据集群的过程,包括Zookeeper、Hadoop HA、Spark、kafka和Redis的安装配置。从云服务器的上网代理设置、磁盘挂载,到集群的主机名、免口令登陆配置,再到各个组件的安装、配置文件修改和验证。最后,还提到了深度学习环境的配置。整个过程耗时较长,但成功搭建了一个完整的集群环境,可供后续大数据处理和深度学习任务使用。
摘要由CSDN通过智能技术生成

2018年9月29日

阅读本文档者需要具备一定的linux、大数据平台架构经验,关键一点你需要一个VPN账号和堡垒机账号(单位管理规定)。

因为产品上线,临时申请了三台云服务器(有点措手不及),从晚上8点开始,和同事(小韩)一块进行服务器配置和应用部署,到第二天凌晨3点多,完全部署完成,并进行了服务测试,一切ok!有点小兴奋,晚上吃了个饭,到凌晨5点才在会议室睡着了(是不是有点贱)。

下面记录一下整个流程,以便自己后续遇到类似情况少犯错误(服务器平台环境不同,还是会遇到新的问题),另外,也希望能够帮助有需要的小伙伴。

整体的内容包括(1)云服务器配置(因为每个人用到服务器及服务器安装的软件、系统配置是不一样的,仅供参考)、(2)集群搭建之前的设置、(3)安装zookeeper、(4)安装hadoop集群、(5)安装spark集群、(6)安装kafka、(7)安装redis、(8)配置深度学习环境。

云服务器配置

搭建过程中可能需要在线安装一些软件,服务器首先要配置上网代理,并进行磁盘挂载操作。

1. 上网代理设置

上网代理设置比较简单,打开终端并执行下述命令即可:

echo -e "export http_proxy=http://ip:port\nexport http_proxy" >> /etc/profile && source /etc/profile

echo -e "export https_proxy=http://ip:port\nexport https_proxy" >> /etc/profile && source /etc/profile

2. 服务器磁盘挂载

新分配的云服务器的数据盘需要手动挂载,过程稍微复杂一些,这里参考运维中心提供的操作说明。

  • 查看数据盘是否需要挂载

在终端输入df -h命令,如果看不到数据盘(在没有分区和格式化数据盘之前,是看不到数据盘),执行fdisk -l命令,如果发现存在/dev/vdb,则表示存在需要挂载的数据盘,否则,表示没有数据盘需要挂载,具体操作如下图所示,显示信息因服务器不同会有所差别,比如vdb是待挂载数据盘名称,也有可能是其他名称。

  • 对数据盘进行分区

运行 fdisk /dev/vdb,对数据盘进行分区操作。根据提示,依次输入 n,p,1,两次回车,wq,分区就开始了。

  • 查看新的分区

运行 fdisk -l 命令,查看新的分区。如果新分区 vdb1 已经创建好,会显示如下面示例中的/dev/vdb1。

  • 对新分区进行格式化

运行 mkfs.ext3 /dev/vdb1,对新分区进行格式化。格式化所需时间取决于数据盘大小。您也可自主决定选用其他文件格式,如 ext4 等。

  • 写入新分区信息

运行 echo /dev/xvdb1 /mnt ext3 defaults 0 0 >> /etc/fstab 写入新分区信息。完成后,可以使用 cat /etc/fstab 命令查看。

  • 挂载新分区

运行 mount /dev/vdb1 /mnt 挂载新分区,然后执行 df -h 查看分区。如果出现数据盘信息,说明挂载成功,可以使用新分区了。

集群搭建之前的准备工作

这一步主要是对服务器做必要的设置,方便后续集群搭建工作。主要包括服务器主机名修改,添加主机名和IP地址映射,设置主机之间的免口令登陆,安装JDK。

首先,确定三台主机的主机名分别为:risbigdata5、risbigdata6、risbigdata7;

其次,在risbigdata5的/mnt目录下,新建software文件夹,用来存在相关软件(本人习惯);

再次,将搭建集群所需要的软件拷贝到risbigdata5的/mnt/software下,接下来开始其它的工作。

1. 设置主机名

查看当前的主机名,在终端输入hostname;

设置新的主机名,在终端输入hostname risbigdata5,主机名被设置为risbigdata5。其它修改主机名的方法如下:

  • 也可以通过编辑network文件,来修改主机名,不过这种情况下需要重启服务器才能生效。具体操作如下:

       vi /etc/systconfig/network

       添加或修改的内容为:HOSTNAME=risbigdata5

  • 通过编辑hosts文件,给127.0.0.1添加主机名来实现。具体操作如下:

       vi /etc/hosts

       添加或修改的内容为:127.0.0.1 localhost localhost.localdomain localhost6 localhost6.localdomain6 risbigdata5

2. 添加主机名和IP地址映射

打开终端,编辑/etc/hosts,添加集群中所有主机的ip和主机名映射(每一台主机的设置相同),本文配置的三台主机的ip和主机名设置如下:

3. 设置主机之间的免口令登陆

  • 关闭selinux防火墙

通过vi /etc/selinux/config打开文件编辑,将SELINUX=enforcing修改为SELINUX=disabled, 重启机器可生效。最好执行一下防火墙停止命令(有不可以预知的原因),systemctl stop firewalld.service --停止firewall。

  • 设置免口令登陆

生成ssh密钥

查看当前账户下是否存在.ssh目录(通过cd ~/.ssh,如果没有,会提示不存在,可通过mkdir创建,也可以不创建,在执行ssh-keygen -t rsa时会自动生成),然后通过ssh-keygen -t rsa为每个主机生成ssh密钥,遇到提示,直接按entor健就可以了。

生成授权文件

进入.ssh目录,cd ~/.ssh,通过密钥文件生成授权文件:cat id_rsa.pub>>authorized_keys,此时可以通过使用ssh无密码登陆本机了。

生成所有主机的授权文件

将三台主机的密钥都加入到授权文件authorized_keys中,然后将授权文件分发到每台主机的.ssh目录下。可以使用远程拷贝命令scp,需要知道主机的密码。

在每台主机上,执行ssh 主机名命令,如果不需要输入密码,则表示ssh无密码登陆设置成功。

4. 安装并配置Java运行环境

将准备好的jdk文件解压到/usr/local目录下,在终端执行tar -zxvf /mnt/software/jdk1.8.0_91.tar.gz命令,然后配置jdk环境变量,通过编辑/etc/profile,在done这一行的下一行添加如下内容:

export JAVA_HOME=/usr/local/jdk1.8.0_91

ClASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/jre/lib/tools.jar

export JAVA_HOME=$PATH:$JAVA_HOME/bin

然后,将profile和jak1.8.0_91文件将拷贝到risbigdata6、risbigdata7对应目录下,通过在终端执行java -version来验证安装配置是否正确,如果能够显示java版本信息表示安装配置正常。

Zookeeper集群搭建

1. 在/mnt下新建program目录,用来放置安装文件(深受windows影响)。

2. 将zookeeper文件解压到/usr/local目录下,在终端执行如下命令:

            tar -zxvf /mnt/software/zookeeper-3.4.10.tar.gz -C /mnt/program

3. 配置zookeeper

  • 通过zoo_sample.cfg新建一个zoo.cfg文件,在终端执行cp zoo_sample.cfg zoo.cfg命令;
  • 修改zoo.cfg文件内容,具体修改如下:

       其中,tickTime表示Zookeeper服务器心跳时间,单位毫秒

                  dataDir表示数据持久化路径,存储内存数据库快照、日志等数据

                  clientPort=2181 连接端口

                  server.1=risbigdata5:2888:3888  集群中第一个节点

                  server.2=risbigdata6:2888:3888  集群中第二个节点

                  server.3=risbigdata7:2888:3888  集群中第三个节点

       server.1、server.2、server.3表示了不同的zookeeper服务器的自身标识,作为集群的一部分,每一台服务器应该知道其他服务器的信息。用户可以从“server.id=host:port:port” 中读取到相关信息。

  • 创建myid文件,设置zookeeper服务器唯一标志

在zkdata目录下,创建myid文件,设置一行内容,指定的是自身的id值。比如,服务器“1”应该在myid文件中写入“1”。这个id必须在集群环境中服务器标识中是唯一的,且大小在1~255之间。本次配置中,三台服务器的myid分别设置为1、2和3。

注意:一定要把防火墙关闭掉。(经常会忽落掉,泪!)

       systemctl stop firewalld.service
       systemctl disable firewalld.service
       systemctl status firewalld.service (查看关闭状态)

4. 配置环境变量

    在/etc/profile文件中添加如下内容:

     export ZOOKEEPER_HOME=/mnt/program/zookeeper3410

     export PATH=$PATH:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf

5. 检查安装配置是否成功

  • 将/etc/profile和/mnt/program/zookeeper3410拷贝到其它两个主机对应目录下。
  • 打开终端,在zookeeper安装目录下,执行下列命令:

  启动zookeeper

./bin/zkServer.sh start

#正常启动将会显示如下信息

ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper3.4.10/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

通过JPS查看zookeeper线程

查看zookeeper状态

./bin/zkServer.sh status

#正常情况下会显示如下信息

ZooKeeper JMX enabled by default

Using config: /mnt/program/zookeeper3410/bin/../conf/zoo.cfg

Mode: follower(三台机器应该有一台是Leader)

停止zookeeper

./bin/zkServer.sh stop

#正常情况下会显示如下信息

ZooKeeper JMX enabled by default

Using config: /usr/local/zookeeper3.4.10/bin/../conf/zoo.cfg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值