Impala的Short

Stella981
• 阅读 701

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

Fayson的github:https://github.com/fayson/cdhproject

提示:代码块部分可以左右滑动查看噢

1.HDFS的Short-Circuit Local Reads


我们知道读取HDFS的数据需要通过DataNode。当客户端找DataNode读取数据时,DataNode会首先从磁盘中读取文件,然后通过TCP socket将数据传送给客户端。短回路(short-circuit)数据可以绕过DataNode,从而允许客户端直接读取文件。所以当客户端和数据在同一个节点时,短回路(short-circuit)可以明显为很多应用程序提升性能。

要配置short-circuit本地读,你需要libhadoop.so。short-circuit本地读利用Linux的domain socket,它是文件系统的一个特别的路径,可以允许客户端和DataNode进行通信。我们需要在socket中设置这个路径,然后DataNode需要能够创建这个路径。但需要注意,除了HDFS和root用户,其他任何用户都不能创建这个路径。这个路径一般会使用/var/run或/var/lib。客户端和DataNode通过/dev/shm上的共享内存段(shared memory segment)交换信息。Short-circuit本地读需要在DataNode和客户端都配置。

2.Impala的Short-Circuit Local Reads


Impala默认开启了Short-Circuit,并会利用HDFS中配置的那个路径,默认是/var/run/hadoop-hdfs/dn._PORT。该功能同样可以明显提升Impala的性能。

按照上文说的,Short-Circuit需要安装libhadoop.so,而在CDH的安装中,你如果使用tarbal安装,默认是没有安装libhadoop.so的。所以你必须使用rpm或者parcel安装,才能启用该功能。当然parcel本来也是Cloudera官方建议的安装方式。

本文Fayson会分析因为Short-Circuit目录问题导致Impala服务无法正常启动的一个异常。

3.问题描述


在启动Impala集群时部分Impala Daemon节点启动失败,异常日志如下:

Invalid short-circuit reads configuration:  - Impala cannot read or execute the parent directory of dfs.domain.socket.pathAborting Impala Server startup due to improper configuration. Impalad exiting.

(可左右滑动)

Impala的Short

4.问题解决


1.登录CM管理界面进入HDFS服务搜索"dfs.domain.socket.path"

Impala的Short

根据dfs.domain.socket.path配置的路径,登录到启动失败的Impala节点,查看该路径是否存在。

2.登录到启动失败节点的上查看/var/run目录下是否有hdfs-sockets目录

[root@ip-172-31-30-69 run]# ll /var/run/

(可左右滑动)

Impala的Short

3.在/var/run目录下创建hdfs-sockets目录

[root@ip-172-31-30-69 run]# mkdir /var/run/hdfs-sockets[root@ip-172-31-30-69 run]# chown hdfs:hadoop /var/run/hdfs-sockets/[root@ip-172-31-30-69 run]# ll /var/run/

(可左右滑动)

Impala的Short

注意:在有的Impala节点该目录存在,但目录的权限或属主异常,也需要进行相应的修改。

4.创建/var/run/hdfs-sockets目录后重启异常的Impala节点

Impala的Short

服务启动成功,异常解决

Impala的Short

提示:代码块部分可以左右滑动查看噢

为天地立心,为生民立命,为往圣继绝学,为万世开太平。

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。

Impala的Short

原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操

本文分享自微信公众号 - Hadoop实操(gh_c4c535955d0f)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Stella981 Stella981
3年前
Python3通过JDBC访问非Kerberos环境的Impala
温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。Fayson的github:https://github.com/fayson/cdhproject提示:代码块部分可以左右滑动查看噢1.文档编写目的在前面Fayson介绍了在
Stella981 Stella981
3年前
Spark2Streaming读Kerberos环境的Kafka并写数据到HBase
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。Fayson的github:https://github.com/fayson/cdhproject提示:代码块部分可以左右滑动查看噢1.文档编写目的在前面的文章Fayson介绍了在Kerberos环境下《Sp
Stella981 Stella981
3年前
Spark2Streaming读Kerberos环境的Kafka并写数据到HDFS
温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。Fayson的github:https://github.com/fayson/cdhproject提示:代码块部分可以左右滑动查看噢1.文档编写目的在前面的文章Fayson介
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这