前言:暑假里老师布置的任务没有完成,来到学校后马不停蹄的安装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进行资源管理与任务调度,但伪分布式不开启也行,
至此,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 启动时也经常报错,这里的一篇博客包含了经常发生的错误及解决方案,
hive启动成功后可进行测试,
至此hive也安装成功~
累觉不爱,好不容易安装好了这两个,结果虚拟机中的linux系统死活连不上网了,各种方法都试过了,可能人品这几天太差了,没有办法先把之前安装的步骤记录下来,可能哪天就又要重装了!