一、zookeeper以及hive的安装

1、首先下载安装包(我这的是zookeeper-3.4.5-cdh5.14.2.tar.gz和hive-1.1.0-cdh5.14.2.tar.gz安装包)
2、将其上传到linux系统下,并压缩文件(我放到/opt/文件夹下)

tar -zxf zookeeper-3.4.5-cdh5.14.2.tar.gz
tar -zxf hive-1.1.0-cdh5.14.2.tar.gz

3、移动并将文件改名

mv zookeeper-3.4.5-cdh5.14.2 soft/zk345
mv hive-1.1.0-cdh5.14.2 soft/hive110

4、进入对应的zookeeper中conf配置文件下

cd /opt/soft/zk345/conf

5、复制一份文件

cp zoo_sample.cfg zoo.cfg

6、修改重要配置

vi zoo.cfg
dataDir=/opt/soft/zk345/tmp\
最后一行添加
server.1=192.168.56.138:2258:3358   (你的ip加不重复的端口号)

7、配置环境变量

vi /etc/profile
最后添加
export ZOOKEEPER_HOME=/opt/soft/zk345
export PATH=$PATH:$ZOOKEEPER_HOME/bin
配置完source
source /etc/profile

8、进入hive下的配置文件

cd /opt/soft/hive110/conf

9、配置文件内容

进入文件
vi 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>/usr/hive/warehouse</value>
  </property>
  <property>
    <name>hive.metastore.local</name>
    <value>false</value>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://192.168.56.138:3306/hive?createDatabaseIfNotExist=true</value>       //ip自己改
  </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>139129</value>                                  //密码自己改
  </property>
 <property>
    <name>hive.server2.authentication</name>
    <value>NONE</value>
  </property>
  <property>
    <name>hive.server2.thrift.client.user</name>
    <value>root</value>
  </property>
  <property>
    <name>hive.server2.thrift.client.password</name>
    <value>139129</value>                                 //密码自己改
  </property>
</configuration>

10、再次更新环境变量

vi /etc/profile
最后一行加入
export HIVE_HOME=/opt/soft/hive110
export PATH=$PATH:$HIVE_HOME/bin
不能忘
保存退出后source /etc/profile

11、启动hadoop

start-all.sh
输入jps命令可以看到包括jps在内5个名称

12、启动zookeeper

zkServer.sh start
成功如下图

hive zookeeper 连接配置 hive zookeeper jdbc_zookeeper


13、第一次安装需初始化hive(以后不需要)

schematool -dbType mysql -initSchema
初始化成功如下

hive zookeeper 连接配置 hive zookeeper jdbc_hive zookeeper 连接配置_02

14、启动hive

hive --service metastore
启动成功如下图

hive zookeeper 连接配置 hive zookeeper jdbc_h5_03


15、hive后可以输入sql语句

hive

16、也可以进入beeline输入sql语句

hiveserver2
beeline -u jdbc:hive2://192.168.56.138:10000 -n root

二、数据库举例以及外表创建

1、创建数据库

hive>create database mydemo;

2、创建表

create table classes(clss_id int,class_name string) row fromat delimited fields terminated by ',' stored as textfile;

3、插入数据

insert into classes values(1,'KB01'),(2,'KB02');

4、查看文件是否存在

!hdfs dfs -text /usr/hive/warehousse/mydemo.db/classes/000000_0;
会显示1,KBO1
2,KB02

5、外表创建

本地创建一个csv文件,把它上传到linux系统下
在linux下创建一个文件夹
hdfs dfs -mkdir /data
把csv文件上传到/data/目录下
hdfs dfs -put d1.csv /data/
创建一个外表
create external table customs(
    > cust_id string,
    > cust_name string,
    > age int
    > )
    > row format delimited fields terminated by ','
    > location '/data';
把它的定位定位到data下
输入select * from customs;就能查到表中的信息

6、在上一表继续添加数据

继续在本地创建一个同样的表,把里面的数据改成你要的数据
上传到hadoop上
hdfs dfs -put d2.csv /data/
输入select * from customs;就能查到表中的信息(包含添加信息)

浏览器查看地址:http://192.168.56.138:50070/explorer.html#/

内部表和外部表的区别

内部表(管理表)
HDFS中位所属数据库目录下的子文件夹
数据完全由Hive管理,删除表(元数据)会删除数据
外部表
数据保存在指定位置的HDFS路径中
Hive不完全管理数据,删除表(元数据)不会删除数据