spark集群是依赖hadoop的。
hadoop集群搭建教程:
Hadoop集群搭建教程(一)
Hadoop集群搭建教程(二)
Spark集群
集群部署
官网下载:spark官网
这里要注意spark兼容的hadoop版本
接着解压:
tar -zxvf spark-2.4.3-bin-hadoop2.7.tgz
先在你的master节点进行spark的安装和配置,然后直接拷贝到其他节点就可以了。
cd /usr/loca/spark/conf/
vim spark-env.sh
然后,在最下面输入以下内容
export SPARK_DIST_CLASSPATH=$(/usr/loca/hadoop/bin/hadoop classpath)
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
export SPARK_MASTER_IP=192.168.52.100
其实就是告知spark你的hadoop信息,还有你spark集群的master的ip。
cp slaves.template slaves
vim slaves
将你spark集群的所有从节点IP输入即可。
最后,将整个spark文件夹拷贝其他从节点的机器上即可。
scp -r /usr/loca/spark slave1:/usr/loca/
启动集群
cd /usr/loca/spark/sbin/
./start-all.sh
在你master机器上,键入以上命令,启动整个spark集群。
zookeeper集群
集群部署
为什么先说zookeeper呢?因为hbase和kafka都是基于zookeeper来进行资源管理的。
还有一点,一般集群是这样规划的:HBase的master节点不需要安装zookeeper,只需要在HBase的从节点安装zookeeper即可
- 还是同样的套路,首先,去官网下载,然后解压。
zookeeper官网下载
apache-zookeeper-3.5.5-bin.tar.gz
,记得下载bin.tar.gz这种完整的包,不然会缺少一些jar包。
cd zookeeper/conf/
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
在配置文件中输入,你整个集群的信息
dataDir=/var/zookeeper
clientPort=2181
server.1=slave1:2888:3888
server.2=slave2:2888:3888
server.3=slave3:2888:3888
接着,将整个zookeeper复制到其他机器上:
scp -r /usr/local/zookeeper slave1:/usr/local/
根据你的配置文件中的dataDir目录,在每个节点机器都创建一个名为myid的文件,然后添加对应的编号,例如server.1的机器就写入“1”
集群启动
zookeeper的集群没办法统一启动,所以需要在每台机器上键入以下命令:
cd zookeeper/bin/
./zkServer.sh start
./zkServer.sh status
最后一行是集群启动之后,查看你的状态,验证是否启动成功的。像下面有显示你的Mode信息等就表示成功启动了。
HBase集群
HBase介绍
HBase与很多数据库不一样,他的数据存储是按照以下的原理:
集群部署
export HBASE_MANAGES_ZK=flase
export HADOOP_HOME=/usr/local/hadoop
export HBASE_HOME=/usr/local/hbase
export HBASE_CLASSPATH=/usr/local/hadoop/etc/hadoop
第一个配置项是是否使用自带的zookeeper,一般都会使用自己安装的zookeeper。
3. 配置/conf/hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<!-- hbase端口 -->
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<!-- 超时时间 -->
<property>
<name>zookeeper.session.timeout</name>
<value>120000</value>
</property>
<!--防止服务器时间不同步出错 -->
<property>
<name>hbase.master.maxclockskew</name>
<value>150000</value>
</property>
<!-- 集群主机配置 -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>slave1,slave2,slave3 </value>
</property>
<!-- 路径存放 -->
<property>
<name>hbase.tmp.dir</name>
<value>/var/hbase</value>
</property>
<!-- true表示分布式 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- 指定master -->
<property>
<name>hbase.master</name>
<value>master:60000</value>
</property>
</configuration>
- 接着,将hbase复制到其他机器上
scp -r /usr/local/hbase/ slave1: /usr/local/hbase/
集群启动
首先,需要启动zookeeper集群和hdfs集群。
在master机器上,通过bin目录下的./start-hbase.sh
启动整个hbase集群,接着通过jps验证。
在master节点能看到HMaster,在从节点有HRegionServer,就表示集群启动成功了~
集群启动失败
Hbase的HMaster启动成功了,但是从节点HRegionServer一直启动不起来,有时启动成功了,没一会就自动关闭。
问题是整个集群服务器的系统时间不一致,将它们改为一致即可。
修改系统时间:
date -s "YYYY-MM-DD hh:mm:ss"
(上面是日期格式,要换为具体时间)
修改硬件时间为系统时间:
hwclock –systohc
每隔一段时间,系统时间与硬件时间就会进行校验,同步为硬件时间,并且重启之后系统时间也会跟硬件时间同步了。
kafka集群
kafka介绍
kafka集群是没有主从之分的
集群部署
-
官网下载,然后解压
kafka官网
2.11是scala的版本,2.3.0是kafka的版本。 -
配置集群
cd /usr/local/kafka/config/
vim server.properties
每个节点的id不能相同
配置kafka日志文件的位置,可以配置多个,以逗号隔开,可以提升读写效率
zookeeper的集群host,和该节点机器的host
集群启动
我kafka使用的是自己安装的zookeeper集群,所以需要先将zookeeper集群启动。
./kafka-server-start.sh -daemon ../config/server.properties
最后,启动成功的话会有这样的日志打印出来,并且你的光标就无法定位,只能通过另起一个窗口来操作这台虚拟机,但是你不能关闭这个窗口,否则服务就关闭了。
欢迎关注同名公众号:“我就算饿死也不做程序员”。
交个朋友,一起交流,一起学习,一起进步。