设为首页 加入收藏

TOP

Kylin实践(一)--Hadoop环境搭建
2019-01-21 12:38:17 】 浏览:55
Tags:Kylin 实践 --Hadoop 环境 搭建

做了半年kylin,基本停留在操作Web UI的层面,当然,期间也遇到一些坑,但是大多是社区好心人帮忙解决的,尤其跟环境相关的,一出问题,很长时间都解决不了,现在项目的kylin服务已经完成并且对外提供服务了,有了一些基础,想更深入一点学习使用kylin,学习需要理论结合实践,生产环境肯定不能随便动了,那就自己动手搭一个环境吧。

三台Centos7的虚拟机,内存8G,8核CUP,200G硬盘。

10.0.86.93 master

10.0.86.94 slave1

10.0.86.95 slave2

将以上内容增加到三台机器的/etc/hosts文件中。


以下为版本信息:

jdk:1.8
hadoop:2.7.6
hive:1.2.2
mysql:5.7.21
zookeeper:3.4.10
hbase:1.2.5
kylin:2.1

我对环境基本是一无所知的,之前的环境都是同事搭的,我只大概知道,kylin依赖hive和hbase(源数据表存储在hive中,cube信息及数据存储在HBASE中),于是大概知道需要安装hadoop、hive以及HBASE,在安装过程中,发现hive依赖mysql,HBASE依赖zookeeper,这才理清所有的安装步骤。

依次安装,hadoop、mysql、hive、zookeeper、hbase、kylin。

一、Hadoop安装

本次安装参考https://www.linuxidc.com/Linux/2015-11/124800.htm

1、基础环境

在安装Hadoop之前,需要配置ssh免密码登录以及安装jdk。

1.1 ssh免密登录

hadoop需要通过ssh登录到各个节点进行操作,因此需要配置免密登录,我用的是root账户,在root账户下生成各台机器的公钥,然后再将公钥合并到authorized_keys,分发到各台机器。

(1)CentOS默认没有启动ssh无密登录,去掉/etc/ssh/sshd_config其中2行的注释,每台服务器都要设置,
#RSAAuthentication yes
#PubkeyAuthentication yes
(2)输入命令,ssh-keygen -t rsa,生成key,都不输入密码,一直回车,/root就会生成.ssh文件夹,每台服务器都要设置,
(3)合并公钥到authorized_keys文件,在Master服务器,进入/root/.ssh目录,通过SSH命令合并,
cat id_rsa.pub>> authorized_keys
ssh root@192.168.0.183 cat ~/.ssh/id_rsa.pub>> authorized_keys
ssh root@192.168.0.184 cat ~/.ssh/id_rsa.pub>> authorized_keys
(4)把Master服务器的authorized_keys、known_hosts复制到Slave服务器的/root/.ssh目录

(5)完成,ssh root@10.0.86.94、ssh root@10.0.86.95就不需要输入密码了.

1.2 jdk安装

jdk安装也遇到了点问题,一开始安装好之后,用java -version看没有问题,以为安装成功了,但实际上出来的是openjdk的版本信息,如下图所示:


当时没有注意,导致hadoop安装好之后,提示找不到java的路径。这是因为对于centos系统,如果不是最小化安装,会默认安装openjdk,因此在安装jdk之前需要先将openjdk删除,命令为rpm -e --nodeps `rpm -qa | grep java`,centos安装jdk具体请参考https://www.cnblogs.com/panzhaohui/p/6306675.html。

2、安装Hadoop2.7.6,只在Master服务器解压,再复制到Slave服务器
(1)下载“hadoop-2.7.6.tar.gz”,放到/home/hadoop目录下
(2)解压,输入命令,tar -xzvf hadoop-2.7.6.tar.gz

(3)在/home/hadoop目录下创建数据存放的文件夹,tmp、hdfs、hdfs/data、hdfs/name

(4)配置hadoop环境变量:

vim /etc/profile,加入如下内容:


然后,source /etc/profile使配置生效。

输入hadoop,提示如下说明配置成功了。




3、配置/home/hadoop/hadoop-2.7.6/etc/hadoop目录下的core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/hadoop/tmp</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131702</value>
</property>
</configuration>

4、配置/home/hadoop/hadoop-2.7.6/etc/hadoop目录下的hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hadoop/hdfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>

5、配置/home/hadoop/hadoop-2.7.6/etc/hadoop目录下的mapred-site.xml,
复制template,生成xml,命令:cp mapred-site.xml.template mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>

6、配置/home/hadoop/hadoop-2.7.6/etc/hadoop目录下的yarn-site.xml
<configuration>


<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>2048</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>2048</value>
</property>
</configuration>

7、配置/home/hadoop/hadoop-2.7.6/etc/hadoop目录下hadoop-env.sh、yarn-env.sh的JAVA_HOME,不设置的话,启动不了(这一点我没有验证,我觉得应该可以不配,因为设置了JAVA_HOME),

export JAVA_HOME=/home/java/jdk1.8.0_171

8、配置/home/hadoop/hadoop-2.7.6/etc/hadoop目录下的slaves,删除默认的localhost,增加2个从节点,
10.0.86.94
10.0.86.95

9、将配置好的Hadoop复制到各个节点对应位置上,通过scp传送,
scp -r /home/hadoop root@slave1:/home/
scp -r /home/hadoop root@slave2:/home/

10、在Master服务器启动hadoop,从节点会自动启动,进入/home/hadoop/hadoop-2.7.6目录

(1)初始化,输入命令,bin/hdfs namenode -format,成功后部分消息显示如下:


(2)全部启动sbin/start-all.sh,也可以分开sbin/start-dfs.sh、sbin/start-yarn.sh
(3)停止的话,输入命令,sbin/stop-all.sh
(4)输入命令,jps,可以看到相关信息

11、Web访问,要先开放端口或者直接关闭防火墙
(1)输入命令,systemctl stop firewalld.service
(2)浏览器打开http://10.0.86.93:8088/
(3)浏览器打开http://10.0.86.93:50070/


二、MySQL安装

安装mysql请参考https://blog.csdn.net/jssg_tzw/article/details/68944693,步骤详细。

这里主要记录遇到的问题

1、安装完成之后,找不到安装目录,其实参考链接中写了安装目录,我当时以为那是自定义的目录,其实不是,rpm安装mysql后,默认的目录为/var/lib/mysql,有关linux rpm 安装后 mysql 默认安装目录等信息请参考https://www.cnblogs.com/nucdy/p/7727143.html。

2、在安装完成之后,在root路径下找不到.mysql_secret文件。查了很久,发现初始的密码不一定是在 .mysql_secret文件中,至少在本次实践中,不存在

.mysql_secret文件。而是在/var/log/mysqld.log中。mysql安装完成之后,在/var/log/mysqld.log文件中给root用户生成了一个默认密码。通过下面的方式找到root默认密码,然后登录mysql进行修改:


shell> grep 'temporary password' /var/log/mysqld.lo
shell> mysql -uroot -p

输入密码登入后修密码

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
或者
mysql> set password for 'root'@'localhost'=password('MyNewPass4!');


三、Hive安装

这个链接https://blog.csdn.net/jssg_tzw/article/details/72898635写的非常详细,我基本就是照着操作的。

只有2.3.2中,有点区别

2.3.2修改$HIVE_HOME/conf/hive-site.xml中的临时目录

配置文件hive-site.xml:

  • 将文件中的所有 ${system:java.io.tmpdir}替换成/usr/local/hive/tmp
  • 将文件中所有的${system:user.name}替换为root(这个我没有替换,而是把这一项都删了,集群经测试没有问题)

期间遇到几个问题:

1、schematool -initSchema -dbType mysql初始化报错:

Duplicate entry ‘1’ for key ‘PRIMARY’
原因:因为我之前手动在mysql数据库当中建立了hive数据库,
主键是在同一张表中必须是唯一的,如果在进行数据插入的时候指定的主键与表中已有 的数据重复的话则会导致违反主键约束的异常。

解决方案:清空数据库
2、schematool -initSchema -dbType mysql过程报错:Fri Jun 01 17:25:33 CST 2018 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
根据告警提示有两种解决方法:
其中一种方法是设置useSSL=false
这里有个坑就是hive的配置文件是.XML格式,而在xml文件中&amp;才表示&,所以正确的做法是在Hive的配置文件中,如hive-site.xml进行如下设置

3.开放端口号报错
FirewallD is not running
原因:防火墙关闭了,打开就可以
关闭命令:systemctl stop firewalld.service
打开命令:systemctl start firewalld.service

四、Zookeeper安装

https://blog.csdn.net/pucao_cug/article/details/72228973

照着网页一步一步操作就行。

遇到问题:

[root@Centos7 bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/zookeeper-3.4.10/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.
原因是防火墙打开了,关闭防火墙即可。

五、Hbase安装

https://blog.csdn.net/pucao_cug/article/details/72229223

hbase安装很顺利,照着网页操作没有遇到问题。

六、Kylin安装

参照官网即可。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Hadoop Ecosystem(Hadoop生态环.. 下一篇hadoop主节点(NameNode)备份策..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目