阿里云ECS服务器部署HADOOP集群:Hive本地模式的安装
Posted 522hh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阿里云ECS服务器部署HADOOP集群:Hive本地模式的安装相关的知识,希望对你有一定的参考价值。
本篇将在阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建的基础上搭建。
本地模式需要采用mysql数据库存储数据。
1 环境介绍
- 一台阿里云ECS服务器:master
- 操作系统:CentOS 7.3
- Hadoop:hadoop-2.7.3.tar.gz
- Java: jdk-8u77-linux-x64.tar.gz
- Hive:apache-hive-2.3.6-bin.tar.gz
- Mysql: Mysql 5.7
- MySQL Connector-J:mysql-connector-java-5.1.47.tar.gz
2 安装 Mysql
3 Hive 下载
下载 apache-hive-2.3.6-bin.tar.gz 并在合适的位置解压缩,笔者这里解压缩的路径为:
/usr/local
将解压得到的目录改名为 hive
1 cd /usr/local 2 mv apache-hive-2.3.6-bin/ hive/
4 添加 Hive 环境变量
在"/etc/profile"中添加内容:
1 export HIVE_HOME=/usr/local/hive 2 export PATH=$PATH:$HIVE_HOME/bin
重新加载环境:
source /etc/profile
5 修改 Hive 配置信息
1 cd $HIVE_HOME/conf 2 # 新建 hive-site.xml 文件, 或者复制已有的 hive-default.xml.templat 模版 3 vim hive-site.xml
配置可参考如下代码:
1 <?xml version="1.0" encoding="UTF-8" standalone="no"?> 2 <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 3 <configuration> 4 <property> 5 <name>javax.jdo.option.ConnectionURL</name> 6 <value>jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true</value> 7 <description>JDBC connect string for a JDBC metastore</description> 8 </property> 9 <property> 10 <name>javax.jdo.option.ConnectionDriverName</name> 11 <value>com.mysql.jdbc.Driver</value> 12 <description>Driver class name for a JDBC metastore</description> 13 </property> 14 <property> 15 <name>javax.jdo.option.ConnectionUserName</name> 16 <value>root</value> 17 <description>username to use against metastore database</description> 18 </property> 19 <property> 20 <name>javax.jdo.option.ConnectionPassword</name> 21 <value>password</value> 22 <description>password to use against metastore database</description> 23 </property> 24 </configuration>
6 配置Mysql
6.1 为 Hive 添加 mysql 连接器
下载 mysql-connector-java-5.1.47.tar.gz 并解压至 $HIVE_HOME/lib 下
tar -zxvf mysql-connector-java-5.1.47.tar.gz -C $HIVE_HOME/lib
6.2 启动并登陆 mysql shell
1 service mysql start 2 mysql -uroot -p
6.3 配置 mysql 允许 hive 接入:
1 # 将所有数据库的所有表的所有权限赋给 root 用户 2 grant all on *.* to root@localhost; 3 # 刷新mysql系统权限关系表 4 flush privileges;
7 启动 Hive
启动 hive 之前,确保已启动 HDFS 和 YARN。
1 start-all.sh 2 hive
在启动Hive时,有可能会出现Hive metastore database is not initialized的错误,这里给出解决方案。
解决Hive启动,Hive metastore database is not initialized的错误。出错原因:以前曾经安装了Hive或MySQL,重新安装Hive和MySQL以后,导致版本、配置不一致。解决方法是,使用schematool工具。Hive现在包含一个用于 Hive Metastore 架构操控的脱机工具,名为 schematool.此工具可用于初始化当前 Hive 版本的 Metastore 架构。此外,其还可处理从较旧版本到新版本的架构升级。所以,解决上述错误,你可以在终端执行如下命令:
schematool -dbType mysql -initSchema
执行后,再启动Hive,应该就正常了。
上述出自 http://dblab.xmu.edu.cn/blog/1080-2/
启动进入Hive的交互式执行环境以后,输入 show databases 会先显示如下
hive> show databases; OK default Time taken: 7.312 seconds, Fetched: 1 row(s)
8 安装完成
阿里云ECS服务器部署HADOOP集群系列:
以上是关于阿里云ECS服务器部署HADOOP集群:Hive本地模式的安装的主要内容,如果未能解决你的问题,请参考以下文章
阿里云ECS服务器部署HADOOP集群:ZooKeeper 完全分布式集群搭建
阿里云ECS服务器部署HADOOP集群:HBase完全分布式集群搭建(使用外置ZooKeeper)