大数据篇:Hive的安装详解

hive是什么?

  1. 由facebook开源,用于解决海量结构化日志的数据统计;
  2. 基于hadoop的一个数据仓库工具,使用HDFS进行存储并将结构化数据文件映射成一张表,并提供类sql查询的功能,其底层采用MR进行计算;
  3. 本质是将HQL转化成MR程序。

准备工作

  • Java 1.5以上(我的为jdk1.8)
  • Hadoop 2.0以上(我的为2.8.4)

安装流程

# 1. 下载解压安装包
cd /usr/local
wget http://archive.apache.org/dist/hive/hive-1.2.1/apache-hive-1.2.1-bin.tar.gz
tar -zxvf apache-hive-0.13.1-bin.tar.gz
2.配置环境变量

vi /etc/profile
#添加内容:
#Hive
export HIVE_HOME=/usr/local/hive-1.2.1
export PATH=$PATH:$HIVE_HOME/bin

source /etc/profile
# 3.配置文件
# conf/hive-env.sh

cd conf
cp hive-env.sh.template  hive-env.sh  

vi hive-env.sh
#添加内容:
#Hadoop&&Hive
    HADOOP_HOME=/usr/local/hadoop-2.8.4
    export HIVE_CONF_DIR=/usr/local/hive-1.2.1/conf
#4.配置hive-site.xml

[root@master conf]# cp hive-default.xml.template hive-default.xml
[root@master conf]# vi hive-site.xml

##添加内容:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
    <description>JDBC connect string for a JDBC metastore</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
    <description>Driver class name for a JDBC metastore</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>hive</value>
    <description>username to use against metastore database</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>hive</value>
    <description>password to use against metastore database</description>
  </property>
</configuration>

安装并配置mysql

这里我们采用MySQL数据库保存Hive的元数据,而不是采用Hive自带的derby来存储元数据。

1.centos7下mysql的安装请参考centos7安装MySQL

##安装Mysql
cd /usr/local
wget http://dev.mysql.com/get/Downloads/MySQL-5.5/MySQL-5.5.48-1.linux2.6.x86_64.rpm-bundle.tar
tar -zxvf MySQL-5.5.48-1.linux2.6.x86_64.rpm-bundle.tar
yum install perl
rpm -ivh MySQL-server-5.5.48-1.linux2.6.x86_64.rpm
rpm -ivh MySQL-client-5.5.48-1.linux2.6.x86_64.rpm
rpm -e [原有数据库] --nodeps
service mysql start
/usr/bin/mysql-secure-installation

Mysql安装不成功,我这里暂时是用MariaDB替代的,目前启动Hive是没有问题的,不知道会不会在其他方面遇到问题。

##安装mariaDB
##centos7内置的MySQL镜像已经放弃Oracle公司的MySQL,改用MySQL的分支mariaDB,安装mariadb:
yum install mariadb

##然后使用命令systemctl start mariadb,提示如下:
Failed to start mariadb.service: Unit mariadb.service failed to load: No such file or directory

##则是找不到mariadb这个服务。之所以找不到,是因为mariadb的安装本身就没有完成,执行以下命令,查看mariadb的依赖情况:
$ sudo yum search mariadb

执行以下,安装缺少的依赖包:
$ yum install mariadb-embedded mariadb-libs mariadb-bench mariadb mariadb-sever

##然后再启动mariadb,正常,如果要设置开机自启动mariadb,使用以下命令:
$ systemctl enable mariadb

##一定要记得,使用yum install命令安装mysql时,需要多加一个通配符"*",使用如下命令:
yum install mariadb*

关于mysql与mariaDB的关系,这还是一个挺有故事的情节:CentOS 7为什么放弃了MySQL,而改使用MariaDB?

2.下载mysql jdbc 包,下载mysql-connector-java-5.1.46.tar.gz

cd /usr/local
tar -zxvf mysql-connector-java-5.1.46.tar.gz
cp mysql-connector-java-5.1.46/mysql-connector-java-5.1.46-bin.jar  /usr/local/hive-1.2.1/lib

3. 启动并登陆mysql shell

mysql -uroot -p
create database hive;
grant all on *.* to hive@localhost identified by 'hive';

4. 新建hive数据库:

mysql -uroot -p
create database hive;

5. 配置mysql允许hive接入:

grant all on *.* to hive@localhost identified by 'hive';
flush privileges;

6. 启动hive

start-dfs.sh 
start-yarn.sh
hive   

启动hive之前,请先启动hadoop集群。

Hive起来如图:

参考:

https://www.zhihu.com/question/41832866

https://blog.csdn.net/eclothy/article/details/52733891

https://blog.csdn.net/liyifan687/article/details/80103285

猜你喜欢

转载自blog.csdn.net/weixin_41297324/article/details/83688091