• 大数据第三天


    大数据第三天
    
    1.HBase————分布型数据库(NoSQL)
    	1.表  存储管理数据
    	2.行键	类似关系型数据库中的主键  HBase自带  一般为查询比较多的列
    	3.列族  列的集合   在定义表时指定的
    	4.时间戳 列的一个属性  如果不指定时间戳,默认取最新的数据
    	5.优点
    		1.海量数据秒级简单查询
    		2.并行查询
    	6.特殊表
    		-ROOT- 记录.META表的Region信息,只有一个region
    		.META  记录用户表的Region信息,可以有多个region
    	7.查询请求过程
    		zookeeper->-ROOT- ->.META -> 最终位置
    	8.安装
    		1.解压安装包
    		2.添加HBase环境变量 /etc/profile
    		3.修改配置文件
    			hbase-env.sh
    			hbase-site.xml
    		4.启动
    			启动前需保证已经启动hadoop
    		5.验证
    			jps查看进程 分别是HMaster/HRegionServer/HQuorumPeer
    			web:   hadoop:60010
    	9.shell使用
    		1.创建表  create
    		2.添加记录 put
    		3.查看记录 get
    		4.删除记录 delete
    		5.更改记录 重写覆盖
    		6.查询记录总数 count
    		7.删除表 先disable 再drop
    		8.查看表结构 desc 
    	10.javaAPI
    		1.导入jar包
    		2.得到Configuration对象
    		3.创建表/删除表使用HBaseAdmin对象
    		4.插入记录、查询记录使用HTable对象
    	11.	HDFS数据导入HBase	
    	
    2.Hive————SQL to MR
    	1.简介
    		hive是一个sql解析引擎,可以把sql查询转换成mr中的job来运行
    	2.安装
    		1.解压安装包
    		2.配置hive环境变量 /etc/profile
    		3.修改配置文件
    			hive-site.xml/hive-env.sh/hive-config.sh
    		4.修改hadoop配置文件
    			hadoop-env.sh
    		5.拷贝mysql jdbc连接jar到lib目录下
    	3.安装mysql(用于存储元信息)
    	4.配置hive连接mysql(通过jdbc方式)
    	5. 内部表
    	   CREATE TABLE t1(id int);  
    	   LOAD DATA LOCAL INPATH '/root/id' INTO TABLE t1; 
    	   CREATE TABLE t2(id int, name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '	';
    	6. 分区表
    	   CREATE TABLE t3(id int) PARTITIONED BY (day int);  
    	   LOAD DATA LOCAL INPATH '/root/id' INTO TABLE t1 PARTITION (day=22);   
    	7. 桶表
    	   create table t4(id int) clustered by(id) into 4 buckets; 
    	   set hive.enforce.bucketing = true;
    	   insert into table t4 select id from t3;
    	8. 外部表
    	   create external table t5(id int) location '/external';  
    	9.UDF————用于自定义函数
    		1.继承org.apache.hadoop.hive.ql.UDF
    		2.实现evaluate函数,evaluate函数支持重载
    		3.注:UDF只能实现一进一出的操作,如果需要实现多进一出,则需要实现UDAF
    		
    	
    3.Pig————PLain to MR
    	1.安装
    		1.解压安装包
    		2.配置pig环境变量 /etc/profile
    		3.修改配置文件——pig.properties
    		4.即可使用,具体使用详情可度娘(重点不在这,在Hive)
    
    4.Zookeeper————集群资源管理和保证节点数据的事务性、完整性
    	4.1 leader  负责进行投票的发起和决议,更新系统状态
    	4.2 learner	 包括follower和observer
    			其中:
    					follower用于接受客户端请求并向客户端返回结果,在选主过程中参与投票
    					observer用于接受客户端连接,将写请求转发给leader,但其不参加投票过程,只同步leader的状态
    	4.3 client	请求发起方	
    	
    5.Mahout————基于MR开发的数据挖掘和机器学习库	
    	5.1 聚类算法
    		将类似的对象划分成多个类的算法
    			以k-means算法为例
    				思想:
    					a.给定聚类个数K
    					b.按照数据特征,将其分为k个类别
    				步骤:
    					1.提取feadture
    					2.将feadture向量化
    					3.利用K-means算法实现聚类
    	5.2 分类算法
    		有监督机器学习算法,需提供样本,根据样本得到分类模型
    			步骤:
    				1.训练样本,得到分类模型
    				2.对分类模型进行测试,并尝试调优
    				3.将分类模型用于线上产品中
    	5.3 推荐算法
    
    6.Flume————分布式日志收集框架
    	1.agent是一个java进程,运行在日志收集节点
    		a.source组件是专用于收集日志文件,收集数据后临时存放在channel中
    		b.channel组件是用于临时存储数据
    		c.sink组件是用于把数据发送到目的地的
    		d.event组件是数据传输中的数据流
    	2.安装
    		1.解压包
    		2.配置环境变量 /etc/profile
    		3.修改配置文件
    			配置source1
    			配置channel1
    			配置sink1
    			详情参考配置文件模板
    		3.运行flume-ng.sh
    7.sqoop————对数据进行导入导出
    	1.安装
    		1.解压包
    		2.配置环境变量 /etc/profile
    		3.修改配置文件
    			sqoop-env.sh/sqoop-site.xml
    		4.拷贝mysql jdbc连接jar到lib目录下
    	2.使用		
    		1.从mysql->hdfs中(默认导出路径是hdfs根目录下/user/root(当前登陆用户)中)
    			sqoop import --connect "jdbc:mysql://hadoop:3306/test?useUnicode=true&characterEncoding=utf-8" --username root --password root --table t_test --fields-terminated-by '	' --null-string '**'	
    				--connect  关系型数据库连接url
    				--username  用户名
    				--password	密码
    				--table		表名
    				--fields-terminated-by	导出时字段分隔符
    				--null-string			导出时字段为空替换符(如果不设置这项,若字段为空,会报错)		
    		2.从hdfs->mysql中(默认导出路径是hdfs根目录下/user/root(当前登陆用户)中)
    			sqoop export --connect "jdbc:mysql://hadoop:3306/test?useUnicode=true&characterEncoding=utf-8" --username root --password root --table t_test --fields-terminated-by '	' --export-dir 'ids'
    				--export-dir 导入目录
    		3.增量导入导出
    			--check-column  检查列
    			--last-value	最后存储的值
    			--incremental append 增加方式
    		4.添加任务————将常用的语句添加到任务
    			sqoop job --create myjob -- export --connect "jdbc:mysql://hadoop:3306/test?useUnicode=true&characterEncoding=utf-8" --username hive --password hive --table stock_detail --fields-terminated-by '	' --export-dir 'stock_detail'
    		5.运行任务
    			sqoop job --exec 任务名(注意配置免密码,不然需要输入mysql的密码,注意是mysql数据库用户密码而不是linux的)
    		6.查看任务
    			sqoop job --list
    		6.删除任务
    			sqoop job --delete
    		7.设置免密码
    			配置文件site.xml  
    				sqoop.metastore.client.record.password 打开这项,默认是注释的
    		8.事务处理
    			以Mapper任务为单位
    		
    		
    		
    		
    		
    		
    		
    		
    		
    		
    		
    		
    		
    		
    		
    		
    		
    		
    		
    		
    
    	
    

      

  • 相关阅读:
    SQLServer之视图简介
    几种快速以伺服静态文件的方法
    Node.js静态文件服务器实战[转]
    mac ssh中文乱码解决
    SSH上传和下载文件
    在web项目中集成pdf.js的默认查看器
    用pip批量更新所有包
    C# 异步锁【转】
    .NET 4并行编程入门之Task的取消[转]
    VIM技巧:选择文本块
  • 原文地址:https://www.cnblogs.com/ciade/p/5017778.html
Copyright © 2020-2023  润新知