一、hive的介绍:
高手博客不错: https://www.cnblogs.com/ggzhangxiaochao/p/9363029.html
二、hive的安装和配置
1、下载hive2.1-tar.gz
2、tar开
$>tar -xzvf hive-2.1.0.tar.gz -C /soft //tar开
$>cd /soft/hive-2.1.0 //
$>ln -s hive-2.1.0 hive //符号连接
3、配置环境变量
[/etc/profile]
HIVE_HOME=/soft/hive
PATH=...:$HIVE_HOME/bin
4、验证hive安装成功
$>hive --v
5、配置hive,使用win7的mysql存放hive的元数据.
a)复制mysql驱动程序到hive的lib目录下。
...
b)配置hive-site.xml
复制hive-default.xml.template为hive-site.xml
修改连接信息为mysql链接地址,将${system:...字样替换成具体路径。
[hive/conf/hive-site.xml]
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
<description>
password to use against metastore database
</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.ConnectionURL</name>
<value>jdbc:mysql://192.168.231.1:3306/hive2</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
c)在msyql中创建存放hive信息的数据库
mysql>create database hive2 ;
d)初始化hive的元数据(表结构)到mysql中。
$>cd /soft/hive/bin
$>schematool -dbType mysql -initSchema
三、hive命令行操作
1、创建hive的数据库
$hive>hive --version //
$hive>hive --help //
$hive>create database mydb2 ; //
$hive>show databases ;
$hive>use mydb2 ;
$hive>create table mydb2.t(id int,name string,age int);
$hive>drop table t ;
$hive>drop table mydb2.t ;
$hive>select * from mydb2.t ; //查看指定库的表
$hive>exit ; //退出
$>hive //hive --service cli
$>hive //hive --service cli
四、hive创建表结构的命令
CREATE TABLE `tmp.tmp_dictionary`(
`type_name` STRING,
`deviceId` STRING,
`deviceNo` STRING,
`userId` STRING,
`doorIndex` STRING,
`ret` STRING,
`operateId` STRING,
`openDoorType` STRING,
`fpId` STRING,
`alert` STRING,
`status` STRING,
`doorState` STRING,
`powerMode` STRING,
`battLevel` STRING,
`alertState` STRING,
`hardWareVersion` STRING,
`firmWareVersion` STRING,
`networkName` STRING,
`id_number` STRING,
`createTime` STRING,
`msg` STRING,
`msgType` STRING,
`token` STRING,
`msgTime` STRING )
ROW FORMAT SERDE
'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
WITH SERDEPROPERTIES (
'field.delim'='|',
'line.delim'='\n')
STORED AS INPUTFORMAT
'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION
'hdfs://hadoop-001.zeepson.com:8020/user/hive/warehouse/tmp.db/tmp_dictionary'
五、hive命令加载数据的步骤
创建表之前先查询下hadoop的core-site.xml 下 hdfs的位置
1、whereis hadoop 查询hadoop的安装位置
2、查到hdfs的位置后
3、通过命令查询warehouse的地址 ,找到hive库的地址
hadoop fs -ls -R hdfs://xxxx 看看有哪些目录吧
---------------------------
1、先hive 命令执行
2、显示当前数据库 show databases;
3、创建数据库名为 tmp create database tmp;
4、使用 tmp 数据库 use tmp;
5、然后执行建表语句
---------------------------
存数据
1、先把csv文件导入服务器
2、使用pwd 命令查询文件路径
3、执行load命令上传数据到hive
load data local inpath '/root/hiveTmp/dictionary.csv' overwrite into table tmp.tmp_dictionary;
4、进入hive
select * from tmp_dictionary limit 5;
load data local inpath '/root/data/1.csv' overwrite into table tmp.tmp_sub;