版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xuxudede1989/article/details/50385642
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文件
HADOOP_HOME =/home/xusy /share/cdh 5.3.6 /hadoop-2.5 .0 -cdh5.3.6
export HIVE_CONF_DIR =/home/xusy /share/cdh 5.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/metadatacreateDatabaseIfNotExist=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的元数据!