@awsekfozc
2016-01-08T11:13:07.000000Z
字数 3758
阅读 2343
Hive
1)hive是基于Hadoop的一个数据仓库,将结构化的数据文件映射为一张数据库表。(HDFS存储数据)
2)提供HiveQ语句查询,结构类似于SQL。将语句解析成mapreduce任务(可能多个)(YARN运行mapreduce)
3)元数据存储在RDBMS(mysql,Postgresql)。
使用简单的HiveQL自动生成mapreduce,省去了繁琐的编程过程。在筛选数据的效率上大大提升。十分适合数据仓库的统计分析。
Hive的数据存储在HDFS之上。适合大数据量的存储,运行再YARN上,分布式的YARN,让Hive适合筛选大数据量的数据。

//解压$ tar -zxvf apache-hive-0.13.1-bin.tar.gz -C /opt/moduels/
//hive-env.sh//hadoop环境设置HADOOP_HOME=/opt/moduels/hadoop-2.5.0///Hive的控制目录export HIVE_CONF_DIR=/opt/moduels/hive-0.13.1/conf//HDFS上创建临时目录并赋予可学权限$ bin/hdfs dfs -mkdir /tmp$ bin/hdfs dfs -chmod 775 /tmp//HDFS上创建数据存储目录并赋予可学权限$ bin/hdfs dfs -mkdir -p /user/hive/warehouse$ bin/hdfs dfs -chmod 775 /user/hive/warehouse###启动前记得加上mysql驱动包###//启动hive$ bin/hive//创建表pepolecreate table pepole(pid int,name string,phone string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';//创建表加载数据load data local inpath "/opt/datas/customers.csv" into table pepole;

//联网安装,使用yum设置自动获取IP地址//替换系统镜像源$ cd /etc/yum.repos.d$ sudo mv CentOS-Base.repo CentOS-Base.repo.bak$ sudo touch CentOS6-Base-163.repo$ sudo vi CentOS6-Base-163.repo//查看要安装的组件$ sudo yum list|grep mysql//安装mysql$ sudo yum install mysql-server -y//查看mysql服务状态$ sudo service mysqld status//启动mysql服务$ sudo service mysqld start//设置mysql root用户密码# /usr/bin/mysqladmin -u root password '123456'//测试连接数据库$ mysql -uroot -p123456> show databases ;> use test ;> show tables ;

- 自定义文件:/opt/moduels/hive-0.13.1/conf/hive-site.xml
- 配置属性查找:/opt/moduels/hive-0.13.1/conf/hive-site.xml.template
<!--hive-site.xml--><!--连接路径--><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://hadoop.zc.com/metastore?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>

#查看数据库show databases;#使用数据库use datbase_name;#查看表show tables;#创建数据库create database datbase_name ;#创建表create table pepole(pid int,name string,phone string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';#加载HDFS数据到表load data inpath '/user/hive/warehouse/pepole/customers.csv' into table pepole ;#加载本地数据表load data local inpath "/opt/datas/customers.csv" into table pepole;#查询表select * from table-name ;#查看表属性desc table-name;#查看表详细属性desc extended table-name ;#查看格式化表属性desc formatted table-name ;#查看函数show functions ;#查看函数使用desc function fun-name ;#查看函数详细属性desc function extended upper ;
<!--仓库路径配置:使用时注意权限,要有写的权限--><property><name>hive.metastore.warehouse.dir</name><value>/user/hive/warehouse</value><description>location of default database for the warehouse</description></property><!--hive运行日志目录配置:$HIVE_HOME/conf/hive-log4j.properties-->hive.log.dir=/opt/moduels/hive-0.13.1/logs<!--指定hive运行时显示的log日志的级别(INFO,DEBUG):$HIVE_HOME/conf/hive-log4j.properties-->$HIVE_HOME/conf/log4j.properties<!--在cli命令行上显示当前数据库,以及查询表的行头信息:$HIVE_HOME/conf/hive-site.xml--><property><name>hive.cli.print.header</name><value>true</value><description>Whether to print the names of the columns in query output.</description></property><property><name>hive.cli.print.current.db</name><value>true</value><description>Whether to include the current database in the Hive prompt.</description></property>
在此输入正文