1、使用CDH版本大数据组件可以避免在编程中遇到的jar包冲突等问题,下载地址:
http://archive.cloudera.com/cdh5/cdh/5/
2、Hive官方地址,https://hive.apache.org/
3、Hive简介:The Apache Hive是使用sql对分布式大数据集进行读写和管理操作的数据仓库,可以使用JDBC对结构化数据(MySQL\Oracle等)进行操作。使用sql语法来代替复杂的MapReduce获取结果数据的编码,且基于MapReduce进行底层计算。
4、相关概念
离线数据仓库:对数据进行定时批量处理计算,数据巨大、确定、保存时间长,可用来计算模型,如Spark SQL、HDFS+MapReduce+Hive(Hive存储最终的计算结果)。
实时数据仓库:对数据进行实时的一条一条的计算处理,如Spark Streaming、Flink
结构化数据:如Oracle\MySQL,每行一个实体,按建表定义每行有固定的顺序和属性,便于增删改查。
半结构化数据:有一定的结构和属性,但是结构顺序不一定固定,属性也不一定要完整,如XML、Json文件。
非结构化数据:没有固定的结构和属性,如文本文件、图片、视频等。
5、编译
$ tar -zxvf hive-1.1.0-cdh5.7.0-src.tar.gz
$ cd hive-1.1.0-cdh5.7.0
$ mvn clean package -P sources,hadoop-2 -DskipTests -Dtar #-P来源于pom文件中的<profile>中的<Id>属性
6、安装配置
Hive默认数据库为Derby,此处使用MySQL,准备MySQL5.1.7驱动包,将驱动包拷贝到
/home/hadoop/app/hive-1.1.0-cdh5.7.0/lib目录下。
$ cd /home/hadoop/app/hive-1.1.0-cdh5.7.0/conf
$ cp hive-env.sh.template hive-env.sh #该文件为配置Hive和Hadoop环境变量的配置文件,如果在.bash_profile文件中配置了的话,可以不配置
$ vi hive-site.xml #配置连接Mysql,图中红色部分为IP地址
![](https://img.haomeiwen.com/i11897200/e107d3b204f68172.png)
修改windows下hosts文件 :C:\Windows\System32\drivers\etc hosts中添加
192.168.1.x hostname,其次要确保上图红线中的IP地址在mysql.user表中与对应的用户存在,否则hive无权限连接。
$ cd $HIVE_HOME
$ ./hive #出现下图则连接成功
![](https://img.haomeiwen.com/i11897200/b5a1935c0c1ec98c.png)
新建的表ruozedata_basic03在Mysql中,
# su - mysql
$ mysql -uroot -p123456
>show databases;
![](https://img.haomeiwen.com/i11897200/5e2f4c9c0a0af65b.png)
7、在hive中建表报错com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Specified key was too long; max key length is 767 bytes
解决办法:在mysql中,alter database dbname character set latin1;
若库中已经有表,则修改已建表的字符集 alter table tablename convert to character set latin1;
查看mysql字符集 show variables like 'character_set_database';
![](https://img.haomeiwen.com/i11897200/0ec9b8e8d9e9c957.png)
网友评论