天天看点

大数据Hadoop集群搭建

大数据hadoop集群搭建

cpu型号:intel(r) xeon(r) cpu e5-2620 v4 @ 2.10ghz

cpu核数:16

内存:64gb

版本:centos linux release 7.5.1804 (core)

主机列表:

ip

主机名

192.168.1.101

node1

192.168.1.102

node2

192.168.1.103

node3

192.168.1.104

node4

192.168.1.105

node5

软件安装包路径:/data/tools/

java_home路径:/opt/java # java为软链接,指向jdk的指定版本

hadoop集群路径:/data/bigdata/

组件名

安装包

说明

jdk

jdk-8u162-linux-x64.tar.gz

基础环境

zookeeper

zookeeper-3.4.12.tar.gz

hadoop

hadoop-2.7.6.tar.gz

spark

spark-2.1.2-bin-hadoop2.7.tgz

scala

scala-2.11.12.tgz

hbase

hbase-1.2.6-bin.tar.gz

hive

apache-hive-2.3.3-bin.tar.gz

kylin

apache-kylin-2.3.1-hbase1x-bin.tar.gz

kafka

kafka_2.11-1.1.0.tgz

hue

hue-3.12.0.tgz

flume

apache-flume-1.8.0-bin.tar.gz

注:所有的软链接不可以跨服务器传输,应该单独创建;否则会把软链接所指向的文件或整个目录传过去;

也可以node1生成一套密钥,然后把~/.ssh整个目录分发到其它服务器,共用一个密钥

官方文档

生产环境:两个主节点只装namenode,不装datanode;

新建指定目录

新建相应目录

由于zookeeper没有提供同时启动集群中所有节点的执行脚本,在生产中逐个节点启动稍微有些麻烦,自定义一个脚本用来启动集群中所有节点,如下:

生产中一个hdfs集群会有两个resourcemanager节点,若逐个节点启动稍微有些麻烦,自定义一个脚本用来启动集群中所有resourcemanager节点,如下:

\

quorumpeermain

journalnode

namenode

dfszkfailovercontroller

datanode

nodemanager

resourcemanager

在任意一台namenode机器上通过jps命令查找到namenode的进程号,然后通过kill -9的方式杀掉进程,观察另一个namenode节点是否会从状态standby变成active状态。

然后观察原来是standby状态的namenode机器的zkfc日志,若最后一行出现如下日志,则表示切换成功:

这时再通过命令启动被kill掉的namenode进程

对应进程的zkfc最后一行日志如下:

可以在两台namenode机器之间来回kill掉namenode进程以检查hdfs的ha配置!

scala运行在jvm虚拟机,需要配置jdk;

如果以上两步没问题,表示scala已安装和配置成功。

说明:<code>spark.executorenv.pythonhashseed=0</code>配置:

如果你使用的是python3+,并且在spark集群上使用distinct(),reducebykey(),和join()这几个函数时,就会触发下面的异常:

python创建遍历对象对象时会对每个对象进行随机哈希创建索引。然而在一个集群上,每个节点计算时对某一个变量创建的索引值不同,会导致数据索引冲突。因此需要设置pythonhashseed来固定随机种子,保证索引一致。参见:

spark集群配置(4):其他填坑杂项

master

worker

historyserver

master和hadoop的namenode进程运行在同一台主机上,与datanode通信

以读写hdfs的数据。regionserver跟hadoop的datanode运行在同一台主机上。

参考:

hbase 数据库简介安装与常用命令的使用

hmaster

hregionserver

hbase web页面http://192.168.1.101:16030

hbase master url:http://192.168.1.101:60010

kafka实战最佳经验

kafka并没有提供同时启动集群中所有节点的执行脚本,在生产中一个kafka集群往往会有多个节点,若逐个节点启动稍微有些麻烦,自定义一个脚本用来启动集群中所有节点,如下:

创建主题:(指明要连接的zookeeper)例如主题名称为:testtopic

查看主题:

任选一台,创建生产者:(kafka集群用户)

另一台,创建消费者

生产者输入一些数据,看消费者是否显示生产者所输入的数据。

kafka也同样没有提供关闭集群操作的脚本。这里我提供一个用来关闭kafka集群的脚本(可以放在任意一条节点上):

参考:https://blog.51cto.com/moerjinrong/2092614

注意:由于html格式问题,上面jdbc的url中的&amp;改为照片中红色下划线的符号

大数据Hadoop集群搭建

runjar

# 启动hive时才有

安装kylin前确保:hadoop 2.4+、hbase 0.13+、hive 0.98+,1.*已经安装并启动。

hive需要启动metastore和hiveserver2。

apache kylin同样可以使用集群部署,但使用集群部署并不能增加计算速度

因为计算过程使用mapreduce引擎,与kylin自身无关,而是主要为查询提供负载均衡。本次采用单节点。

将hive安装目录lib目录中的所有jar包复制到kylin安装目录下的lib目录中。

如果不关闭,会报如下错误

进入bin目录下分别执行

在kylin安装根目录下执行

到目前为止所启动的进程:

# kylin进程

服务启动后,浏览器访问地址:http://ip:7070/kylin/

用户名:admin

密码:kylin

1.配置数据源

(1)依次选择 model -&gt; data source -&gt; load hive table

大数据Hadoop集群搭建

(2)输入 hive 中数据库的表名格式为: 数据库名.数据表名

如:db_hivetest.student ,然后点击sync即可。

大数据Hadoop集群搭建

添加成功后,效果如下图:

大数据Hadoop集群搭建

1、界面无法同步hive表元数据

解决方法,在kylin安装目录下:

执行命令:<code>vim ./bin/kylin.sh</code> 需要对此脚本做以下修改:

可以看到一个leader,其它为follower就可以*

没有启动的去相应服务器下单独启动

继续阅读