hadoop(1):centos 安装 hadoop & hive

简介: 1,关于hiveHive是一个基于Hadoop的数据仓库平台。通过hive,我们可以方便地进行ETL的工作。hive定义了一个类似于SQL的查询语言:HQL,能 够将用户编写的QL转化为相应的Mapreduce程序基于Hadoop执行。Hive是Facebook 2008年8月刚开源的一个数据仓库框架,其系统目标与 Pig 有相似之处,但它有一些Pig目前还不支持的机

1,关于hive

Hive是一个基于Hadoop的数据仓库平台。通过hive,我们可以方便地进行ETL的工作。hive定义了一个类似于SQL的查询语言:HQL,能 够将用户编写的QL转化为相应的Mapreduce程序基于Hadoop执行。

Hive是Facebook 2008年8月刚开源的一个数据仓库框架,其系统目标与 Pig 有相似之处,但它有一些Pig目前还不支持的机制,比如:更丰富的类型系统、更类似SQL的查询语言、Table/Partition元数据的持久化等。

本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/47617975 未经博主允许不得转载。

网站首页:
http://hive.apache.org/

2,安装

首先要安装hadoop
https://hadoop.apache.org/
直接下载tar.gz解压缩。最新版本2.7.1。

tar -zxvf hadoop-2.7.1.tar.gz
mv hadoop-2.7.1 hadoop

下载地址:
http://hive.apache.org/downloads.html
直接解压缩就可以。最新版本 1.2.1。

tar -zxvf apache-hive-1.2.1-bin.tar.gz 
mv apache-hive-1.2.1 apache-hive

设置环境变量:


export JAVA_HOME=/usr/java/default
export CLASS_PATH=$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH

export HADOOP_HOME=/data/hadoop
export PATH=$HADOOP_HOME/bin:$PATH

export HIVE_HOME=/data/apache-hive
export PATH=$HIVE_HOME/bin:$PATH

3,启动hive,创建表

hive 官网:https://cwiki.apache.org/confluence/display/Hive/Home
配置环境变量就可以启动hive了,这个hive是一个本机环境,只依赖hadoop,只有有hadoop环境变量就行。

创建数据表,和mysql非常类似
参考:http://www.uml.org.cn/yunjisuan/201409235.asp
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL

# hive
Logging initialized using configuration in jar:file:/data/apache-hive/lib/hive-common-1.2.1.jar!/hive-log4j.properties
hive> show databases;
OK
default
Time taken: 1.284 seconds, Fetched: 1 row(s)
hive> use default;
OK
Time taken: 0.064 seconds
hive> show tables;
OK
Time taken: 0.051 seconds
hive> CREATE TABLE user_info(uid INT,name STRING)
    > PARTITIONED BY (create_date STRING)
    > ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
    > STORED AS TEXTFILE;
OK
Time taken: 0.09 seconds

使用apache hive 创建数据库表的时候有可能会遇到问题:

FAILED: ParseException line 5:2 Failed to recognize predicate 'date'. Failed rule: 'identifier' in column specification

说明关键字冲突了。不能使用date,user等关键字。

指定存储格式为 Sequencefile 时,把txt格式的数据导入表中,hive 会报文件格式错

Failed with exception Wrong file format. Please check the file's format.
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask

4,导入数据

hive不支持用insert语句一条一条的进行插入操作,也不支持update操作。数据是以load的方式加载到建立好的表中。
数据一旦导入就不可以修改。因为hadoop是这个特性。

创建两个数据文件:

/data/user_info_data1.txt
121,zhangsan1
122,zhangsan2
123,zhangsan3
/data/user_info_data2.txt
124,zhangsan4
125,zhangsan5
126,zhangsan6

数据导入:分别将数据导入到两个分区中。

hive> LOAD DATA LOCAL INPATH '/data/user_info_data1.txt' OVERWRITE INTO TABLE user_info PARTITION (create_date='20150801');
Loading data to table default.user_info partition (create_date=20150801)
Partition default.user_info{create_date=20150801} stats: [numFiles=1, numRows=0, totalSize=42, rawDataSize=0]
OK
Time taken: 0.762 seconds
hive> LOAD DATA LOCAL INPATH '/data/user_info_data2.txt' OVERWRITE INTO TABLE user_info PARTITION (create_date='20150802');
Loading data to table default.user_info partition (create_date=20150802)
Partition default.user_info{create_date=20150802} stats: [numFiles=1, numRows=0, totalSize=42, rawDataSize=0]
OK
Time taken: 0.403 seconds

5,查询

直接查询即可。

hive> select * from user_info where create_date = 20150801;
OK
121     zhangsan1       20150801
122     zhangsan2       20150801
123     zhangsan3       20150801
Time taken: 0.099 seconds, Fetched: 3 row(s)

更多查询函数参考:
hive 函数大全和用户自定义函数
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF

6,总结

本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/47617975 未经博主允许不得转载。

hive可以非常方便的进行离线数据统计,因为数据一旦录入是不能进行修改的。
hive的语法和mysql非常相似,可以充分利用hadoop进行数据统计,可以进行多次join而不用担心效率问题。
目前,有一个小问题没有解决,是数据导入必须使用textfile,不是压缩文件类型。
这个问题的具体描述参考:
http://blog.163.com/xiaoy2002@126/blog/static/6797953420128118227663/

目录
相关文章
|
1月前
|
SQL 分布式计算 关系型数据库
Hadoop-13-Hive 启动Hive 修改启动参数命令行启动测试 几句简单的HQL了解Hive
Hadoop-13-Hive 启动Hive 修改启动参数命令行启动测试 几句简单的HQL了解Hive
51 2
|
29天前
|
存储 安全 Linux
CentOS安装SeaweedFS
通过上述步骤,您应该能够在CentOS系统上成功安装并启动SeaweedFS。记住,根据实际部署规模和需求,可能还需要进一步调整配置参数和优化网络布局。SeaweedFS的灵活性和扩展性意味着随着使用深入,您可能需要探索更多高级配置和管理策略。
100 64
|
30天前
|
存储 安全 Linux
CentOS安装SeaweedFS
通过上述步骤,您应该能够在CentOS系统上成功安装并启动SeaweedFS。记住,根据实际部署规模和需求,可能还需要进一步调整配置参数和优化网络布局。SeaweedFS的灵活性和扩展性意味着随着使用深入,您可能需要探索更多高级配置和管理策略。
109 61
|
22天前
|
Linux 网络安全 数据安全/隐私保护
Linux系统之Centos7安装cockpit图形管理界面
【10月更文挑战第12天】Linux系统之Centos7安装cockpit图形管理界面
48 1
Linux系统之Centos7安装cockpit图形管理界面
|
7天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。通过具体案例,读者可以了解如何准备环境、下载源码、编译安装、配置服务及登录 MySQL。编译源码安装虽然复杂,但提供了更高的定制性和灵活性,适用于需要高度定制的场景。
22 3
|
8天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。
本文介绍了在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。内容涵盖准备工作、下载源码、编译安装、配置服务、登录设置及实践心得,帮助读者根据需求选择最适合的安装方法。
16 2
|
29天前
|
NoSQL 数据可视化 Linux
redis学习四、可视化操作工具链接 centos redis,付费Redis Desktop Manager和免费Another Redis DeskTop Manager下载、安装
本文介绍了Redis的两个可视化管理工具:付费的Redis Desktop Manager和免费的Another Redis DeskTop Manager,包括它们的下载、安装和使用方法,以及在使用Another Redis DeskTop Manager连接Redis时可能遇到的问题和解决方案。
92 1
redis学习四、可视化操作工具链接 centos redis,付费Redis Desktop Manager和免费Another Redis DeskTop Manager下载、安装
|
10天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
46 2
|
14天前
|
Linux 知识图谱
Centos7安装killall,fuser, killall,pstree和pstree.x11
通过上述步骤,您已在CentOS 7系统中成功部署了killall、fuser、pstree以及pstree.x11,为高效管理系统进程打下了坚实基础。更多关于服务器管理与优化的知识,获取全面技术支持与解决方案。
17 1
|
14天前
|
监控 安全 Linux
CentOS7下安装配置ntp服务的方法教程
通过以上步骤,您不仅能在CentOS 7系统中成功部署NTP服务,还能确保其配置合理、运行稳定,为系统时间的精确性提供保障。欲了解更多高级配置或遇到特定问题,提供了丰富的服务器管理和优化资源,可作为进一步学习和求助的平台。
29 1