设为首页 加入收藏

TOP

大数据平台入门--hive安装(虚拟机安装单机版本)
2018-12-07 01:18:51 】 浏览:195
Tags:数据 平台 入门 --hive 安装 虚拟 单机 版本
版权声明:著作权归作者所有,任何形式的转载都请注明出处。 https://blog.csdn.net/xiaokui9/article/details/81127561

所有版本的下载地址:http://archive.apache.org/dist/hive/

网上太多版本,但是只是为了学习,本机虚拟机上安装一下试用,很多帖子里的配置是多台服务器的配置,因些整理了一个虚拟机本机版本的安装步骤。

关于hive的一些概念,特别有一些配置文件里的内容,建议看一下书后再去看帖子,会容易得多(我看的是hadoop权威指南里面的hive部分)

hadoop的安装,请参照上一篇文章https://blog.csdn.net/xiaokui9/article/details/81093340

一、hive安装

1将hive解压到/opt/modules目录下。

2修改环境变量,在/etc/profile文件尾添加:

export HIVE_HOME=/opt/modules/apache-hive-1.1.0-bin

export PATH=$PATH:$HIVE_HOME/bin

执行source /etc.profile:

3测试安装是否成功,命令行执行hive --version

4、安装mysql

命令行命令:yum install mysql-server

这时报错:

Loaded plugins: fastestmirror, langpacks

Loading mirror speeds from cached hostfile

* base: mirrors.neusoft.edu.cn

* extras: mirrors.neusoft.edu.cn

* updates: mirrors.cn99.com

No package mysql-server available.

Error: Nothing to do

网上找的解决方法是:首先必须添加mysql社区repo通过输入命令:sudo rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm,最后使用像安装MySQL的常规方法一样安装mysql: yum install mysql mysql-server mysql-libs mysql-server

然后再执行就可以了。

5、配置MySQL数据库

(1)启动mysql

service mysqld start

(2)设置root登陆密码:123456,然后使用修改后的密码进行登陆

/usr/bin/mysqladmin -u root password '123456'

service mysqld restart

mysql -uroot – p

(3)登录后:

mysql>use mysql;

mysql> select user,host from user;

出现如下结果:

(4)赋予root权限:

//本地操作的权限

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '123456' WITH GRANT OPTION;

结果如下:

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

结果同上一步。

注意:本地部署访问的时候不要执行以下内容,以下内容为部署访问远程服务器的方式,将第4步更换如下:

#######################start#################

(4)删除user为空的记录,否则后边服务启动会出现规则冲突。

mysql> delete from user where user='';

结果如下:

Query OK, 2 rows affected (0.05 sec)

(5)命令行执行:

update user set host = '%' where user = 'root';

这时可能会报错:

ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'

不用管它,再次进行查看。

mysql> delete from user where user='';

结果如下,就可以了。

说明:

默认的在mysql数据库下有一个user表存储着服务器用户名以及密码,因为只允许MySQL 的root用户登录,因此我们不能远程登录,可能会受到权限的限制,为了防止后续任务出现问题,这里我们将host为localhost的一条记录改为host为%:

mysql> update user set host='%' where host='localhost';

然后删除其他字段,只留这一条记录,这样我们就可以远程在其他主机上登录了。

(6)赋予root权限

//远程操作的权限

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

mysql> flush privileges;

####################### end#################

5、安装mysql-connector-java

(1)方法1

使用yum安装mysql-connector-java,然后将jar包复制到${HIVE_HOME}/lib目录下(yum安装后jar包在/usr/share/java/目录下)。

yum install mysql-connector-java -y

cp /opt/modules/hadoop-2.7.3/lib/mysql-connector-java-5.1.17.jar /opt/modules/apache-hive-1.1.0-bin/lib/

(2)方法2

将mysql-connector-java-***.jar,复制到hive安装目录下的lib下

需要下载mysql的jdbc<mysql-connector-java-5.1.28.jar>,然后将下载后的jdbc放到hive安装包的lib目录下,下载链接是:http://dev.mysql.com/downloads/connector/j/

6、修改配置文件hive-env.sh

将配置文件中的HADOOP_HOME和HIVE_CONF_DIR内容修改如下:

# Set HADOOP_HOME to point to a specific hadoop install directory

HADOOP_HOME="/opt/modules/hadoop-2.7.6"

# Hive Configuration Directory can be controlled by:

export HIVE_CONF_DIR="/opt/modules/apache-hive-1.1.0-bin/conf"

7、配置hive-site.xml文件

conf目录下拷贝一个hive-default.xml.template文件,重命名为hive-site.xml文件,修改文件中的以下配置项的内容:

<property>

<name>hive.querylog.location</name><!--日志存放目录-->

<value>/opt/modules/apache-hive-1.1.0-bin/logs/hive</value>

<description>Location of Hive run time structured log file</description>

</property>

<property>

<name>javax.jdo.option.ConnectionURL</name><!--mysql数据库JDBC连接的url-->

<value>jdbc:mysql://localhost:3306/hivecreateDatabaseIfNotExist=true</value>

</property>

<property>

<name>javax.jdo.option.ConnectionDriverName</name><!-- JDBC驱动器的类名-->

<value>com.mysql.jdbc.Driver</value>

</property>

<property>

<name>javax.jdo.option.ConnectionUserName</name><!-- mysql数据库的用户名-->

<value>root</value>

</property>

<property>

<name>javax.jdo.option.ConnectionPassword</name><!-- mysql数据库的用户密码-->

<value>123456</value>

</property>

然后搜索xml文件中所有的配置内容中有如下字符串的:

${system:java.io.tmpdir}/${system:user.name}

将其全部修改成:

/opt/modules/apache-hive-1.1.0-bin

8、运行hive

二、安装时的部分报错内容

在安装过程中出现过多个错误,本身安装也不是完全按照这个顺序来的,因为有一些出错,然后会去补全前面的步骤。将出现的错误列出在这里,供参考:

1、Access denied for user 'root'@'localhost' (using password: YES)

有说法是:root帐户默认不开放远程访问权限,所以需要修改一下相关权限。

有说法是:一般这个错误是由密码错误引起,解决的办法自然就是重置密码。

解决方法:

1.重置密码的第一步就是跳过MySQL的密码认证过程,方法如下:

#vim /etc/my.cnf

在文档内搜索mysqld定位到[mysqld]文本段:

在[mysqld]后面任意一行添加“skip-grant-tables”用来跳过密码验证的过程

2.重启MySQL:

service mysqld restart

3.重启之后命令行运行mysql即可进入mysql。

4.接下来就是用sql来修改root的密码

mysql> use mysql;

mysql> update user set password=password("你的新密码") where user="root";

mysql> flush privileges;

mysql> quit

到这里root账户就已经重置成新的密码了。

5.编辑my.cnf,去掉刚才添加的内容,然后重启MySQL。大功告成!

2、Exception in thread "main" java.lang.RuntimeException: java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D

配置文件conf/hive-site.xml中存在一些路径配置项未配置。

搜索conf/hive-site.xml文件中所有的配置内容中有如下字符串的:

${system:java.io.tmpdir}/${system:user.name}

将其修改成:

/opt/modules/apache-hive-1.1.0-bin

3、Caused by: javax.jdo.JDOFatalDataStoreException: Unable to open a test connection to the given database. JDBC url = jdbc:mysql://localhost:3306/hivecreateDatabaseIfNotExist=true, username = root. Terminating connection pool (set lazyInit to true if you expect to start your database after your app). Original Exception: ------

之前按照另外一个文档配置的,所以mysql的root权限配置成了远程的方式,但hive-site.xml文件中是按本地方式配置的,所以解决方案是“5、配置MySQL数据库”中赋予root权限更改回本地权限方式:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '123456' WITH GRANT OPTION;

另外还有别的报错,可能是用户执行权限的问题,有些命令需要使用root用户执行,需要注意。

另外,Hive概述可参考https://www.2cto.com/net/201804/735478.html

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Hive - - 分组求最大,最小(加行.. 下一篇Hive开发经验问答式总结

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目