分享

Hadoop实操

desehawk 发表于 2018-4-23 17:46:51
Windows Kerberos客户端配置并访问CDH

1.概述

本文档描述Windows Server2008 R2(windows的内核版本是6.1,与windows 7相同)下安装Kerberos Client及FireFox下HTTP访问HDFS、Yarn、Hive、HBase等Hadoop服务的Web UI(如Namenode的50070,Yarn的8088)的过程。安装文档主要分为以下几步:

1.在Windows Server2008 R2 64位上安装Kerberos Client。

2.在Windows下使用kinit测试。

3.通过keytab在Windows下进行kinit操作。

4.配置FireFox。

5.验证服务是否正常访问。

这篇文档将着重介绍Winodws Server R2下安装及使用Kerberos,并基于以下假设:

1.CDH环境已搭建并正常运行

2.HDFS、Yarn、HBase、Hive等组件已安装部署

3.集群已完成Kerberos的配置,并正常使用

以下是对本次测试环境,但不是本操作手册的硬限制:

1.操作系统:Redhat7.2

2.CM版本:CM5.11.1

3.CDH版本:CDH5.11.1

4.采用ec2-user对集群进行部署



更多参考
https://cloud.tencent.com/developer/article/1077711







回复

使用道具 举报

desehawk 发表于 2018-4-23 17:49:26
Hive中的Timestamp类型日期与Impala中显示不一致分析

1.问题描述
Hive表中存储的Timestamp类型的字段显示日期与Impala中查询出来的日期不一致。
2.问题复现
1.创建一个简单的测试表
1.png
2.jpeg
2.向表中插入一条测试数据
| insert into  date_test4 values(1,'1503751615','2017-08-26 08:46:55'); |
|:----|
获取当前系统时间存入表中:
3.jpeg
4.jpeg
3.通过Hive查询时间显示如下
| select  id,create_date_str,from_unixtime(create_date) from date_test4; |
|:----|
5.jpeg
4.通过Impala查询时间显示如下
| select id,create_date_str,cast(create_date  as timestamp) from date_test4; |
|:----|
6.jpeg
可以看到通过Hive查询看到的时间与通过Impala查询看到的时间不一致;
3.问题分析
3.1Hive的from_unixtime
Hive官网from_unixtime函数说明:

Return Type

Name(Signature)

Description

string

from_unixtime(bigint unixtime, string format)

Converts the number of seconds from unix epoch (1970-01-01  00:00:00 UTC) to a string representing the timestamp of that moment in the  current system time zone in the format of "1970-01-01 00:00:00".


在Hive中通过from_unixtime函数将TIMESTAMP时间戳转换成当前时区的日期格式的字符串,默认格式为“yyyy-MM-dd HH:mm:ss”,所以Hive在查询的时候能正确的将存入的时间戳转成当前时区的时间;
3.2Impala的TIMESTAMP
默认情况下,Impala不会使用本地时区存储时间戳,以避免意外的时区问题造成不必要的问题,时间戳均是使用UTC进行存储和解释。具体说明请参考官方文档:
4.解决方法
使用Impala的from_utc_timestamp函数指定时区进行时间转换,事例如下:
| select  id,create_date_str, cast(create_date as  timestamp),from_utc_timestamp(cast(create_date as timestamp), 'EDT') from  date_test4; |
|:----|
7.jpeg
指定时区后时间与原始Hive中显示时间一致,时区查看参考如下地址:
http://zh.thetimenow.com/time-zones-abbreviations.php

地址:https://cloud.tencent.com/developer/article/1077819
回复

使用道具 举报

desehawk 发表于 2018-4-23 17:50:49
如何使用Hue创建Spark1和Spark2的Oozie工作流


1.文档编写目的

使用Hue可以方便的通过界面制定Oozie的工作流,支持Hive、Pig、Spark、Java、Sqoop、MapReduce、Shell等等。Spark?那能不能支持Spark2的呢,接下来本文章就主要讲述如何使用Hue创建Spark1和Spark2的Oozie工作流。
  • 内容概述
1.添加Spark2到Oozie的Share-lib
2.创建Spark2的Oozie工作流
3.创建Spark1的Oozie工作流
4.总结
  • 测试环境
1.CM和CDH版本为5.11.2
2.操作系统:RedHat7.2
3.采用sudo权限的ec2-user用户操作
更多参考
https://cloud.tencent.com/developer/article/1078092

回复

使用道具 举报

desehawk 发表于 2018-4-23 17:58:54
Sentry赋予server1权限给hive以外用户时ACL不同步问题分析
1.问题描述

在使用Sentry赋予server1所有权限给hive以外的用户时(如:fayson用户默认用户组也是fayson),通过Hue使用fayson用户登录,Sentry赋予fayson用户的权限是能正常工作,但是HDFS文件的ACL权限未同步导致不能对相应表的数据目录进行操作。
2.问题复现

1.使用hive用户登录Hue,并赋予server1的所有权限给fayson用户组
1.jpeg
2.fayson用户的所属组信息
[ec2-user@ip-172-31-22-86 ~$ id faysonuid=1006(fayson) gid=1008(fayson) groups=1008(fayson)[ec2-user@ip-172-31-22-86 ~$ 2.png
3.使用fayson用户登录Hue
3.jpeg
fayson用户可以看到hive的所有库
4.jpeg
可以对任意库下的表进行SELECT操作
5.jpeg
可以对所有表进行count操作
6.jpeg
可以向表中插入数据
4.不能浏览表Hive的HDFS目录
7.jpeg
5.查看HDFS文件的ACL权限未同步
8.jpeg
9.jpeg
如果将tpcds_parquet库的权限授权给fayson用户组则可以实现HDFS文件的ACL同步
10.jpeg
11.jpeg
3.解决方法

如果需要对非hive用户赋予server1的权限,则需要将server1下所有库的权限一一赋给fayson用户组,这样才能确保HDFS文件的ACL权限也是同步的。如果是最大权限的用户则可以为该用户添加hive组。
4.总结

在使用Sentry赋予server1的权限给非hive用户时是不能达到所有HDFS文件的ACL同步,如果是非最大权限的用户则需要加上数据库授权,如果是最大权限的用户可以使用hive/impala或着为用户添加hive组。
server1的权限一般是hive中管理员权限,如hive或者impala用户,就像这个文件/user/hive/warehouse的owner是hive一样。如果将此权限赋给其他用户时则需要加上数据库的权限,以保障数据的安全。

回复

使用道具 举报

desehawk 发表于 2018-4-23 18:00:11
如何在CDH中启用Spark Thrift

1.文档编写目的

CDH 自带的Spark 不支持Spark Thrift,因为spark-assembly jar中缺少Hive thrift相关的依赖包,导致CDH用户没法使用JDBC的方式连接Spark并使用Spark SQL。Apache Spark 1.6之后spark-assembly jar 中包含了 Hive 相关的依赖包了,而恰好 CDH5.13 的 spark也是 1.6,所以可以直接使用Apache Spark 1.6 之后的spark-assembly jar替换CDH的。
本次测试选用的spark-assembly jar 包是Apache Spark1.6.3版本,而CDH中的Spark是1.6.0。本篇文章主要讲述如何在CDH中启用Spark Thrift。
  • 内容概述
1.部署spark-assembly Jar包
2.部署Spark ThriftServer启动和停止脚本
3.Spark ThriftServer启动与停止
4.总结
  • 测试环境
1.CM和CDH版本为5.13.0
2.采用root用户操作
  • 前置条件
1.Spark1.6.0 On Yarn模式
更多参考https://cloud.tencent.com/developer/article/1078226


回复

使用道具 举报

12
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条