Hive/hbase/sqoop的基本使用教程~
Hive/hbase/sqoop的基本使用教程~
###Hbase基本命令
start-hbase.sh #启动hbase
hbase shell #进入hbase编辑命令
list #列出当前所有的表(tablename)
create 'test','name' #创建一张名为test的表,并且表中只有一列 name
put 'test','row1','name:zhangsan','zs' #往test表中插入数据,行标识为row1
put 'test','row2','name:lisi','ls' #往test表中插入数据,行标识为row2
插入数据时,行标识可以相同,例如:
put 'test','row1','name:zhangsan','zs'
put 'test','row1','name:zhangsan1','zs1' #两条数据都存入数据库
如果行标识相同,列数据也相同时 后面的value值会被覆盖
put 'test','row1','name:zhangsan','zs'
put 'test','row1','name:zhangsan','ls' #只会有一条数据,value值为ls的存入数据库
scan 'test' ##查看当前test表中数据信息
get 'test','row1' #查看test表中行标识为row1的数据信息
delete 'test','row1','name:zhangsan' #删除行标识为row1,name:zhangsan 的数据
disable 'test' #禁用test表
drop 'test' #删除test表
exit #退出hbase shell
#HIVE UDF 用户自定义函数
1、创建maven项目,pom.xml引入如下依赖:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.imodule.hive</groupId>
<artifactId>hivedemo</artifactId>
<version>1.0</version>
<packaging>jar</packaging> <dependencies>
<dependency>
<groupId>jdk.tools</groupId>
<artifactId>jdk.tools</artifactId>
<version>1.8</version>
<scope>system</scope>
<systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.7.7</version>
</dependency>
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-exec</artifactId>
<version>2.3.3</version>
</dependency>
</dependencies>
</project>
2、编写Java类,继承 org.apache.hadoop.hive.ql.exec.UDF类 #一个类中可以有多个方法,但是方法名必须为 evaluate,可以进行重载
public class HiveApplication extends UDF
package com.imodule.hive.hivedemo; import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.hive.ql.udf.UDFSin;
import org.apache.hadoop.io.Text; /**
* Hello world!
*
*/
public class HiveApplication extends UDF
{
public Text evaluate(String text){
if(text != null){
return new Text("hello,mygirl"+text);
}else{
return new Text("hello,mygirl");
}
} public Text evaluate(String text,String OBJ,int inta){
return new Text(text+OBJ+Integer.valueOf(inta));
} }
3、在类中定义函数 ##注意方法名一定要为 evaluate ,入参和出参可以自定义
public Text evaluate(String text){
if(text != null){
return new Text("hello,mygirl"+text);
}else{
return new Text("hello,mygirl");
}
}
4、将maven项目打包为jar包
mvn clean install
5、在linux上输入hive命令,启动hive
***生成临时函数,会话级别的调用
>hive #进入hive
>add jar /home/imodule/hivedemo-1.0.jar; #上传jar包
>create temporary function myfun as 'com.imodule.hive.hivedemo.HiveApplication'; #取函数调用的别名 myfun
>select mname ,myfun(mname) from m_user1; #调用函数 ps:调用的时候需要使用数据去一一对应方法的参数类型个数 evaluate(String text)
>select 'username',myfun('zs') from m_user1;
>select mname ,myfun(mname,mname,mid) from m_user1; #调用函数 ps:调用的时候需要使用数据去一一对应方法的参数类型以及个数 evaluate(String text,String OBJ,int inta)
***生成永久函数,随时都可以调用
>hadoop dfs -mkdir /user/imodule/hive_jars #在hdfs文件系统中创建文件目录 hive_jars
>hadoop dfs -put /home/imodule/hivedemo-1.0.jar /user/imodule/hive_jars/ #将jar上传到hdfs文件系统
>hive #进入hive
>create function myfun as 'com.imodule.hive.hivedemo.HiveApplication' using jar 'hdfs://SHDCL40111:9000//user/imodule/hive_jars/hivedemo-1.0.jar'; #引用hdfs文件系统的jar创建永久函数
>select mname ,myfun(mname) from m_user1; #调用函数 ps:调用的时候需要使用数据去一一对应方法的参数类型个数 evaluate(String text)
HIVE的基本操作:
hive #进入hive命令编辑界面
show databases; #查看所有的库
show tables; #查看当前库中的所有的表
create database test; #创建数据库名为test
create table user1(id int,name String); #创建一个只有ID,name两个字段的表,hive还可以创建分区表,外部表啥的,这里只演示一个最简单的哈
insert into user1 values(1,'zs'); #往表中插入数据
select * from user1; #查看表中的数据
insert overwrite table user1 select * from user1 where XXX; #这是删除操作,xxx是你想保留的数据的条件。
insert overwrite table user1 select * from user1 where 1=0; #删除user1表中的所有数据
drop table user1 ; #删除表
###hadoop执行jar的命令:
hadoop jar hadoopDemo-2.7.7.jar /input /output_tmp
hadoop dfs -mkdir /input #在hdfs文件系统中创建文件目录 /input
hadoop dfs -put file.txt /input #将本地的file.txt文件上传到hadoop的hdfs文件系统
hadoop dfs -get /input/* #从hadoop系统中下载input目录下的所有文件到本地
hadoop dfs -rmr /input/* #删除hadoop的hdfs文件系统中的 input目录下的所有文件
###sqoop从mysql库中导入数据到hive库
sqoop import \
--connect jdbc:mysql://10.28.85.148:3306/data_mysql2hive?useSSL=false \
--username root \
--password Abcd1234 \
--table m_user2 \
-m 1 \
--hive-import \ #导入hive库命令
--create-hive-table \ #创建hive表命令
--hive-table m_user2 #命名hive库中的表名为 m_user2
###测试sqoop的连接
sqoop list-databases \
--connect jdbc:mysql://10.28.85.148:3306/data_mysql2hive \
--username root \
--password Abcd1234
Hive/hbase/sqoop的基本使用教程~的更多相关文章
- Hive/Hbase/Sqoop的安装教程
Hive/Hbase/Sqoop的安装教程 HIVE INSTALL 1.下载安装包:https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-2.3 ...
- Centos搭建mysql/Hadoop/Hive/Hbase/Sqoop/Pig
目录: 准备工作 Centos安装 mysql Centos安装Hadoop Centos安装hive JDBC远程连接Hive Hbase和hive整合 Centos安装Hbase 准备工作: 配置 ...
- 3.12-3.16 Hbase集成hive、sqoop、hue
一.Hbase集成hive https://cwiki.apache.org/confluence/display/Hive/HBaseIntegration 1.说明 Hive与HBase整合在一起 ...
- Sqoop_具体总结 使用Sqoop将HDFS/Hive/HBase与MySQL/Oracle中的数据相互导入、导出
一.使用Sqoop将MySQL中的数据导入到HDFS/Hive/HBase watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYWFyb25oYWRvb3A=/ ...
- hbase结合hive和sqoop实现数据指导mysql
hive综合hbase两个优势表中的: 1.实现数据导入到MYSQL. 2.实现hbase表转换为另外一张hbase表. 三个操作环节: 1.hbase关联hive作为外部 ...
- sqoop的导入|Hive|Hbase
导入数据(集群为对象) 在Sqoop中“导入”概念指:从非大数据集群(RDBMS)向大数据集群(HDFS,HIVE,HBASE)中传输数据,叫做:导入,即使用import关键字. 1 RDBMS到HD ...
- sqoop1.4.6从mysql导入hdfs\hive\hbase实例
//验证sqoop是否连接到mysql数据库sqoop list-tables --connect 'jdbc:mysql://n1/guizhou_test?useUnicode=true& ...
- CDH5上安装Hive,HBase,Impala,Spark等服务
Apache Hadoop的服务的部署比較繁琐.须要手工编辑配置文件.下载依赖包等.Cloudera Manager以GUI的方式的管理CDH集群,提供向导式的安装步骤.因为须要对Hive,HBase ...
- Hive HBase Integration 集成
官方文档:https://cwiki.apache.org/confluence/display/Hive/HBaseIntegration 1.在hive/lib目录下找到hive-hbase-ha ...
随机推荐
- bootstrap的渲染机制
bootstrap的渲染机制. http://www.cnblogs.com/djtao/p/5942620.html 源码解析: http://www.cnblogs.com/ahole/p/588 ...
- Python中read()、readline()和readlines()三者间的区别和用法
2019-01-15 10:48:43 前言 众所周知在python中读取文件常用的三种方法:read(),readline(),readlines(),今天看项目是又忘记他们的区别了.以前看书的时候 ...
- gooreplacer 很好用
国内上 StackOverflow, hackernews 之类的站点会慢. 因为页面里有链接指向 google 谷歌, 会被墙. 于是拖累了整个页面的显示. gooreplacer 可以把这些被墙连 ...
- HeadFirst Ruby 第十章总结 Comparable & Enumerable
导言 这一章的标题是 Ready-Made Mixes, 也就是 Ruby 已经准备好的用于 Mix-in 的 Modules, 它们是: Comparable 和 Enumerable, Compa ...
- 最简单的网络图片的爬取 --Pyhon网络爬虫与信息获取
1.本次要爬取的图片的url http://www.nxl123.cn/static/imgs/php.jpg 2.代码部分 import requestsimport osurl = "h ...
- 20170906xlVBA_RecursionGetFiles
Dim Dic As Object Sub GetFileName() Dim FolderPath As String Set Dic = CreateObject("Scripting. ...
- Selenium自动化测试框架入门整理
关注嘉为科技,获取运维新知 本文主要针对Selenium自动化测试框架入门整理,只涉及总体功能及框架要点介绍说明,以及使用前提技术基础要求整理说明.作为开发人员.测试人员入门参考. 本文参考:Se ...
- p1530 Fractions to Decimals
将余数记录下来,如果余数相同,那么商的下一位也相同. #include <iostream> #include <cstdio> #include <cmath> ...
- MyEclipse6.5的反编译插件的安装
常用的几种反编译工具 1. JD-GUI[推荐] JD-GUI是属于Java Decompiler项目(JD项目)下个的图形化运行方式的反编译器.JD-Eclipse属于Java Decompiler ...
- Kindergarten CodeForces - 484D (贪心,好题)
大意: 给定序列, 求划分为若干段, 使得总贡献最大, 每段的贡献为max-min 可以发现最优解一定是连续一段递增或递减, 然后dp即可. #include <iostream> #in ...