安装kylin的艰难历程

Posted wangjm63

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安装kylin的艰难历程相关的知识,希望对你有一定的参考价值。

前言:暑假里老师布置的任务没有完成,来到学校后马不停蹄的安装kylin,结果一路艰难险阻,搞了快两个星期都没有弄好....现在止步于hive阶段卡死...仅将之前的步骤记录下来以便重新安装时更加顺利...

【kylin安装基础】

安装kylin前要在虚拟机上将hadoop、hive、hbase都安装完毕,注意要选择兼容的版本。

【一】虚拟机安装

虚拟机:VMware Workstation 12 

linux系统可有多种选择:

(1)CentOS(Community ENTerprise OS):发行公司:Red Hat ,软件管理是rpm,该系统比较成熟,非常稳定。

(2)Ubuntu:该系统是以桌面为主的linux系统,面向桌面领域,界面友好,适合新手入门,但不支持rpm格式的安装。

(3)Debian:适合服务器的操作系统,非常稳定,占用内存硬盘小。

我选择了CentOS系统,虚拟机安装教程可直接上网百度,安装过程中一定要注意网络的设置!

【二】JDK安装

在虚拟机安装完毕后,hadoop安装前一定要进行JDK的设置(第一次因为设置JDK搞了一下午...)

(1)选择与系统版本匹配的JDK版本,我这里选择的是jdk 1.8.0

1.在浏览器中下载相应的版本:jdk-8u131-linux-x64.tar.gz(可以直接去官网上下载)

2.解压文件到指定的目录中:

 在/usr/local/文件下新建文件夹:mkdir jdk

解压tar.gz的文件:tar -zxvf  路径+文件名 指定的路径;如果是rpm的文件可以用命令:rpm -ivh

若提示权限不够,使用命令:sudo su :切换用户,将普通用户切换为超级用户,但该命令只是可以使用root的权限进行操作,shell环境仍然是普通用户的环境(即文件地址仍是普通用户下的);sudo su -:该命令是彻底切换为超级用户。

解压完成后配置配置环境变量:使用gedit编辑器编辑:gedit  /etc/profile

export JAVA_HOME=/usr/local/jdk/jdk1.8.0_181

export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar(通过该值找到对应的类文件)

export PATH=$PATH:$JAVA_HOME/bin  (通过该值找到bin目录下的exe文件)

配置完成后可通过java -version查看是否配置成功.

【三】hadoop安装模式

(1)单机模式standalone:即独立(本地)运行模式:该模式为默认模式,hadoop完全运行在本地,不使用hdfs,也不加载hadoop的任何守护进程,主要用于开发调试MapReduce程序的应用逻辑。一台linux即可。

(2)伪分布模式:该模式模拟一个小规模的集群,一台linux即可,具有hadoop的所有功能,是完全分布式的一个特例。

(3)完全分布式模式:hadoop守护进程运行在一个集群上,是真正的分布式环境,主要用于生产。

对比hadoop的三种模式后,选择伪分布模式进行安装学习。

【四】SSH免密登录

由于Hadoop节点之间通过SSH通信,为了避免连接过程中人工输入密码,所以要配置SSH的免key登陆,由于本文讲得是伪分布式,因此只需要对本机localhost免key登陆。

使用命令:rpm -qa | grep ssh:该命令可以列出所有已经被安装的名字中包含ssh字符串的rpm包。

可使用命令 yum install openssh-clients 和yum install open ssh-server 安装ssh客户端和server。

安装成功后可使用命令 ssh localhost登录到本机,第一次登录时需要输入密码,然后输入 exit退出,依次执行以下命令

cd ~/.ssh/ 

ssh-keygen -t rsa

cat id_rsa.pub >> authorized_keys #加入授权

chmod 600 ./authorized_keys # 修改文件权限 

此时再输入ssh localhost  就不需要密码了。

【五】hadoop安装

说了这么多,终于要安装正主了~

(1)下载合适版本的hadoop:我选择的是hadoop-2.7.6.tar.gz版本(附下载地址 http://mirrors.cnnic.cn/apache/hadoop/common/ )

仍然使用 tar -zxvf命令解压至/usr/local/路径下,解压后可使用命令mv ./hadoop-2.7.6/ ./hadoop 修改文件名称;

之后使用命令chown -R hadoop:hadoop ./hadoop 修改文件权限

(2)设置环境变量

使用命令: gedit ~/.bashrc  添加下列命令行

export HADOOP_HOME=/usr/local/hadoop

export HADOOP_INSTALL=$HADOOP_HOME

export HADOOP_MAPRED_HOME=$HADOOP_HOME

export HADOOP_COMMON_HOME=$HADOOP_HOME

export HADOOP_HDFS_HOME=$HADOOP_HOME

export YARN_HOME=$HADOOP_HOME

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin 

之前设置java变量的时候是在/etc/profile中设置的,这里是在~/.bashrc中,两者的区别在于:

/etc/profile:设定的变量可以用于任何用户,是系统全局环境变量设置;

~/.bashrc:设定的变量是局部私有的,是对某用户目录下的变量设定;

所以这里也可以直接在/etc/profile中设定。后续启动时不知道为什么总是报java_home未设置,此时在~/.bashrc中将java_home的值改了之后就可以了。

(3)修改配置文件:

[1]:core-site.xml:

<name>fs.defaultFS</name>指定hdfs的主端口namenode要放在哪台机器上

<value>hdfs://local:9000</value>

[2]:hdfs-site.xml:

<name>dfs.replication</name>副本数,伪分布式设置为1即可

<value>1</value>

<name>dfs.namenode.name.dir</name>命名空间和事务在本地文件系统永久存储的路径

<value>file:/usr/local/hadoop/tmp/dfs/name </value>

<name>dfs.datanode.data.dir</name>datanode 在本地系统中存放的路径

<value>file:/usr/local/hadoop/tmp/dfs/data</value>

(4)格式化namenode

配置完成后,要先格式化文件系统:./bin/hdfs namenode -format ,这个过程中可能会出错,如果status为1则有错,可根据错误信息百度解决方案

(5)开启进程

./sbin/start-dfs.sh

(6)验证是否启动成功:

可直接输入:jps查看开启的进程;可在浏览器中输入 http://localhost:50070 查看信息

(7)启动YARN

可启动yarn进行资源管理与任务调度,但伪分布式不开启也行,具体的开启过程可参考该博客https://blog.csdn.net/a5601564/article/details/52997015

至此,hadoop安装完毕,但这只是艰难旅程中的第一步~

【六】hive安装

(1)知识补充:

hive是一种以SQL风格进行任何大小数据分析的工具,它采取类似关系数据库的SQL命令处理hadoop的大数据,是建立在hadoop之上的数据仓库架构。数据库比较偏向于事务性的一些操作,比如增删改查,而数据仓库更侧重于查询。

工作原理:hive通过给用户提供的一系列交互接口,接收到用户的指令(sql),使用自己的driver,结合元数据(metastore)将这些指令翻译成MapReduce,提交到hadoop中执行,将执行结果输出到用户交互接口。

hive与hdfs的对应关系是存放在hive中的一个组件metastore中的,也就是说hive与hadoop结合在一起需要有一个映射的关系,这个映射的关系就是metastore,sql语句的执行在这里面转换为对表的操作,对文件夹的操作,对文件的操作,以及对数据的列的操作都是通过查询metastore实现的。metastore表现为关系数据库,可以是derby,也可以是mysql,所以在安装hive之前需要安装mysql。

(2)安装mysql

[1]:先检查centos自带的mysql版本:mariadb;删除自带版本:yum remove mysql mysql-server

[2]:centos7下的yum(shell前端软件包管理器)源中无mysql-server文件,所以要去官网上进行下载或者直接使用yum命令进行安装:

yum update #更新yum源

rpm -Uvh http://dev.mysql.com/get/版本号 #将mysql添加到yum源中(这里我使用的是mysql-5.7.23版本)

yum install mysql-server  #安装mysql服务器端

yum repolist enabled | grep "mysql.*-community.*" #检查mysql源是否安装成功

[3]:mysql安装成功后,设置开机自启动:chkconfig mysqld on(chkconfig 是管理系统服务,随系统启动而启动,关闭而关闭)

[4]:启动mysql :systemctl start mysqld (systemctl是系统管理服务器指令,将service和chkconfig组合在一起)

[5]:mysql会有初始密码,可查看初始密码:cat /var/log/mysqld.log | grep password

[6]:使用初始密码登录mysql:mysql -u root -p 输入初始密码

[7]:重设密码:set password=password(‘root‘) ;flush privileges;(该语句可刷新mysql的系统权限相关表,不重启mysql服务的情况下直接生效)

[8]:创建数据库hive:create database hive;

[9]:创建用户hive并授予权限:create user ‘hive‘ @ ‘%‘ identified by ‘密码‘; grant all on hive *.*to ‘hive‘ @ ‘%‘ identified by ‘密码‘ ; flush privileges;

[10]:关闭防火墙并设置远程访问:firewall-cmd --state #查看防火墙是否启用  systemctl stop firewalld #关闭防火墙  

                                                    GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘%‘ IDENTIFIED BY ‘密码‘ WITH GRANT OPTION; 

(3)hive安装

[1]:下载hive:http://mirrors.cnnic.cn/apache/hive/  这里我下载的是2.3.3版本的,下载完成后进入到文件夹/home/hadoop/ 下解压至文件夹  tar -zxvf  路径/文件

这里可以使用mv指令修改文件夹的名称,并使用chown -R 

[2]:把mysql驱动放到hive的lib目录下 http://dev.mysql.com/downloads/connector/j/ ,默认情况下是Windows安装包,这里需要选择Platform Independent版本下载zip格式的文件,解压后不是jar格式,而是文件夹,需要将文件夹里的驱动文件复制放到hive的lib目录下。

[3]:配置环境变量:使用gedit编辑:gedit /etc/profile 

export HIVE_HOME=/home/hadoop/hive

export PATH=$PATH:$HIVE_HOME/bin

export CLASSPATH=$CLASSPATH:$HIVE_HOME/bin 

[4]:设置hive-env.sh文件:cp hive-env.sh.template hive-env.sh  #hive的conf文件下没有该文件,直接将hive-env.sh .template 文件复制成hive-env.sh文件

设置hadoop_home和hive_conf_dir两个值:export HADOOP_HOME=/usr/local/hadoop  export HIVE_CONF_DIR=/home/hadoop/hive/conf

[5]:设置hive-site.xml文件:cp hive-default.xml.template hive-site.xml 主要在该配置文件中添加mysql的连接信息:

首先要把原文件中关于jdbc配置的内容注释掉;

技术分享图片

技术分享图片

技术分享图片

技术分享图片

 

然后添加以下信息

        <property>
                <name>javax.jdo.option.ConnectionURL</name>
                <value>jdbc:mysql://localhost:3306/hive?=createDatabaseIfNotExist=true</value>(mysql地址localhost)
        </property>

        <property>
                <name>javax.jdo.option.ConnectionDriverName</name>(mysql的驱动)
                <value>com.mysql.jdbc.Driver</value>
        </property>

        <property>
                <name>javax.jdo.option.ConnectionUserName</name>(用户名)
                <value>root</value>
        </property>

        <property>
                <name>javax.jdo.option.ConnectionPassword</name>(密码)
                <value>123456</value>
        </property>

        <property>
                <name>hive.metastore.schema.verification</name>
                <value>false</value>
        </property>

                  <property>
        <name>hive.metastore.schema.verification</name>
        <value>false</value>
     </property>

 [6]初始化元数据库:cd /home/hadoop/hive/bin   pwd   schematool -dbtype mysql -initSchema

这里经常发生错误,一定要根据错误信息进行百度

[7]启动hive:./hive  启动时也经常报错,这里的一篇博客包含了经常发生的错误及解决方案,可进行参考https://blog.csdn.net/eason_oracle/article/details/52273954

hive启动成功后可进行测试,测试步骤可参考该博客https://www.cnblogs.com/dxxblog/p/8193967.html

至此hive也安装成功~

累觉不爱,好不容易安装好了这两个,结果虚拟机中的linux系统死活连不上网了,各种方法都试过了,可能人品这几天太差了,没有办法先把之前安装的步骤记录下来,可能哪天就又要重装了!




以上是关于安装kylin的艰难历程的主要内容,如果未能解决你的问题,请参考以下文章

顶级项目孵化的故事系列——Kylin的心路历程

我的ubuntu kylin中mentohust的使用历程

关于国产项目Apache Kylin 发展历程及背后的那些事

python+Qt5开发的程序打包成可执行程序的艰难历程

大数据Kylin:Kylin安装使用

理解Kylin中CubeCuboidCube Segment