Hive+MySQL的简介

1.Hive是基于hadoop的sql解析引擎。

  hive是运行在hadoop之上的。

  在hive中运行的是sql。sql非常接近mysql的sql语法。

  在sql中,有数据库、表、字段、类型。

2.hiveQL中的数据库、表、字段、类型与hadoop上的文件结构的类比

  数据库——————————文件夹

  表————————————文件夹

  表中数据—————————文件夹中的数据文件

  字段———————————数据文件中的列

  hiveQL运行————————MapReduce

3.上面的hiveQL中的表信息必须映射成HDFS中的文件信息,类似于Hibernate的配置文件(*.hmb.xml).这些映射信息不是存放在文件中,而是存放在RDBMS(derby、mysql)中。

 

 

4.在centos上按照Mysql

4.1 判断centos上是否有安装,执行命令rpm -qa |grep mysql

4.2 如果已经安装,需要删除原有的,防止冲突,执行命令 rpm -e mysql-libs-5.1.66-2.el6_3.i686 --nodeps

4.3 安装mysql的服务端,执行命令rpm -i MySQL-server-5.5.31-2.el6.i686.rpm

4.4 启动mysql服务,执行命令mysqld_safe&

4.5 安装mysql的客户端,执行命令rpm -i MySQL-client-5.5.31-2.el6.i686.rpm

4.6 设置root用户的密码,执行命令mysql_secure_installation

登录:mysql -uroot-padmin

4.7 修改mysql允许远程访问,在mysql命令行下执行命令 grant all on *.* to 'root'@'%' identified by 'admin';flushprivileges;

 

 

5.使用MySQL作为hive的metastore

5.1 安装mysql

5.2 把connector.jar放到hive的lib目录下

5.3 修改hive/conf目录下的文件hive-site.xml

修改默认数据库路径:/user/../warehouse

<property>

 <name>javax.jdo.option.ConnectionURL</name>

 <value>jdbc:mysql://hadoop0:3306/hive?createDatabaseIfNotExist=true</value>

  <description>JDBC connect string for aJDBC metastore</description>

</property>

<property>

 <name>javax.jdo.option.ConnectionDriverName</name>

 <value>com.mysql.jdbc.Driver</value>

  <description>Driver class name for aJDBC metastore</description>

</property>

<property>

 <name>javax.jdo.option.ConnectionUserName</name>

  <value>root</value>

  <description>username to use againstmetastore database</description>

</property>

<property>

 <name>javax.jdo.option.ConnectionPassword</name>

  <value>admin</value>

  <description>password to use againstmetastore database</description>

</property>

 

 

 

6.对hive表的操作

shell命令:!clear

在外部执行 hive -e

6.1 普通表

    CREATE TABLE t1(id int);

    LOAD DATA LOCAL INPATH'/root/Downloads/seq' INTO TABLE t1;

 

CREATETABLE t2(fi int, se int) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';

LOADDATA LOCAL INPATH '/root/Downloads/sort' INTO TABLE t2;

6.2 分区表

    CREATE TABLE t3(id int) PARTITIONED BY(province string,city string);        

LOADDATA LOCAL INPATH '/root/Downloads/seq' INTO TABLE t3 PARTITION(province='beijing',city='changping');

6.3 外部表

    CREATE EXTERNAL TABLE t4(id int) LOCATION'/apache_logs';

5.4 外部分区表        

    CREATE EXTERNAL TABLE t5(id int)PARTITIONED BY (logdate string) LOCATION '/apache_logs';

ALTERTABLE t5 ADD PARTITION (logdate='2013_11_11') LOCATION'/apache_logs/2013_11_11';

ALTERTABLE t5 DROP PARTITION (logdate='2013_11_13');

 

 

 

7.使用sqoop把数据从rdbms导入到hdfs中

  sqoop import --connectjdbc:mysql://hadoop0:3306/test --username root --password admin  --table user --fields-terminated-by'\t'        

8.使用sqoop把数据从hdfs导出到mysql中

  sqoop export --connectjdbc:mysql://hadoop0:3306/test --username root --password admin  --table user --fields-terminated-by '\t'--export-dir '/user/root/user'        

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值