赞
踩
hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。所有首先需要安装分布式环境的hadoop程序(参考:http://blog.csdn.net/cweeyii/article/details/54172900)
#本人hive是安装在虚拟机hadoop-master上
#下载和hadoop配套的hive环境
wget http://archive.apache.org/dist/hive/hive-1.2.1/apache-hive-1.2.1-bin.tar.gz
tar -zxvf apache-hive-1.2.1-bin.tar.gz
mv apache-hive-1.2.1-bin hive
#配置path环境
echo "export HIVE_HOME=/home/hadoop/workspace/hive">> ~/.bash_profile
source ~/.bash_profile
echo "export PATH=$HIVE_HOME/bin:$PATH">> ~/.bash_profile
source ~/.bash_profile
#在本地机器上安装mysql服务(本地机器hadoop-macbook)[具体安装过程不再此介绍]
#测试mysql服务是否正常(如果能正常登陆则正常)
mysql -h127.0.0.1 -P3306 -uroot -proot --default-character-set=utf8
#测试远程连接是否开启(登陆到虚拟机hadoop-master)
mysql -hhadoop-macbook -P3306 -uroot -proot --default-character-set=utf8
#如果正常跳过这步
mysql -h127.0.0.1 -P3306 -uroot -proot --default-character-set=utf8 (本地登陆)
use mysql
SELECT User, Password, Host FROM user;
#存在如下一条记录(表示root用户在localhost这个ip可以远程访问mysql,即只允许本地访问)
| root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | localhost|
#可以添加新的记录,指定ip为要访问机器就行
#为简单允许所有ip以root用户连接该机器
UPDATE user SET Host='%' WHERE User='root' AND Host='localhost' LIMIT 1;
| root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | % |
#再次测试应该可以正常连接
mysql -hhadoop-macbook -P3306 -uroot -proot --default-character-set=utf8
#创建hive的元数据库(创建时为空,hive在第一启动时会将元数据表记录到该数据库)
create database hive
#上传mysql-connection的jar包到hive的lib包中,使得hive支持选择mysql作为hive元数据库
scp xxx@hadoop-mackbook:/Users/wenyi/Downloads/ /home/hadoop/workspace/hive/lib
修改hive配置文件
#修改hive-env.sh(在conf目录下)
mv hive-env.sh.template hive-env.sh
#添加如下内容
export HADOOP_HOME=/home/hadoop/workspace/hadoop (#设置hadoop的目录)
export HIVE_CONF_DIR=/home/hadoop/workspace/hive/conf (#设置hive的conf目录)
#设置日志文件位置
mv hive-log4j.properties.template hive-log4j.propertities
#指定hive的log目录
hive.log.dir=/home/hadoop/workspace/hive/logs
#设置hive基本属性
vim hive-site.xml
#内容如下:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/home/hadoop/workspace/hive/warehouse</value>
</property>
<property>
<name>hive.exec.scratchdir</name>
<value>/home/hadoop/workspace/hive/scratchdir</value>
</property>
<property>
<name>hive.querylog.location</name>
<value>/home/hadoop/workspace/hive/logs</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop-macbook:3306/hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
</property>
</configuration>
#hive.metastore.warehouse.dir :数据仓库的位置,默认是/user/hive/warehouse (hadoop中的文件目录,非本机)
#hive.exec.scratchdir hive用来存储不同阶段的map/reduce的执行计划的目录,同时也存储中间输出结果,默认是/tmp/<user.name>/hive,我们实际一般会按组区分,然后组内自建一个tmp目录存储; (hadoop中的文件目录,非本机)
#hive.querylog.location 查询日志目录
#剩下设置mysql jdbc链接
#保证hadoop已经正常启动
#启动hive,第一次启动会往数据库中建立一些hive元数据表格
hive
#如果出现filesystem close相关的目录或者文件权限问题
hadoop fs -chmod 777 /home/hadoop/workspace/hive/scratchdir
#成功则进入hive提示符
#创建一个hive表
hive> create table test1(tid int, tname string);
OK
Time taken: 1.365 seconds
hive>
#查看mysql中hive元数据表
mysql> show tables;
+---------------------------+
| Tables_in_hive |
+---------------------------+
| BUCKETING_COLS |
| CDS |
| COLUMNS_V2 |
| DATABASE_PARAMS |
| DBS |
| FUNCS |
| FUNC_RU |
| GLOBAL_PRIVS |
| PARTITIONS |
| PARTITION_KEYS |
| PARTITION_KEY_VALS |
| PARTITION_PARAMS |
| PART_COL_STATS |
| ROLES |
| SDS |
| SD_PARAMS |
| SEQUENCE_TABLE |
| SERDES |
| SERDE_PARAMS |
| SKEWED_COL_NAMES |
| SKEWED_COL_VALUE_LOC_MAP |
| SKEWED_STRING_LIST |
| SKEWED_STRING_LIST_VALUES |
| SKEWED_VALUES |
| SORT_COLS |
| TABLE_PARAMS |
| TAB_COL_STATS |
| TBLS |
| VERSION |
+---------------------------+
#查看刚才建立的hive表元数据信息
mysql> select * from TBLS;
+--------+-------------+-------+------------------+--------+-----------+-------+----------+---------------+--------------------+--------------------+
| TBL_ID | CREATE_TIME | DB_ID | LAST_ACCESS_TIME | OWNER | RETENTION | SD_ID | TBL_NAME | TBL_TYPE | VIEW_EXPANDED_TEXT | VIEW_ORIGINAL_TEXT |
+--------+-------------+-------+------------------+--------+-----------+-------+----------+---------------+--------------------+--------------------+
| 1 | 1483863200 | 1 | 0 | hadoop | 0 | 1 | test1 | MANAGED_TABLE | NULL | NULL |
+--------+-------------+-------+------------------+--------+-----------+-------+----------+---------------+--------------------+--------------------+
hive安装完成
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。