hive查询为啥在yarn上看不到
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hive查询为啥在yarn上看不到相关的知识,希望对你有一定的参考价值。
参考技术A 原因应该是用户提交一个sql到HiveServer后立马关闭了session,而此时SparkClientImpl又刚好在阻塞等待来自RemoteDriver的连接。1.Hive要提交一个Spark任务时,会先通过spark-submit提交一个spark程序到yarn集群运行。而运行的MainClass就是RemoteDriver
2.RemoteDriver在yarn的container启动后,会主动去连接Hiveserver2开放的rpc端口(这个端口在spark-submit时会带上,因此RemoteDriver知道要连接的host和ip)
3.连接建立后,SparkClientImpl这边会根据clientId从RpcServer中找到对应的channel,之后将要运行的job通过kvro工具序列化成字节流发送给RemoteDriver
4.RemoteDriver这边在连接成功后,就开始准备接收SparkClientImpl发送过来的消息并执行。
5.最后,如果在SparkClientImpl关闭时也会相应的关闭远程的RemoteDriver,具体做法是发送一个关闭的消息给RemoteDriver,告诉它可以停掉了。(SparkClientImpl一般是在整个客户端的session关闭时关闭的)
RpcServer在整个Hiveserver2进程中只会有一个,因此需要通过clientId来标识对应的RemoteDriver客户端。这个clientId也会在spark-submit时带上。
为啥在我的 Docker 容器中找不到 yarn.lock?
【中文标题】为啥在我的 Docker 容器中找不到 yarn.lock?【英文标题】:Why can't yarn.lock found in my Docker container?为什么在我的 Docker 容器中找不到 yarn.lock? 【发布时间】:2020-10-10 20:40:44 【问题描述】:我正在运行一个 Node.js 脚本,如下所示:docker run -it --rm -u node --name build_container -v $(pwd):/home/node/app -w "/home/node/app" node:lts bash -c "yarn install --no-cache --frozen-lockfile"
。
但是,脚本日志显示 info No lockfile found
,更奇怪的是,发现了一条消息,上面写着 package-lock.json。但是,工作目录没有package-lock。
有什么想法可能是问题吗?
【问题讨论】:
说它是自动添加的..但是项目的结构是什么? 【参考方案1】:我建议使用您自己的 Dockerfile
来构建您的图像 - 然后在构建中运行它 - 就像这样:
Dockerfile
FROM node:12-alpine
# Create work directory
RUN mkdir -p /express
WORKDIR /express
# Bundle app sources
COPY . .
# Build app
RUN yarn install --prod --frozen-lockfile && yarn run build
EXPOSE 3000
# Set default NODE_ENV to production
ENV NODE_ENV production
ENTRYPOINT [ "yarn", "start" ]
.dockerignore
node_modules
build
dist
config
docs
*.log
.git
.vscode
然后构建镜像:
docker build -t <your image name> -f <Dockerfile (if omitted uses local folder .Dockerfile> <path to code your code>
一旦构建完成,就可以像普通图像一样运行它 - 因为一切都已经在其中了。
【讨论】:
以上是关于hive查询为啥在yarn上看不到的主要内容,如果未能解决你的问题,请参考以下文章
使用 Hadoop YARN 在本地模式下运行 Hive 查询