1、安装环境
- JDK1.7.0
- centOS6.4
- hive0.13.1
- cdh5.3.6
- hadoop2.5.0
- mysql
2、Hive的功能架构介绍
Hive是一种以SQL风格进行任何大小数据分析的工具,其特点是采取类似关系数据库的SQL命令。其特点是通过 SQL处理Hadoop的大数据,数据规模可以伸缩扩展到100PB+,数据形式可以是结构或非结构数据。
Hive与传统关系数据库比较有如下几个特点:
>侧重于分析,而非实时在线交易无事务机制;
>不像关系数据库那样可以随机进行 insert或update;
>通过Hadoop的map/reduce进行分布式处理,传统数据库则没有;
>传统关系数据库只能拓展最多20个服务器,而Hive可以拓展到上百个服务器。
Hive与mapreduce比较
Hive只需要通过写几条SQL语句就可以实现用java开发mapreduce的功能,简化了代码量,减少了开发效率,对于不熟悉java而又要开发mapreduce的有极大好处。
Hive的架构图如下:
3、Hive安装部署
3.1、配置与Hadoop关联以及Hive的配置文件目录
HIVE_HOME/conf/hive-env.sh文件
# Set HADOOP_HOME to point to a specific hadoop install directory
HADOOP_HOME=/home/xusy/share/cdh5.3.6/hadoop-2.5.0-cdh5.3.6
# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/home/xusy/share/cdh5.3.6/hive-0.13.1-cdh5.3.6/conf
3.2、启动hadoop进程
$ sbin/hadoop-daemon.sh start namenode
$ sbin/hadoop-daemon.sh start datanode
$ sbin/yarn-daemon.sh start resourcemanager
$ sbin/yarn-daemon.sh start nodemanager
$ sbin/mr-jobhistory-daemon.sh start historyserver
3.3、创建表之前的必要操作
$bin/hadoop fs -mkdir /tmp
$bin/hadoop fs -mkdir /user/hive/warehouse
$bin/hadoop fs -chmod g+w /tmp
$bin/hadoop fs -chmod g+w /user/hive/warehouse
4、DML/DDL语句测试
4.1、创建表
hive>drop table if exists student ;
hive>CREATE TABLE student(
hive>id int,
hive>name string)
hive>ROW FORMAT DELIMITED
hive>FIELDS TERMINATED BY ',';
4.2、准备数据
stu.txt
01,xusy
02,liyj
03,liujl
04,hunl
05,zhaoyy
06,zhoujq
07,yuang
08,zhangz
//通过hue上传到hdfs的/user/xusy/data下,如果没装hue的话,就用命令上传;
数据源存储在hdgs的路径如下:
4.3、加载数据
hive>load data inpath '/user/xusy/data/stu.txt' overwrite into table student ;
4.4、查询
hive>select * from student ;
hive>select count(1) from student ;
5、linux下安装mysql
5.1、yum安装
$sudo yum -y install mysql-server
5.2、临时启动mysqld
切换到root用户
# service mysqld start
5.3、设置开机启动mysqld
# chkconfig mysqld on
# chkconfig --list|grep mysqld
5.4、创建mysql用户和密码
$mysqladmin -uroot password root
5.5、启动mysql
$mysql -uroot -proot
5.6、修改mysql密码(可选)
mysql> SET PASSWORD = PASSWORD('123456') ;
5.7、修改mysql数据库下user表中的存储的用户信息
5.7.1、查询用户信息
mysql>use mysql ;
mysql> select Password,Host,User from user ;
5.7.2、修改用户信息,修改为任务用户共享一个密码
mysql> update user set Host='%' where User='root' and Host='localhost' ;
mysql> select Password,Host,User from user ;
5.7.3、删除用户信息1
mysql> delete from user where User='root' and Host='127.0.0.1' ;
mysql> select Password,Host,User from user ;
5.7.4、删除用户信息2
mysql> delete from user where User='root' and Host='xuxudede.com' ;
mysql> select Password,Host,User from user ;
5.7.5、删除用户信息3
mysql> delete from user where Host='xuxudede.com' ;
mysql> select Password,Host,User from user ;
5.7.6、删除用户信息4
mysql> delete from user where Host='localhost' ;
mysql> select Password,Host,User from user ;
5.7.7、刷新
mysql>flush privileges ;
6、配置Hive元数据存储在mysql中
6.1、hive-site.xml配置文件
注意:如果HIVE_HOME/conf下的hive-site.xml不存在,则自己创建。
配置如下:
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://xuxudede.com/metadata?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>root</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
<description>password to use against metastore database</description>
</property>
6.2、添加mysql驱动
6.2.1、解压mysql的驱动包,拷贝mysql中的jar包到hive根目录的lib目录下
$tar -zxvf mysql-connector-java-5.1.27.tar.gz
$ cp mysql-connector-java-5.1.27/mysql-connector-java-5.1.27-bin.jar ../../cdh5.3.6/hive-0.13.1-cdh5.3.6/lib/
7、重新启动hive,并进行相应验证测试
7.1、重新启动hive
$bin/hive
7.2、查看mysql中存储的元数据信息
mysql> use metadata ;
mysql> select * from TBLS ;
mysql> use TBLS ;
至此,已成功安装Hive及配置了mysql存储hive的元数据!