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的基本使用教程~的更多相关文章

  1. Hive/Hbase/Sqoop的安装教程

    Hive/Hbase/Sqoop的安装教程 HIVE INSTALL 1.下载安装包:https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-2.3 ...

  2. Centos搭建mysql/Hadoop/Hive/Hbase/Sqoop/Pig

    目录: 准备工作 Centos安装 mysql Centos安装Hadoop Centos安装hive JDBC远程连接Hive Hbase和hive整合 Centos安装Hbase 准备工作: 配置 ...

  3. 3.12-3.16 Hbase集成hive、sqoop、hue

    一.Hbase集成hive https://cwiki.apache.org/confluence/display/Hive/HBaseIntegration 1.说明 Hive与HBase整合在一起 ...

  4. Sqoop_具体总结 使用Sqoop将HDFS/Hive/HBase与MySQL/Oracle中的数据相互导入、导出

    一.使用Sqoop将MySQL中的数据导入到HDFS/Hive/HBase watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYWFyb25oYWRvb3A=/ ...

  5. hbase结合hive和sqoop实现数据指导mysql

    hive综合hbase两个优势表中的:     1.实现数据导入到MYSQL.     2.实现hbase表转换为另外一张hbase表.  三个操作环节:      1.hbase关联hive作为外部 ...

  6. sqoop的导入|Hive|Hbase

    导入数据(集群为对象) 在Sqoop中“导入”概念指:从非大数据集群(RDBMS)向大数据集群(HDFS,HIVE,HBASE)中传输数据,叫做:导入,即使用import关键字. 1 RDBMS到HD ...

  7. sqoop1.4.6从mysql导入hdfs\hive\hbase实例

    //验证sqoop是否连接到mysql数据库sqoop list-tables --connect 'jdbc:mysql://n1/guizhou_test?useUnicode=true& ...

  8. CDH5上安装Hive,HBase,Impala,Spark等服务

    Apache Hadoop的服务的部署比較繁琐.须要手工编辑配置文件.下载依赖包等.Cloudera Manager以GUI的方式的管理CDH集群,提供向导式的安装步骤.因为须要对Hive,HBase ...

  9. Hive HBase Integration 集成

    官方文档:https://cwiki.apache.org/confluence/display/Hive/HBaseIntegration 1.在hive/lib目录下找到hive-hbase-ha ...

随机推荐

  1. 【java】Comparator的用法

    文章转载自: http://blog.csdn.net/u012250875/article/details/55126531 1.为什么写? comparator 是javase中的接口,位于jav ...

  2. CentOS7 上安装 MySQL 5.7

    1.下载如下rpm文件: mysql-community-common-5.7.17-1.el7.x86_64.rpm mysql-community-libs-5.7.17-1.el7.x86_64 ...

  3. webpack踩坑之路 (2)——图片的路径与打包

    刚开始用webpack的同学很容易掉进图片打包这个坑里,比如打包出来的图片地址不对或者有的图片并不能打包进我们的目标文件夹里(bundle).下面我们就来分析下在webpack项目中图片的应用场景. ...

  4. 解决Android Studio卡在Gradle:Resolve dependecies 'app:_debugCompile'问题

    转载: http://blog.csdn.net/callzjy/article/details/53662073 该死的破墙,我被恶心了一个晚上. 做墙的技术员,TMD的能不能上点心,至少把技术网站 ...

  5. 如何通过 Terminal 设置截图存储的位置

    由于截图的默认位置是存储在 desktop 上的,而 desktop 又是我们经常见的地方,有一个干净的界面对良好的电脑的体验非常重要,那么可以通过改变截图的默认的存储位置来改变.而改变这一路径需要用 ...

  6. 解释变量(Explanatory Variable)

    转自:http://www.statisticshowto.com/explanatory-variable/ What is an Explanatory Variable? An explanat ...

  7. logstash配置文件

    1. 安装  logstash 安装过程很简单,直接参照官方文档: https://www.elastic.co/guide/en/logstash/current/installing-logsta ...

  8. 漏洞复现——tomcat远程代码执行漏洞

    漏洞描述: 当存在该漏洞的Tomcat 运行在 Windows 主机上,且启用了 HTTP PUT请求方法,攻击者可通过构造的攻击请求向服务器上传包含任意代码的 JSP 文件,造成任意代码执行 影响范 ...

  9. Django之转发和重定向

    https://blog.csdn.net/gscsd_t/article/details/79389167 转发和重定向: 转发:一次请求和响应,请求的地址没有发生变化,如果此时刷新页面,就会出现重 ...

  10. JavaScript工具函数集

    /** * [getQueryStringArgs 用以解析查询字符串] * @return {[Object]} [一个包含所有参数的对象] */ function getQueryStringAr ...