目录:
一、本地数据集上传到数据仓库Hive
二、Hive的基本操作
三、Hive、Mysql、HBase数据互导

正文:
一、本地数据集上传到数据仓库Hive
1.实验数据集的下载
2.数据集的预处理
⁃ 1)删除文件第一行记录
⁃ sed -i ‘1d’ filename #1d表示删除第一行,同理,nd表示删除第n行
⁃ 2)对字段进行预处理
3.把得到的.txt文件导入Hive
基本思路:先将.txt文件上传到分布式文件系统HDFS,然后在Hive中创建一个外部表,完成导入
• 1)启动HDFS
• jps #该命令用于查看当前运行的进程
• 2)启动Hadoop
⁃ cd /usr/local/hadoop/sbin #进入/hadoop/sbin文件夹下运行
⁃ ./start-all.sh
• 3)启动mysql(这一步不需要,只是备注)
• sudo service mysql start
• 4)把.txt本地文件上传到HDFS中
• cd /usr/local/hadoop
• ./bin/hdfs dfs -mkdir -p /bigdatacase/dataset #在HDFS的根目录下面创建一个新的目录bigdatacase,并在这个目录下创建一个子目录dataset
• ./bin/hdfs dfs -put /本地文件存放的目录/filename /bigdatacase/dataset
• ./bin/hdfs dfs -cat /bigdatacase/dataset/filename | head -5 #查看hdfs上文件的前五行

(./bin/hdfs dfs 可以直接换成 hadoop fs)

二、Hive的基本操作
1.在Hive上创建数据库
• 1)启动Hive(前提需要首先启动Hadoop、Mysql)
• cd /usr/local/hive
• ./bin/hive
• (可以直接在终端窗口输入hive,进入hive命令行)
• 2)创建数据库
• create databases name;
• 3)创建外部表
• create external table db.data(id int, uid string, data date) comment ‘Welcome’ row format delimited fields terminated by ‘\t’ stored as textfile location ‘/bigdatacase/dataset';
• show create table data; #查看表的各种属性
• desc data; #查看表的简单结构
2.Hive的查询语句
• 1)嵌套查询+取别名
• select e.bh, e.it from (select behavior_type as bh, item_category as it from bigdata_user) as e limit 20;
• 2)统计分析
• >聚合函数count()
• select count() from data;
• >去重distinct
• select count(distinct id) from data;
• >例:查询不重复的数据有多少条
• select count(
) from (select id,status,loc from data group by id,status,loc having count(*)=1) a

注意:嵌套语句最好取别名,就是上面的a,否则很容易出现如下错误.

• 3)关键字条件查询
• select count() from bigdata_user where behavior_type='1' and visit_date<'2014-12-13' and visit_date>'2014-12-10';
• select count(distinct uid), day(visit_date) from bigdata_user where behavior_type='4' group by day(visit_date);
• select count(
) from bigdata_user where province='江西' and visit_date='2014-12-12' and behavior_type='4';
• 4)根据用户行为分析
• select count() from bigdata_user where visit_date='2014-12-11'and behavior_type='4'; #查询有多少用户在2014-12-11购买了商品
• select count(
) from bigdata_user where visit_date ='2014-12-11'; #查询有多少用户在2014-12-11点击了该店
• select count() from bigdata_user where uid=10001082 and visit_date='2014-12-12'; #查询用户10001082在2014-12-12点击网站的次数
• select count(
) from bigdata_user where visit_date='2014-12-12'; #查询所有用户在这一天点击该网站的次数
• select uid from bigdata_user where behavior_type='4' and visit_date='2014-12-12' group by uid having count(behavior_type='4')>5; #查询某一天在该网站购买商品超过5次的用户id
• 5)用户实时查询分析
• create table scan(province STRING,scan INT) COMMENT 'This is the search of bigdataday' ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' STORED AS TEXTFILE; #创建新的数据表进行存储
• insert overwrite table scan select province,count(behavior_type) from bigdata_user where behavior_type='1' group by province; #导入数据
• select * from scan; #显示结果

三、Hive、Mysql、HBase数据互导
1.准备工作
• 1)启动Hadoop、Mysql、Hive
• 2)新建一个临时表,把另一个表的数据插入进去
• create table data2 like data;
• insert overwrite table db.data2 select * from data;
2.使用Sqoop将数据从Hive导入到Mysql
• 1)登陆Mysql,并创建数据库、表
• mysql -u root -p
• create database db;
• use db;
• show variables like "char%"; #查看数据库的编码
• set character_set_server=utf8 #设置当前编码为utf8,保证中文的正常导入
• create table data(id int,status int,uid` varchar(50)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
• exit #退出
• 2)导入数据(进入sqoop的目录运行)
• ./bin/sqoop export ##表示数据从 hive 复制到 mysql 中
• --connect jdbc:mysql://localhost:3306/数据库名
• --username root #mysql登陆用户名
• --password strongs #登录密码
• --table data #mysql 中的表,即将被导入的表名称
• --export-dir '/user/hive/warehouse/dblab.db/user_action ' #hive 中被导出的文件
• --input-fields-terminated-by ‘.’
• --fields-terminated-by '\t' #Hive 中被导出的文件字段的分隔符
3.使用Sqoop将数据从Mysql导入HBase
• 1)启动Hadoop、MySQL
• 2)启动HBase和HBase shell(进入/hbase目录)
• ./bin/start-hbase.sh
• ./bin/hbase shell
• 3)创建表
• create 'user_action', { NAME => 'f1', VERSIONS => 5} #创建了一个user_action表,这个表中有一个列族f1(你愿意把列族名称取为其他名称也可以,比如列族名称为userinfo),历史版本保留数量为5。
• 4)导入数据(新开一个页面,进入sqoop的目录运行)
• ./bin/sqoop import
• --connect jdbc:mysql://localhost:3306/dblab
• --username root
• --password hadoop
• --table user_action
• --hbase-table user_action #HBase中表名称
• --column-family f1 #列簇名称
• --hbase-row-key id #HBase 行键
• --hbase-create-table #是否在不存在情况下创建表
• -m 1 #启动 Map 数量
• 5)查看导入的数据(切换到HBase Shell运行到窗口)
• scan 'user_action',{LIMIT=>10}

Hadoop生态体系组件的更多相关文章

  1. Hadoop生态体系

    Hadoop路线 HDFS  分布式文件系统 MapReduce  分布式编程框架 ZooKeeper  分布式协调框架 Hive  非关系型数据仓库 Flume  日志采集框架

  2. Hadoop从入门到精通系列之--0.Hadoop生态体系

    https://blog.csdn.net/Haidaiya/article/details/84568588#%E4%B8%80%20%E5%A4%A7%E6%95%B0%E6%8D%AE%E7%9 ...

  3. Hadoop学习-生态体系(ecosystem)概览

    0. 大背景 全球No.1搜索引擎公司谷歌(Google)面临每天海量搜索引擎数据的问题,经过长时间的实践积累, 谷歌形成了自己的大数据框架,但是并没有开源,而是发表了一篇论文,阐述了自己的思想,在论 ...

  4. Hadoop优势,组成的相关架构,大数据生态体系下的模式

    Hadoop优势,组成的相关架构,大数据生态体系下的模式 一.Hadoop的优势 二.Hadoop的组成 2.1 HDFS架构 2.2 Yarn架构 2.3 MapReduce架构 三.大数据生态体系 ...

  5. Hadoop生态圈-大数据生态体系快速入门篇

    Hadoop生态圈-大数据生态体系快速入门篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.大数据概念 1>.什么是大数据 大数据(big data):是指无法在一定时间 ...

  6. Hadoop演进与Hadoop生态

    1.了解对比Hadoop不同版本的特性,可以用图表的形式呈现. (1)0.20.0~0.20.2: Hadoop的0.20分支非常稳定,虽然看起来有些落后,但是经过生产环境考验,是 Hadoop历史上 ...

  7. Hadoop生态常用数据模型

    Hadoop生态常用数据模型 一.TextFile 二.SequenceFile 1.特性 2.存储结构 3.压缩结构与读取过程 4.读写操作 三.Avro 1.特性 2.数据类型 3.avro-to ...

  8. 安装高可用Hadoop生态 (一 ) 准备环境

    为了学习Hadoop生态的部署和调优技术,在笔记本上的3台虚拟机部署Hadoop集群环境,要求保证HA,即主要服务没有单点故障,能够执行最基本功能,完成小内存模式的参数调整. 1.    准备环境 1 ...

  9. 第一周-----Java 的核心优势和生态体系——程序员们希望他们编写的程序能够运行在不同的机器,不同的环境中,这需要一种体系中立的语言(即跨平台)。

    跨平台是Java 语言的核心优势,赶上最初互联网的发展,并随着互联网的发展而发展,建立了强大的生态体系,目前已覆盖IT各个行业的“第一大语言,称为IT界的英语”

随机推荐

  1. Spring Security OAuth2 Demo —— 授权码模式

    本文可以转载,但请注明出处https://www.cnblogs.com/hellxz/p/oauth2_oauthcode_pattern.html 写在前边 在文章OAuth 2.0 概念及授权流 ...

  2. Ubuntu 18.04 LTS上安装NFS服务器和客户端

    NFS是基于UDP/IP协议的应用,其实现主要是采用远程过程调用RPC机制,RPC提供了一组与机器.操作系统以及低层传送协议无关的存取远程文件的操作.RPC采用了XDR的支持.XDR是一种与机器无关的 ...

  3. 卸载&&更新docker(ubuntu)

    卸载docker: apt-get purge lxc-docker apt-get autoremove 更新docker: apt-get update apt-get install lxc-d ...

  4. Node升级——Node Binary管理模块"n"

    Node.js的开发非常活跃,它的最新稳定版本也频繁变化,你不时会发现,一个模块不能在你当前的Node版本上使用,此时你需要升级Node 幸运的是,可以用一种非常简单的方法来管理你的Node版本,即使 ...

  5. 2019沈阳icpc网络赛H德州扑克

    题面:https://nanti.jisuanke.com/t/41408 题意:A,2,3,4,5,6,7,8,9,10,J,Q,K,13张牌,无花色之分,val为1~13. 给n个人名+n个牌,输 ...

  6. 初探hook的键盘获取

    初探hook的键盘获取 import pyHook import pythoncom class e(): keyIsPressed = False #键盘是否按下 按住.. def onKeyDow ...

  7. python做单因素方差分析

    方差分析的主要功能就是验证两组样本,或者两组以上的样本均值是否有显著性差异,即均值是否一样. 这里有两个大点需要注意:①方差分析的原假设是:样本不存在显著性差异(即,均值完全相等):②两样本数据无交互 ...

  8. LNMP架构的搭建

    第9章 LNMP架构的搭建 9.1 什么是LNMP 9.1.1 LNMP的组成 L                linux N                nginx:实现静态的服务处理 M    ...

  9. Linux基础 - Crontab定时任务

    目录 设置Cron任务 创建任务 设置运行周期 配置命令 常见问题 如何列出所有的Cron任务 如何查看Cron任务运行log 如何配置带有虚拟venv的Python脚本 如何在Cron 任务中发送邮 ...

  10. art-template模板判断

    1.添加模板 <script id="userinfo" type="text/template">           {{ if id == n ...