hive,
安装mysql
设置密码
Msql -u root
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');
登录
mysql -uroot -p123456
解压hive,创建hive-site.xml
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</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>123456</value>
</property>
</configuration>
image.png把驱动压缩包(mysql-connector-java-5.1.41)拷贝到hive的lib下
cp mysql-connector-java-5.1.41-bin.jar ../apache-hive-0.13.0-bin/lib/
配置环境变量 source /etc/profile
image.png登录
image.png创建一个表,并查看里面的字段
image.png从本地往表里面灌数据
LOAD DATA LOCAL INPATH '/home/tomcat/badou/class6/hive_test/a.txt' OVERWRITE INTO TABLE p_t_2;
image.pngHive是MapReduce的一个封装,当你执行一个sql语句,背后hive帮你执行了 mapreduce的任务。Hive本身是不存数据的,我们可以看到在 hadoop fs -text /user/hive/warehouse/p_t_2/a.txt 路径下有这个数据
image.png
你hive上把表删除了,hadoop上就不存在了。
不用终端的方式建立一个外部表
hive -f create_table.sql
create EXTERNAL TABLE p_t_1
(
usrid STRING,
age STRING,
sex STRING
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n';
如果建立一个外部表,即使hive 上把表删除,hadoop上的数据还是存在,只要重新建立表的结构就可以恢复数据。