您的位置:首页 > 产品设计 > UI/UE

生产环境部署Hadoop+Spark+HBase+Hue

2017-08-03 10:21 363 查看
大数据平台生产环境部署指南

@(Hadoop)

总结一下在生产环境部署hadoop+Spark+Hbase+Hue等产品遇到的问题、提高效率的方法和相关的配置。

集群规划

假设现在生产环境的信息如下:

服务器数量:6

操作系统:Centos7

Master节点数:2

Zookeeper节点数:3

Slave节点数:4

划分各个机器的角色如下:

主机名 角色 运行进程

hadoop1 Master Namenode

hadoop2 Master_backup Namenode

hadoop3 Slave、Yarn Datanode、ResourceManager、NodeManager

hadoop4 Slave、Zookeeper Datanode、NodeManager、QuorumPeerMain

hadoop5 Slave、Zookeeper Datanode、NodeManager、QuorumPeerMain

hadoop6 Slave、Zookeeper Datanode、NodeManager、QuorumPeerMain

一些注意事项

尽量使用非root用户

这是为了避免出现一些安全问题,毕竟是生产环境,即使不是也养成习惯。

各个机器的用户名保持一致,需要超级用户权限时加入sudoers里面即可。

数据存放的目录和配置文件分离

一般我们在自己的虚拟机上搭建集群的时候这个可以忽略不计,但是生产机器上需要注意一下。

由于生产机一般配置都很高,几十T的硬盘很常见,但是这些硬盘都是mount上去的,如果我们按照虚拟机上的操作方式来部署的话,集群的所有数据还是会在/目录下,而这个目录肯定是不会大到哪里去,

有可能就出现跑着跑着抛磁盘空间爆满的异常,但是回头一查,90%的资源没有利用到。

所以,将集群存放数据的目录统一配置到空间大的盘上去,而配置文件保持不变,即配置文件和数据目录的分离,避免互相影响,另外在使用rsync进行集群文件同步的时候也比较方便。

规划集群部署的目录

部署之前提前将各个目录分配好,针对性的干活~

这里将Hadoop、hbase、Spark等软件安装在:/usr/local/bigdata目录下

数据存放目录配置在:/data2/bigdata下

这里的/data2为mount上去的硬盘

集群部署

这里使用的各个软件版本号为:

Zookeeper3.4.5

Hadoop2.2.0

HBase0.98

Spark1.4.1

Hive1.2.1

Hue3.7.0

必要准备

1、修改主机名和IP的映射关系

编辑/etc/hosts文件,确保各个机器主机名和IP地址的映射关系

2、防火墙设置

生产环境上防火墙不可能关闭,所以查考下方的端口表让网络管理员开通吧~

P.S. 当然如果你不care的话直接关防火墙很省事,不过不推荐。。

3、JDK的配置

先检查一下生产机上有没有预装了OpenJDK,有的话卸了吧~

rpm -qa | grep OracleJDK

1

把出现的所有包都

rpm -e --nodeps

1

卸载掉。

重新安装OracleJDK,版本没有太高要求,这里使用1.7。

到Oracle官网下载对应版本的JDK之后在安装在/usr/local下面,在~/.bash_profile中配置好环境变量,输入Java -version出现对应信息即可。

4、ssh免密码登陆

这个步骤如果机器比较多的话就会很烦了,现在各个机器上生成ssh密钥:

ssh-keygen -t rsa

1

一路回车保存默认目录:~/.ssh

通过ssh将各个机器的公钥复制到hadoop1的~/.ssh/authorized_keys中,然后发放出去:

#本机的公钥 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys #各个节点的公钥 ssh hadoopN cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys #复制完之后将authorized_keys发放给各个节点 scp ~/.ssh/authorized_keys hadoopN:~/.ssh/authorized_keys

1
2
3
4
5
6

测试:

ssh date hadoop2

1

如果出现权限问题尝试使用:

chmod -R 700 ~/.ssh

1

Zookeeper

将zk上传到/usr/local/bigdata中解压缩

进入conf目录,修改zoo.cfg:

cp zoo_sample.cfg zoo.cfg vim zoo.cfg #修改: dataDir=/data2/bigdata/zookeeper/tmp ticktickTime=20000 #在最后添加: server.1=hadoop4:2888:3888 server.2=hadoop5:2888:3888 server.3=hadoop6:2888:3888

1
2
3
4
5
6
7
8
9
10

ticktickTime默认为2000,2-20倍的minSessionTimeout与maxSessionTimeout

注: tickTime 心跳基本时间单位毫秒,ZK基本上所有的时间都是这个时间的整数倍。

zk的详细配置见:

zookeeper配置文件详解

创建配置的dataDir:

mkdir /data2/bigdata/zookeeper/tmp touch /data2/bigdata/zookeeper/tmp/myid echo 1 > /data2/bigdata/zookeeper/tmp/myid

1
2
3

配置结束,将Zookeeper传到hadoop5、6上,创建dataDir并修改myid为2、3

启动

在hadoop4、5、6上进入zk的bin目录:

./zkServer.sh start ./zkServer.sh status

1
2

正确的结果应该是一个leader,两个follower

Hadoop

上传hadoop包到/usr/local/bigdata并解压缩,进入etc/hadoop目录

hadoop-env.sh

考虑到数据和程序的分离,决定将那些会不断增长的文件都配置到/data2/bigdata/hadoop下,包括:日志文件,pid目录,journal目录。

所以在此文件中需要配置:

JAVA_HOME

HADOOP_PID_DIR

HADOOP_LOG_DIR

HADOOP_CLASSPATH

HADOOP_CLASSPATH根据需要配置其他jar包的路径

yarn-en.sh

YARN_LOG_DIR

YARN_PID_DIR

其他五个核心文件内容如下:

core-site.xml:

<configuration>  <property> <name>fs.defaultFS
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐