博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hive
阅读量:4574 次
发布时间:2019-06-08

本文共 4653 字,大约阅读时间需要 15 分钟。

一些概念

636379-20190615181122334-290139375.png

636379-20190615180919767-1955201741.png

636379-20190615181023046-1705103666.png

安装 mysql

yum安装mysql-server没有可用包问题解决方法:step 1: wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpmstep 2: rpm -ivh mysql-community-release-el7-5.noarch.rpm经过以上两个步骤后再次执行:yum install mysql-server 命令就可以成功安装了。修改 密码# 停掉 mysql 服务systemctl stop mysqld#修改 mysql 配置vim /etc/my.cnf# Disabling symbolic-links is recommended to prevent assorted security risksskip-grant-tables #添加这句话,这时候登入mysql就不需要密码symbolic-links=0# 重新启动 mysql 服务systemctl start mysqldmysql -u root -p    #敲回车set password for root@localhost = password('root123'); # 这个会报错误flush privileges;set password for root@localhost = password('root123');flush privileges;quit;systemctl stop mysqld.service修改 配置文件 注释掉 skip-grant 语句

hive 安装步骤

# 去官网拷贝下载地址wget xxxtar -xzvf xxx.tar.gzmv apache-hive-2.3.5-bin /usr/local/cd /usr/local/apache-hive-2.3.5-bin/conf需要修改两个 配置文件cp hive-env.sh.template hive-env.shcp hive-default.xml.template hive-site.xmlvim hive-env.sh ,添加 JAVA_HOME , HADOOP_HOMEvim hive-site.xml    # 修改 metastore 存储在哪里 (localhost 的 mysql 等)
javax.jdo.option.ConnectionURL
jdbc:mysql://localhost:3306/metastore?createDatabaseIfNotExist=true
javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver
javax.jdo.option.ConnectionUserName
root
javax.jdo.option.ConnectionPassword
root123
hive.metastore.warehouse.dir
/hive/warhouse
hive.exec.scratchdir
/hive/tmp
hive.querylog.location
/hive/log

636379-20190615183000708-290433563.png

接下来,我们需要去 创建我们的 mysql 数据库服务器 以及数据库实例

并且,需要在 hdfs 文件系统上为 hive 创建 对应的文件目录 如 下图所示

hdfs dfs -ls /hdfs dfs -mkdir /hivehdfs dfs -mkdir /hive/warehousehdfs dfs -mkdir /hive/tmphdfs dfs -mkdir /hive/loghdfs dfs -chmod -R 777 /hive./schematool -dbType mysql -initSchema# 提示 缺少 myql 驱动 jar 包cd /usr/local/apache-hivexxxx/libwget http://central.maven.org/maven2/mysql/mysql-connector-java/6.0.6/mysql-connector-java-6.0.6.jar./schematool -dbType mysql -initSchema# 以 metastore 方式 启动 hive nohup ./hive --services metastore &中间遇到 一些坑 主要是  jdbc 连接字符串的问题  & 进行转义 与符号 
javax.jdo.option.ConnectionURL
jdbc:mysql://localhost:3306/metastore?createDatabaseIfNotExsit=true&characterEncoding=UTF-8&serverTimezone=UTC
./hive # 进入 交互式的 hive shell![](https://img2018.cnblogs.com/blog/636379/201906/636379-20190616221558709-994510626.png)

636379-20190615184301491-1153418328.png

636379-20190615184425459-1092517095.png

636379-20190615184518693-840945546.png

636379-20190615184608733-1243223907.png

636379-20190615184714292-1591832139.png

./hive

进入 交互

show databases;

vim testdata.txt

1,tom,music-runing-code,c++:98.0-java:76.0-php:65.0

2,jerry,music-code,c++:93.0-java:70.0-php:55.0
3,john,code,go:87.0-python:93.0

使用 hive 进行导入

create table table1(id int,name string,interest array,score map<string,string>) row format delimited fields terminated by ','

collection items terminated by '-' map keys terminated by ':' stored as textfile;

导入本地文件到 内部表

load data local inpath '/root/testdata.txt' overwrite into table table1;

hdfs dfs -ls /hive/warehouse/table1 # 可以查看到 数据实际上是保存在 了 hdfs 上,元数据信息保存在 mysql 上

外部表

hdfs dfs -mkdir /outertables/

hdfs dfs -copyFromLocal /root/testdata.txt /outertables/

create external table table2(id int,name string,interest array,score map<string,string>) row format delimited fields terminated by ',' collection items terminated by '-' map keys terminated by ':' location '/outertables';

select * from table2;
desc formatted table2;

636379-20190617085126865-1491044257.png

636379-20190615185218497-1854818692.png

加载本地文件到 内部表

加载文件到外部表

内部表在 drop 时候 hdfs 上 /hive/warhouse/ 下的数据 也被干掉了

而 外部表的 则不会被干掉

636379-20190615185803586-558798170.png

external 关键字

636379-20190615185904227-66922328.png

636379-20190615190255796-1806908753.png

分区表 ,可以提高 查找效率

create table table3(id int, name string, interest array, score map<string,string>) partitioned by (year int) row format delimited fields terminated by ',' collection items terminated by '-' map keys terminated by ':' stored as textfile;

636379-20190615190355005-1076132277.png

删除分区

636379-20190615190447818-928449320.png

636379-20190617092825367-2079992202.png

列式存储

 

636379-20190617122008522-1466889302.png

636379-20190617122159642-866611721.png

sqoop 可以认为 是 ETL 工具, 数据采集,沟通 传统关系型数据库与hdfs的桥梁 (转化为 MR 操作)

wget https://mirrors.tuna.tsinghua.edu.cn/apache/sqoop/1.4.7/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gztar xzvf xxxmv xxx /usr/localcp ../apache-hive-2.3.5-bin/lib/mysql-connector-java-6.0.6.jar ./lib/./sqoop list-databases --connect jdbc:mysql://localhost:3306?serverTimezone=UTC --username root -password root123

636379-20190615190824159-60446952.png

636379-20190615190901294-702839149.png

636379-20190615191135406-958608249.png

636379-20190615191249017-233840783.png

636379-20190617124118841-1291463425.png

636379-20190617124741364-1671382026.png

636379-20190617124829882-642222030.png

636379-20190617125011386-217478361.png

636379-20190617125054316-1688001483.png

636379-20190617125146901-684975529.png

636379-20190617131947976-209926657.png

presto 安装

wget https://repo1.maven.org/maven2/com/facebook/presto/presto-cli/0.212/presto-cli-0.212-executable.jarwget https://repo1.maven.org/maven2/com/facebook/presto/presto-server/0.212/presto-server-0.212.tar.gz

636379-20190617150902557-294535908.png

636379-20190617151622194-1900018173.png

636379-20190617151810477-284915372.png
636379-20190617152013007-1769569270.png

总结

hive sql  映射成为 map reduce hive bin 目录下常用命令sqoop  命令详细  导入导出, list 等presto

转载于:https://www.cnblogs.com/Frank99/p/11028413.html

你可能感兴趣的文章
Ping 命令的使用方法总结
查看>>
python基础--01安装
查看>>
Spring boot配置mybatis多数据源
查看>>
获取系统的相关文件夹
查看>>
PAT-乙级-1008. 数组元素循环右移问题 (20)
查看>>
OpenCV 传统分割测试
查看>>
Springboot拦截器线上代码失效
查看>>
WCF初探-2:手动实现WCF程序
查看>>
好程序员技术分享html5和JavaScript的区别
查看>>
好程序员web前端分享CSS3文本属性
查看>>
ThinkPHP3.0启动过程
查看>>
Java入门 之 类和对象(一) - 类
查看>>
16级第二周寒假作业E题
查看>>
Java实现Windows锁屏
查看>>
在线会话管理
查看>>
文本处理之可视化wordcloud
查看>>
SampleManager(赛默飞)
查看>>
堆排序
查看>>
我的面试问题记录
查看>>
函数PARSENAME使用和截取字符串
查看>>