BigData-13:Hive

数据分析引擎:Hive

Hive安装
1)下载安装包
http://hive.apache.org/downloads.html
2)上传安装包
alt+p
3) 解压
tar -zxvf .tar
4) 修改配置文件
vi hive-env.sh

HADOOP_HOME=/root/hd/hadoop-2.8.4
export HIVE_CONF_DIR=/root/hd/hive/conf
  1. 启动hive前启动hadoop集群
    start-dfs.sh
    start-yarn.sh
    start-all.sh
  2. 在hdfs上创建文件夹
    hdfs dfs -mkdir /tmp
    hdfs dfs -mkdir -p /user/hive/warehouse/
  3. 启动hive
    bin/hive
    hive测试
    1)查看数据库
    show databases;
  4. 使用数据库
    use default;
  5. 查看表
    show tables;
  6. 创建表
    create table itstar(id int,name string);
    5)插入数据
    insert into itstar values(1,"hunter");
  7. 查询
    select * from itstar;
  8. 删除表
    drop table itstar;
  9. 退出终端
    quit;
    操作数据
    1)准备数据
    vi istar.txt
1 hunter
2 zhangsan
3 delireba
4 yangmi
5 baby

2)创建hive表
create table itstar(id int,name string) row format delimited fields terminated by "\t";
3)加载数据
load data local inpath '/root/itstar.txt' into table itstar;
update user set password=password(‘root’) where user=’root’;

配置hive元数据到mysql

1)驱动拷贝
拷贝mysqlconnectorjava5.1.27bin.
jar到/root/hd/hive/lib/下
2)配置Metastore到MySql
-》在/root/hd/hive/conf目录下创建一个hive-site.xml
-》根据官方文档配置参数,拷贝数据到hive-site.xml文件中(hive/conf/下创建文件)

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
	<name>javax.jdo.option.ConnectionURL</name>
	<value>jdbc:mysql://hd-01:3306/metastore?createDatabaseIfNotExist=t
rue</value>
	<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
	<name>javax.jdo.option.ConnectionDriverName</name>
	<value>com.mysql.jdbc.Driver</value>
	<description>Driver class name for a JDBC metastore</description>
</property>
<property>
	<name>javax.jdo.option.ConnectionUserName</name>
	<value>root</value>
	<description>username to use against metastore database</descriptio
n>
</property>
<property>
	<name>javax.jdo.option.ConnectionPassword</name>
	<value>root</value>
	<description>password to use against metastore database</descriptio
n>
</property>
</configuration>

hive数据类型
Java数据类型Hive数据类型长度

javahive描述
byteTINYINT1byte
shortSMALINT2byte
intINT4byte
longBIGINT8byte
floatFLOAT单精度浮点数
doubleDOUBLE双精度浮点数
stringSTRING字符
TIMESTAMP时间类型
BINARY字节数组

DDL数据定义
1)创建数据库
-》查看数据库
show databases;
-》创建数据库
create database hive_db;
-》创建数据库标准写法
create database if not exist db_hive;
-》创建数据库指定所在hdfs路径
create database hive_db1 location '/hive_db';
2)修改数据库
-》查看数据库结构
desc database hive-db;
-》添加描述信息
alter database hive_db set dbproperties('datais'='hunter');
-》查看拓展属性
desc database extended hive_db;
3)查询数据库
-》显示数据库
show databases;
-》筛选查询的数据库
show database like 'db*';
4)删除数据库
-》删除数据库
drop dabase hive_db;
-》删除数据库标准写法
drop database if exists hive_db;
5)创建表
-》创建表

 create table db_h(id int,name string)
 row format
 delimited fields
 terminated by "\t"

6)管理表(内部表)
不擅长做数据共享
删除hive中管理表,数据删除。
-》加载数据
load data local inpath '/root/hunter.txt' into table emp;
-》查询并保存到一张新的表
create table if not exists emp2 as select * from emp where name = 'hunter';
-》查询表结构
desc formatted emp;
Table Type: MANAGED_TABLE
7)外部表
hive不认为这张表拥有这份数据,删除该表,数据不删除。
擅长做数据共享
-》创建外部表

 create external table if not exists emptable(empno int,ename string,job
string,mgr int,birthdate string,sal double,comm double,deptno int)
 row format
 delimited fields
terminated by '\t';

-》导入数据
load data local inpath '/root/emp.txt' into table emp;
-》查看表结构
desc formatted emp;
Table Type: EXTERNAL_TABLE
-》删除表
drop table emptable;
注意“提示:再次创建相同的表 字段相同 将自动关联数据!”

8)分区表`
-》创建分区表

hive> create table dept_partitions(depno int,dept string,loc string)
> partitioned by(day string)
> row format delimited fields
> terminated by '\t';

-》加载数据
load data local inpath '/root/dept.txt' into table dept_partitions;
注意:不能直接导入需要指定分区
load data local inpath '/root/dept.txt' into table dept_partitions partit ion(day='1112') -》添加分区alter table dept_partitions add partition(day=‘1113’);-》单分区查询select * from dept_partitions where day=‘1112’;-》全查询select * from dept_partitions;-》查询表结构desc formatted dept_partitions;-》删除单个分区alter table dept_partitions drop partition(day=‘1112’);9)修改表 -》修改表名alter table emptable rename to new_table_name;-》添加列alter table dept_partitions add columns(desc string);-》更新列alter table dept_partitions change column desc desccc int;-》替换alter table dept_partitions replace column(desccc int);`

DML数据操作
1)向表中加载数据
load data local inpath '/root/itstar.txt' into table hunter;
2)加载hdfs中数据
load data inpath '/hunter,txt' into table hunter;
提示:相当于剪切,加载到表中之后HDFS中就没有数据文件了
3)覆盖原有的数据
load data local inpath '/root/itstar.txt' overwrite into table hunter;
4)创建分区表
create table hunter_partitions(id int,name string) partitioned by (month string) row format delimited fields terminated by '\t';
5)向分区表插入数据
insert into table hunter_partitions partition(month='201811') values(1,'t ongliya');
6)按照条件查询结果存储到新表
create table if not exists hunter_ppp as select * from hunter_partitions where name='tongliya';
7)创建表时加载数据

create table db_h(id int,name string)
> row format
> delimited fields
> terminated by "\t"
> location '';

8)查询结果导出到本地
hive> insert overwrite local directory '/root/datas/yangmi.txt' select * from h h where name='yangmi';

bin/hive -e 'select * from hunter' > /root/hunter.txt

hive> dfs -get /usr/hive/warehouse/00000 /root;
查询
1)配置查询头信息
在hive-site.xml

<property> <name>hive.cli.print.header
</name>
<value>true</value>
</property>
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
</property>

2)基本查询
-》全表查询
select * from empt;
-》查询指定列
select empt.empno,empt.empname from empt;
-》列别名
select ename name,empno from empt;
-》算数运算符
算数运算符描述Col3

  • 相加field3
    -相减field3
  • 相乘field3
    / 相除field3
    % 取余field3
    & 按位取与field3
    按位取或
    ^ 异或field3
    ~ 按位取反field3

》函数

(1)求行数count
select count(*) from empt;
(2)求最大值max
select max(empt.sal) sal_max from empt;
(3)求最小值
select min(empt.sal) sal_min from empt;
(4)求总和
select sum(empt.sal) sal_sum from empt;
(5)求平均值
select avg(empt.sal) sal_avg from empt;
(6)前两条
select * from empt limit 2;

-》where语句

(1)工资大于1700的员工信息
select * from empt where empt.sal > 1700;
(2)工资小于1800的员工信息
select * from empt where empt.sal < 1800;
(3)查询工资在1500到1800区间的员工信息
select * from empt where empt.sal between 1500 and 1800;
(4)查询有奖金的员工信息
select *from empt where empt.comm is not null;
(5)查询无奖金的员工信息
select * from empt where empt.comm is null;
(6)查询工资是1700和1900的员工信息
select * from empt where empt.sal in(1700,1900);

-》Like
使用like运算选择类似的值
选择条件可以包含字母和数字

(1)查找员工薪水第二位为6的员工信息
select * from empt where empt.sal like '_6%';
_代表一个字符
%代表0个或多个字符
(2)查找员工薪水中包含7的员工信息
select * from empt where empt.sal like '%7%';
-》rlike
select * from empt where empt.sal rlike '[7]';

-》分组

(1)Group By语句
计算empt表每个部门的平均工资
select avg(empt.sal) avg_sal,deptno from empt group by deptno;select
avg(empt.sal) avg_sal,deptno from empt group by deptno;
(2)计算empt每个部门中最高的薪水
select max(empt.sal) max_sal,deptno from empt group by deptno;
(3)求部门平均薪水大于1700的部门
select deptno,avg(sal) avg_sal from empt group by deptno having avg_sal>1
700;
注意:having只用于group by分组统计语句

-》Join操作

(1)等值join
根据员工表和部门表中部门编号相等,查询员工编号、员工名、部门名称
select e.empno,e.ename,d.dept from empt e join dept d on e.deptno=d.deptn
o;
(2)左外连接 left join
null
select e.empno,e.ename,d.dept from empt e left join dept d on e.deptno=d.
deptno;
(3)右外连接 right join
select e.empno,e.ename,d.dept from dept d right join empt e on e.deptno=
d.deptno;
(4)多表连接查询
查询员工名字、部门名称、员工地址
select e.ename,d.dept,l.loc_name from empt e join dept d on e.deptno=d.de
ptno join location l on d.loc = l.loc_no;
(5)笛卡尔积
为了避免笛卡尔积采用设置为严格模式
set hive.mapred.mode;
set hive.mapred.mode=strict;

-》排序

(1)全局排序 order by
查询员工信息按照工资升序排列
select * from empt order by sal asc;默认
select * from empt order by sal desc;降序
(2)查询员工号与员工薪水按照员工二倍工资排序
select empt.empno,empt.sal*2 two2sal from empt order by two2sal;
(3)分区排序
select * from empt distribute by deptno sort by empno desc;

-》分桶
分区表分的是数据的存储路径
分桶针对数据文件

(1)创建分桶表
create table emp_buck(id int,name string)
clustered by(id) into 4 buckets
row format
delimited fields
terminated by '\t';
(2)设置属性
set hive.enforce.bucketing=true;
(3)导入数据
insert into table emp_buck select * from emp_b;
注意:分区分的是文件夹 分桶是分的文件

hive的自定义函数

三种自定义函数:
UDF:一进一出(User-Defined-Function)
UDAF:多进一出 (count、max、min)
UDTF:一进多出
(1)导入hive依赖包
hive/lib下
(2)上传
alt+p
(3)添加到hive中
·add jar /root/lower.jar;·
(4)关联
create temporary function my_lower as "com.itstaredu.com.Lower";
(5)使用
select ename,my_lower(ename) lowername from empt;
Hive优化
-》压缩

(1)开启Map阶段输出压缩
开启输出压缩功能:
set hive.exec.compress.intermediate=true;
开启map输出压缩功能:
set mapreduce.map.output.compress=true;
设置压缩方式:
set mapreduce.map.output.compress.codec=org.apache.hadoop.io.compres
s.SnappyCodec;
(2)开启reduce输出端压缩
开启最终输出压缩功能
set hive.exec.compress.output=true;
开启最终数据压缩功能
set mapreduce.output.fileoutputformat.compress=true;
设置压缩方式
set mapreduce.output.fileoutputformat.compress.codec=org.apache.hadoo
p.io.compress.SnappyCodec;
设置块压缩
set mapreduce.output.fileoutputformat.compress.type=BLOCK;

-》存储
Hive存储格式:TextFile/SequenceFile/orc/Parquet
orc:Index Data/row Data/stripe Footer
压缩比:
orc > parquet > textFile
查询速度:
orc > textFile
50s > 54s
-》Group by优化
分组:mr程序,map阶段把相同key的数据分发给一个reduce,一个key的量很大。
解决方案:

在map端进行聚合(combiner)
set hive.map.aggr=true;

设置负载均衡
set hive.groupby.skewindata=true;

-》数据倾斜

(1)合理避免数据倾斜
合理设置map数
合并小文件
set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInp
utFormat;
合理设置reduce数
(2)解决数据倾斜
在map端进行聚合(combiner)
set hive.map.aggr=true;
设置负载均衡
set hive.groupby.skewindata=true;
(3)JVM重用
mapred-site.xml
mapreduce.job.jvm.numtasks
设置为10~20之间较为合适

1)大数据的终极目标:使用SQL语句来处理大数据
1、Hadoop的体系架构中:
)Hive:支持SQL
)Pig: 支持PigLatin
2、Spark的体系架构中:
(*)Spark SQL:类似Hive
支持SQL、支持DSL

3、另一个:Impala

一、什么是Hive?
1、Hive是基于HDFS之上的一个数据仓库
Hive HDFS
表 目录
数据 文件
分区 目录
桶 文件

2、Hive基于Hadoop之上的一个数据分析引擎
   Hive是一个翻译器
	Hive 2.x 以前:SQL -----> Hive  ----> MapReduce
	Hive 2.x 以后:推荐使用Spark作为SQL的执行引擎(只针对Hadoop 3.x以前)
	               推荐《Hive on Spark文档》

3、Hive支持SQL的一个子集(HQL)

二、Hive的体系架构
在这里插入图片描述
三、安装和配置Hive
安装模式:
)嵌入模式:不需要使用MySQL,使用Hive自带的Derby数据库存储Hive的元信息
)本地模式、远程模式:都需要MySQL

准备工作:
1、解压 tar -zxvf apache-hive-2.3.0-bin.tar.gz -C ~/training/
2、设置环境变量 vi ~/.bash_profile

			HIVE_HOME=/root/training/apache-hive-2.3.0-bin
			export HIVE_HOME

			PATH=$HIVE_HOME/bin:$PATH
			export PATH

核心的配置文件 conf/hive-site.xml

1、安装Hive的嵌入模式
特点:(1)使用自带的Derby
(2)只支持一个连接
(3)用于开发和测试
创建hive-site.xml

			<?xml version="1.0" encoding="UTF-8" standalone="no"?>
			<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
			<configuration>
				<property>
					<name>javax.jdo.option.ConnectionURL</name>
					<value>jdbc:derby:;databaseName=metastore_db;create=true</value>
				</property>
				
				<property>
					<name>javax.jdo.option.ConnectionDriverName</name>
					<value>org.apache.derby.jdbc.EmbeddedDriver</value>
				</property>	
				
				<property>
					<name>hive.metastore.local</name>
					<value>true</value>
				</property>	

				<property>
					<name>hive.metastore.warehouse.dir</name>
					<value>file:///root/training/apache-hive-2.3.0-bin/warehouse</value>
				</property>			
			</configuration>

初始化MetaStore:
schematool -dbType derby -initSchema

日志:

Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.

2、安装配置MySQL数据库
在虚拟机上安装MySQL:

			yum remove mysql-libs 
			rpm -ivh mysql-community-common-5.7.18-1.el7.x86_64.rpm
			rpm -ivh mysql-community-libs-5.7.18-1.el7.x86_64.rpm
			rpm -ivh mysql-community-client-5.7.18-1.el7.x86_64.rpm
			rpm -ivh mysql-community-server-5.7.18-1.el7.x86_64.rpm
			rpm -ivh mysql-community-devel-5.7.18-1.el7.x86_64.rpm  (可选,但还是装上,后面装HUE的时候会用到。)

启动MySQL:service mysqld start
或者:systemctl start mysqld.service

查看root用户的密码:cat /var/log/mysqld.log | grep password
登录后修改密码:alter user 'root'@'localhost' identified by 'root';

MySQL数据库的配置:
创建一个新的数据库:create database hive;
创建一个新的用户:
create user 'root'@'%' identified by 'root';

给该用户授权
grant all on hive.* TO 'root'@'%';
grant all on hive.* TO 'root'@'localhost' identified by 'root';

免费工具:http://www.mysqlfront.de/

3、本地模式、远程模式
创建hive-site.xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
			<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
			<configuration>
				<property>
					<name>javax.jdo.option.ConnectionURL</name>
					<value>jdbc:mysql://localhost:3306/hive?useSSL=false</value>
				</property>				

				<property>
					<name>javax.jdo.option.ConnectionDriverName</name>
					<value>com.mysql.jdbc.Driver</value>
				</property>	

				<property>
					<name>javax.jdo.option.ConnectionUserName</name>
					<value>hiveowner</value>
				</property>	

				<property>
					<name>javax.jdo.option.ConnectionPassword</name>
					<value>Welcome_1</value>
				</property>					
			
			</configuration>

四、(最重要)Hive的数据模型
1、内部表:类似MySQL、Oracle中表
默认的列的分隔符是:tab键

举例:创建一个员工表 emp表
数据 7654,MARTIN,SALESMAN,7698,1981/9/28,1250,1400,30

 create table emp
			  (empno int,
			   ename string,
			   job   string,
			   mgr   int,
			   hiredate string,
			   sal   int,
			   comm  int,
			   deptno int
			  );

创建一个员工表 emp1表,并且指定分隔符是:逗号

  		  create table emp1
  		  (empno int,
  		   ename string,
  		   job   string,
  		   mgr   int,
  		   hiredate string,
  		   sal   int,
  		   comm  int,
  		   deptno int
  		  )row format delimited fields terminated by ',';			  

导入数据:
insert语句
load语句:相当于ctrl+x
(1)导入HDFS的数据 load data inpath '/scott/emp.csv' into table emp;
(2)导入本地Linux的数据:load data local inpath '/root/temp/emp.csv' into table emp1;

客户端的静默模式:不打印日志

2、分区表:提高性能
举例:创建一个分区表,根据部门号deptno

			  create table emp_part
			  (empno int,
			   ename string,
			   job   string,
			   mgr   int,
			   hiredate string,
			   sal   int,
			   comm  int
			  )partitioned by (deptno int)
			  row format delimited fields terminated by ',';

往分区表中插入数据:子查询

insert into table emp_part partition(deptno=10) select empno,ename,job,mgr,hiredate,sal,comm from emp1 where deptno=10;
insert into table emp_part partition(deptno=20) select empno,ename,job,mgr,hiredate,sal,comm from emp1 where deptno=20;
insert into table emp_part partition(deptno=30) select empno,ename,job,mgr,hiredate,sal,comm from emp1 where deptno=30;

3、外部表:只定义表结构,数据保存在HDFS的某个目录下

		create external table ext_student
		(sid int,sname string,age int)
		row format delimited fields terminated by ','
		location '/students';

4、桶表:类似Hash分区
根据员工的职位job建立桶表

	    create table emp_bucket
		(empno int,
		 ename string,
		 job string,
		 mgr int,
		 hiredate string,
		 sal int,
		 comm int,
		 deptno int
		)clustered by (job) into 4 buckets
	    row format delimited fields terminated by ',';

需要设置环境变量:set hive.enforce.bucketing = true;
插入数据
insert into table emp_bucket select * from emp1;

5、视图:View
() 是一个虚(不存数据)表
(
) 作用:简化复杂的查询

		     create view view10
			 as
			 select * from emp1 where deptno=10;

() 补充:物化视图可以缓存数据
)补充:如何判断提高了性能? ----> 重点讲:关系型数据库(Oracle)、Hive类似方式
----> SQL执行计划

五、执行Hive的查询:执行SQL(HQL)
注意:HQL是SQL的一个子集
创建部门表

	create table dept
	(deptno int,dname string,loc string)
	row format delimited fields terminated by ',';

load data local inpath '/root/temp/dept.csv' into table dept;

1、查询所有的员工信息
select * from emp1;

2、查询员工信息:员工号 姓名 月薪 部门号
select empno,ename,sal,deptno from emp1;

3、多表查询

	   select dept.dname,emp1.ename
	   from emp1,dept
4、子查询:只支持from和where子句中的子查询
	查询部门名称是SALES的员工信息
		select *
		from emp1
		where emp1.deptno in (select deptno from dept where dname='SALES');
5、条件函数(条件表达式,就是一个if...else...语句)
	if
	coalesce
	case... when...
	
	  使用decode函数实现(oracle数据库)
		  select empno,ename,job,sal "Before",
		         decode(job,'PRESIDENT',sal+1000,
				            'MANAGER',sal+800,
							sal+400) "After"
		  from emp;

需求:做一个报表,列出涨前和涨后的工资
按照员工的职位来涨工资:总裁:1000 经理:800 其他:400

			  select empno,ename,job,sal,
			         case job when 'PRESIDENT' then sal+1000
					          when 'MANAGER'then sal+800
							  else sal+400
			         end
			  from emp1;
			7369	SMITH	CLERK		800		1200
			7499	ALLEN	SALESMAN	1600	2000
			7521	WARD	SALESMAN	1250	1650
			7566	JONES	MANAGER		2975	3775
			7654	MARTIN	SALESMAN	1250	1650
			7698	BLAKE	MANAGER		2850	3650
			7782	CLARK	MANAGER		2450	3250
			7788	SCOTT	ANALYST		3000	3400
			7839	KING	PRESIDENT	5000	6000
			7844	TURNER	SALESMAN	1500	1900
			7876	ADAMS	CLERK		1100	1500
			7900	JAMES	CLERK		950		1350
			7902	FORD	ANALYST		3000	3400
			7934	MILLER	CLERK		1300	1700

六、使用JDBC查询Hive

public class JDBCUtils {

	//定义Hive的Driver
	private static String driver = "org.apache.hive.jdbc.HiveDriver";
	//Oracle: oracle.jdbc.OracleDriver
	
	//URL地址
	private static String url = "jdbc:hive2://192.168.157.111:10000/default";
	
	//注册Driver
	static{
		try {
			Class.forName(driver);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}
	
	//获取链接
	public static Connection getConnection(){
		try{
			return DriverManager.getConnection(url);
		}catch(Exception ex){
			ex.printStackTrace();
		}
		return null;
	}
	
	//释放资源
	//问题:能不能通过Java代码去干预GC?
	public static void release(Connection conn,Statement st,ResultSet rs){
		if(rs != null){
			try {
				rs.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}finally{
				rs = null;
			}
		}
		if(st != null){
			try {
				st.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}finally{
				st = null;
			}
		}
		if(conn != null){
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}finally{
				conn = null;
			}
		}
	}
	
}
public class TestHive {

	public static void main(String[] args) {
		//查询: select * from emp1;
		Connection conn = null;
		Statement st = null;
		ResultSet rs = null;
		try{
			conn = JDBCUtils.getConnection();
			st = conn.createStatement();
			
			//执行SQL
			rs = st.executeQuery("select * from emp1");
			while(rs.next()){
				String ename = rs.getString("ename");
				System.out.println(ename);
			}
		}catch(Exception ex){
			ex.printStackTrace();
		}finally{
			//释放资源
			JDBCUtils.release(conn, st, rs);
		}
	}
}

七、Hive的自定义函数:本质是Java程序
1、UDF:User Define Function
2、封装业务逻辑

3、举例
(1)实现关系型数据库中concat函数

(2)根据员工的薪水,判断薪水的级别
() sal < 1000 ----> Grade A
(
) 1000<=sal <3000 —> Grade B
(*) sal >=3000 —> Grade C

4、部署我们jar包(自定义函数)
把jar加入Hive的Classpath
add jar /root/temp/myudf.jar;

为自定义函数创建别名

	 create temporary function myconcat as 'udf.MyConcatString';
	 create temporary function checksal as 'udf.CheckSalaryGrade';

数据分析引擎:Pig

一、什么是Pig?Pig的体系架构
1、是一个翻译器,把PigLatin语句 ----MapReduce
从0.17开始,支持Spark

2、由Yahoo开发

二、Pig的数据模型

三、Pig的安装和配置(非常简单)
两种运行的模式
1、本地模式:操作本地Linux的文件系统、类似Hadoop的本地模式

命令:pig -x local

日志: Connecting to hadoop file system at: file:///

2、MapReduce模式(集群模式): 把PigLatin语句转换成MapReduce提交Hadoop上运行
命令:bin/pig
日志:Connecting to hadoop file system at: hdfs://bigdata111:9000

配置一个环境变量

		PIG_CLASSPATH ---> 指向Hadoop的配置文件的目录
		PIG_CLASSPATH=$HADOOP_HOME/etc/hadoop
		export PIG_CLASSPATH

四、使用PigLatin语句来分析数据

五、Pig的自定义函数

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

phial03

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值