精华内容
下载资源
问答
  • 欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos本文是《Flink on Yarn三部曲》系列的终篇,先简单回顾前面的内容:《Flink on Yarn三部曲之一:准备工作》:...

    欢迎访问我的GitHub

    这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos

    本文是《Flink on Yarn三部曲》系列的终篇,先简单回顾前面的内容:

    1. 《Flink on Yarn三部曲之一:准备工作》:准备好机器、脚本、安装包;
    2. 《Flink on Yarn三部曲之二:部署和设置》:完成CDH和Flink部署,并在管理页面做好相关的设置;

    现在Flink、Yarn、HDFS都就绪了,接下来实践提交Flink任务到Yarn执行;

    两种Flink on YARN模式

    实践之前,对Flink on YARN先简单了解一下,如下图所示,Flink on Yarn在使用的时候分为两种模式,Job ModeSession Modea054f59d7298532f60896359838ecf0a.png

    Session Mode:在YARN中提前初始化一个Flink集群,以后所有Flink任务都提交到这个集群,如下图:e87174e9b88782befd92b3fb9362bc86.png

    Job Mode:每次提交Flink任务都会创建一个专用的Flink集群,任务完成后资源释放,如下图:17c0ebf80dcec5bac04ffe0181ef7caf.png接下来分别实战这两种模式;

    准备实战用的数据(CDH服务器)

    接下来提交的Flink任务是经典的WordCount,先在HDFS中准备一份文本文件,后面提交的Flink任务都会读取这个文件,统计里面每个单词的数字,准备文本的步骤如下:

    1. SSH登录CDH服务器;
    2. 切换到hdfs账号:su - hdfs
    3. 下载实战用的txt文件:
    wget https://github.com/zq2599/blog_demos/blob/master/files/GoneWiththeWind.txt
    1. 创建hdfs文件夹:hdfs dfs -mkdir /input
    2. 将文本文件上传到/input目录:hdfs dfs -put ./GoneWiththeWind.txt /input

    准备工作完成,可以提交任务试试了。

    Session Mode实战

    1. SSH登录CDH服务器;
    2. 切换到hdfs账号:su - hdfs
    3. 进入目录:/opt/flink-1.7.2/
    4. 执行如下命令创建Flink集群,-n参数表示TaskManager的数量,-jm表示JobManager的内存大小,-tm表示每个TaskManager的内存大小:
    ./bin/yarn-session.sh -n 2 -jm 1024 -tm 1024
    1. 创建成功后,控制台输出如下图,注意红框中的提示,表明可以通过38301端口访问Flink:887f53b32772b8ace153c252ec04a964.png
    2. 浏览器访问CDH服务器的38301端口,可见Flink服务已经启动:26d12195fab53678d6113f4e8637476f.png
    3. 浏览器访问CDH服务器的8088端口,可见YARN的Application(即Flink集群)创建成功,如下图,红框中是任务ID,稍后结束Application的时候会用到此ID:9697e7dbfa597232a785e03e1b260d34.png
    4. 再开启一个终端,SSH登录CDH服务器,切换到hdfs账号,进入目录:/opt/flink-1.7.2
    5. 执行以下命令,就会提交一个Flink任务(安装包自带的WordCount例子),并指明将结果输出到HDFS的wordcount-result.txt文件中:
    bin/flink run ./examples/batch/WordCount.jar \
    -input hdfs://192.168.50.134:8020/input/GoneWiththeWind.txt \
    -output hdfs://192.168.50.134:8020/wordcount-result.txt
    1. 执行完毕后,控制台输出如下:de8baaddbd2a7f448d4be9b733e94dd6.png
    2. flink的WordCount任务结果保存在hdfs,我们将结果取出来看看:hdfs dfs -get /wordcount-result.txt
    3. vi打开wordcount-result.txt文件,如下图,可见任务执行成功,指定文本中的每个单词数量都统计出来了:cd2035b9d8b71678902bfaa131b0b666.png
    4. 浏览器访问Flink页面(CDH服务器的38301端口),也能看到任务的详细情况:53e650051618521db4595b7ceec023c4.png
    5. 销毁这个Flink集群的方法是在控制台执行命令:yarn application -kill application_1580173588985_00026ea270181ebfd4a99b7efd62d104219e.pngSession Mode的实战就完成了,接下来我们来尝试Job Mode;

    Job Mode

    1. 执行以下命令,创建一个Flink集群,该集群只用于执行参数中指定的任务(wordCount.jar),结果输出到hdfs的wordcount-result-1.txt文件:
    bin/flink run -m yarn-cluster \
    -yn 2 \
    -yjm 1024 \
    -ytm 1024 \
    ./examples/batch/WordCount.jar \
    -input hdfs://192.168.50.134:8020/input/GoneWiththeWind.txt \
    -output hdfs://192.168.50.134:8020/wordcount-result-1.txt
    1. 控制台输出如下,表明任务执行完成:6025431f1490f5ef1b24e1c373209754.png
    2. 如果您的内存和CPU核数充裕,可以立即执行以下命令再创建一个Flink集群,该集群只用于执行参数中指定的任务(wordCount.jar),结果输出到hdfs的wordcount-result-2.txt文件:
    bin/flink run -m yarn-cluster \
    -yn 2 \
    -yjm 1024 \
    -ytm 1024 \
    ./examples/batch/WordCount.jar \
    -input hdfs://192.168.50.134:8020/input/GoneWiththeWind.txt \
    -output hdfs://192.168.50.134:8020/wordcount-result-2.txt
    1. 在YARN管理页面可见任务已经结束:7f535f114e6a57ac4bb55b016b35978c.png
    2. 执行命令hdfs dfs -ls /查看结果文件,已经成功生成:4ef001a5c201b457e53c3e6fdf5790b7.png
    3. 执行命令hdfs dfs -get /wordcount-result-1.txt下载结果文件到本地,检查数据正常;
    4. 至此,Flink on Yarn的部署、设置、提交都实践完成,《Flink on Yarn三部曲》系列也结束了,如果您也在学习Flink,希望本文能够给您一些参考,也建议您根据自身情况和需求,修改ansible脚本,搭建更适合自己的环境;
    展开全文
  • 文章目录一 关闭防火墙 配置本机hosts 文件1 关闭防火墙2 配置本地host 文件二本地能否ping 通, 端口排查需要配置网卡重启网卡***本地再次测试接口三 ip 8088 端口访问 依然显示被拒绝1 配置服务器hosts 文件(可能...

    一 关闭防火墙 配置本机hosts 文件

    1 关闭防火墙

    ps:目前云服务器查看防火墙 —默认看到基本都是没有启动,或者not found …

    这个可以忽略 不过也要看一下

    下面是red hat/CentOs7关闭防火墙的命令!
    
    1:查看防火状态
    
    systemctl status firewalld
    
    service  iptables status
    
    2:暂时关闭防火墙
    
    systemctl stop firewalld
    
    service  iptables stop
    
    3:永久关闭防火墙
    
    systemctl disable firewalld
    
    chkconfig iptables off
    
    4:重启防火墙
    
    systemctl enable firewalld
    
    service iptables restart  
    
    5:永久关闭后重启
    
    chkconfig iptables on
    

    2 配置本地host 文件

    公网ip1 hadoop1xx
    公网ip2 hadoop1xx
    公网ip3 hadoop1xx

    二本地能否ping 通, 端口排查

    先从能访问 50070 开始排查

    发现 可以ping 通 这个50070 对应ip ,但是telnet ip 50070 不通

    登入服务器(我这里是腾旭云服务器—在控制台 端口都是一键放通的)

    查看配置网卡—网卡这里我没有配置

    需要配置网卡


    在这里插入图片描述

    vim /etc/sysconfig/network-scripts/ifcfg-eth0
    
    
    -========----======---=======--=-=-=-=-=-==-=-=-=-=-
    BOOTPROTO=none
    PEERDNS=yes
    DEVICE=eth0
    HWADDR=
    NM_CONTROLLED=no
    ONBOOT=yes
    MTU=
    IPADDR=
    NETMASK=
    GATEWAY=
    PERSISTENT_DHCLIENT=yes
    TYPE=Ethernet
    USERCTL=no
    DNS1=172.21.15.1
    DNS2=172.21.15.2
    DNS3=114.114.114.114
    
    

    重启网卡

    service network restart
    

    如果OK 就继续下步操作

    ​ 重启网卡失败 —就请百度如何配置网卡 这里就不多说了

    ***本地再次测试接口

    telnet ip 端口号

    我这里因为之前买完服务器没有配置网卡 ~ 配置后 发现 可以 telnet ip 50070 这个端口

    其它两台服务器也像这样修改一下

    三 ip 8088 端口访问 依然显示被拒绝

    1 配置服务器hosts 文件(可能是这个原因)

    在网上查了一大气(可能是这个原因),说不同服务器 地域不同 服务器网段也会不同…

    比如 hadoop101 外网ip:A 内网ip :B

    那么在hadoop101 hosts 文件中:~~~~ B hadoop101

    ​ A hadoop102

    ​ A hadoop103

    网上说的是自己服务器内网ip 是唯一ip 不可更改 也不会变化,所以要在自己服务器里 hosts 配置自己内网ip 而其它服务器填公网ip (公网ip 是根据内网ip 映射出来 可以更改 变化 )—因为个人也不是很了解 这里想了解小伙伴 可以 百度好好查查

    **2 在服务器上看一下端口

    在服务器上输入:netstat -tpnl |grep java

    查看java 运行端口情况 发现有两个疑惑点 —如下图圈起地方
    在这里插入图片描述

    tcp 6 和tcp??127.0.0.1和0.0.0.0??

    telnet ip 8088 发现连接不上 —tcp6 (127.0.0.1:8088)

    telnet ip 8043 发现可以连接上 ----tcp6(0.0.0.0:8043)

    结论

    可以发现我的8088端口的local address是:127.0.0.1:8088,这就导致了8088端口只能被本机访问。
    (而不是像50070端口:0.0.0.0.0:50070 ,它能被外网访问)
    所以,要能够被外网访问,需要让8088端口挂在外界可以访问到的虚拟机ip下面。
    
    

    第四 修改yarn-site.xml 文件

    所以来改yarn-site.xml文件

    在这里插入图片描述

    启动集群(启动前 操作hadoop 配置文件 需要 关闭所有开启集群)

    在启动yarn 上 netstat -tpnl |grep 8088
    在这里插入图片描述

    然后用她公网ip +端口 就可以访问了

    展开全文
  • Spark on Yarn

    2018-06-20 19:25:32
    Spark on Yarn 根据Driver 在集群中的位置分为两种模式,一种是Yarn-Client 模式,一种是 Yarn-Cluster模式(又称为standalone模式)Yarn-Client模式中,Driver在客户端本地运行,这种模式可以使得Spark Application...

    Spark on Yarn 根据Driver 在集群中的位置分为两种模式,一种是Yarn-Client 模式,一种是 Yarn-Cluster模式(又称为standalone模式)

    • Yarn-Client模式中,Driver在客户端本地运行,这种模式可以使得Spark Application和客户端进行交互,因为Driver在客户端,所以可以通过webUI访问Driver的状态,默认是http://hadoop1:4040访问,而YARN通过http:// hadoop1:8088访问

    • 在YARN-Cluster模式中,当用户向YARN中提交一个应用程序后,YARN将分两个阶段运行该应用程序:
      1. 第一个阶段是把Spark的Driver作为一个ApplicationMaster在YARN集群中先启动;
      2. 第二个阶段是由ApplicationMaster创建应用程序,然后为它向ResourceManager申请资源,并启动Executor来运行Task,同时监控它的整个运行过程,直到运行完成

    Spark Client 和 Spark Cluster的区别:

    • 理解YARN-Client和YARN-Cluster深层次的区别之前先清楚一个概念:Application Master。在YARN中,每个Application实例都有一个ApplicationMaster进程,它是Application启动的第一个容器。它负责和ResourceManager打交道并请求资源,获取资源之后告诉NodeManager为其启动Container。从深层次的含义讲YARN-Cluster和YARN-Client模式的区别其实就是ApplicationMaster进程的区别
    • YARN-Cluster模式下,Driver运行在AM(Application Master)中,它负责向YARN申请资源,并监督作业的运行状况。当用户提交了作业之后,就可以关掉Client,作业会继续在YARN上运行,因而YARN-Cluster模式不适合运行交互类型的作业
    • YARN-Client模式下,Application Master仅仅向YARN请求Executor,Client会和请求的Container通信来调度他们工作,也就是说Client不能离开

    展开全文
  • cdh集群,开启kerberos认证,需要通过spark访问hbase 本地idea开发 //是否需要kerberos认证 val IS_KERBEROS = PropertiesUtils.getBoolean("hbase.kerberos") //krb5.conf路径 val KRB5_CONF_PATH = ...

    环境准备

    cdh集群,开启kerberos认证,需要通过spark访问hbase
    

    本地idea开发

    
    //是否需要kerberos认证
    val IS_KERBEROS = PropertiesUtils.getBoolean("hbase.kerberos")
    //krb5.conf路径
    val KRB5_CONF_PATH = PropertiesUtils.getString("java.security.krb5.conf")
    //hbase.keytab路径
    val KEYTAB_PATH = PropertiesUtils.getString("hbase.kerberos.keytab.path")
    //一般都是hbase/xxx@XXX.COM
    val KERBEROS_USER = PropertiesUtils.getString("hbase.kerberos.user")
    
    //hbase-site.xml路径
    val HBASE_SITE_FILE = PropertiesUtils.getString("hbase.site.file")
    //core-site.xml路径
    val CORE_SITE_FILE = PropertiesUtils.getString("core.site.file")
    //hdfs-site.xml路径
    val HDFS_SITE_FILE = PropertiesUtils.getString("hdfs.site.file")
    
     def login(conf: Configuration): Option[UserGroupInformation] = {
       //kerberos
       try {
         System.setProperty("java.security.krb5.conf", KRB5_CONF_PATH)
         conf.set("hadoop.security.authentication", "Kerberos")
         // 这个hbase.keytab也是从远程服务器上copy下来的, 里面存储的是密码相关信息
         // 这样我们就不需要交互式输入密码了
         conf.set("keytab.file", KEYTAB_PATH)
         // 这个可以理解成用户名信息,也就是Principal
         conf.set("kerberos.principal", KERBEROS_USER)
         UserGroupInformation.setConfiguration(conf)
         val ugi: UserGroupInformation = UserGroupInformation.loginUserFromKeytabAndReturnUGI(KERBEROS_USER, KEYTAB_PATH)
         Some(ugi)
       }catch {
         case e: IOException =>
           logger.error(s"login hbase from keytab error,Cause:${e}")
           None
       }
     }
     
     def getConnection(conf: Configuration): Connection = {
       if (IS_KERBEROS) {
         conf.addResource(new Path(CORE_SITE_FILE))
         conf.addResource(new Path(HDFS_SITE_FILE))
         conf.addResource(new Path(HBASE_SITE_FILE))
       } else {
         conf.set(HConstants.ZOOKEEPER_QUORUM,QUORUM)
         conf.set(HConstants.ZOOKEEPER_CLIENT_PORT,PORT)
         conf.set(HConstants.ZOOKEEPER_ZNODE_PARENT,ZNODE)
       }
       ConnectionFactory.createConnection(conf)
     }
     def getData(tableName: String,get: Get): Option[JSONObject] = {
       val conf: Configuration = HBaseConfiguration.create()
       if (IS_KERBEROS) {
         val ugi: UserGroupInformation = login(conf).get
         ugi.doAs(new PrivilegedExceptionAction[Option[JSONObject]] {
           override def run(): Option[JSONObject] = getHBaseData(tableName, get, conf)
         })
       } else {
         getHBaseData(tableName, get, conf)
       }
     }
    
    获取链接后,后续进行业务处理
    

    生产环境测试

    报错1

    kerberos认证失败,登陆异常
    给每个yarn节点的hbase.keytab文件更改权限
    chmod 666 /opt/hbase.keytab
    

    报错2

    遇到Insufficient permissions for user 'hive'异常,hive用户没有权限读取hbase表数据
    打开hbase shell,输入
    grant 'hive','RWXCA'
    后续再研究使用hbase用户或者其他用户认证kerberos后,反而报hive用户没有权限读取hbase表数据异常。
    

    参考

    https://blog.csdn.net/blackice1015/article/details/49422855
    https://blog.csdn.net/fanchw/article/details/108770529

    展开全文
  • 背景 今天刚装好Hadoop,想在本地测试下能否用浏览器打开Hdfs: ... 出现服务器拒绝访问。...第一种只设置Hdfs的访问Yarn可能访问不了 第二种Hdfs、Yarn都能访问 修改文件:vim hdfs-site.xml <p
  •  ContainerManagerImpl内部包含一个负责资源本地化的服务,它负责Container所需资源的本地化,能够根据描述从HDFS上下载Container所需的文件资源并尽量将他们分摊到各个磁盘上,以防止出现访问热点。此外还会为下载...
  • 今天在访问微软云的服务器的yarn的时候,虽然yarn的主页可以打开,但是看每个log无法打开页面,原因是直接调用node的主机名+端口,网络不通,无法访问。解决办法:启动ssh通道做代理:ssh命令,可能有端口,-p 22,...
  • 先去集群中hive hadoop的配置目录中把以下4个site.xml文件下载下来 ...也可以顺便把spark目录下的conf/log4j.properties复制到resource中,在og4j.properties中修改设置spark本地模式下的日志输出级别
  • http-server本地启动服务访问vue打包后的代码 1、全局安装http-server npm install -g http-server 或者 用yarn yarn global add http-server 2、命令行或者git打开打包后的文件目录 -P后面设置的是代理ip接口地址...
  • 启动时会在本地启动master,然后通过读取slaves配置文件ssh到其他节点启动slave。 访问master:8080 yarn和spark的standalone模式对比 yarn的资源隔离做得更优秀。spark streaming推荐跑在yarn
  • Yarn-Client模式中,Driver在客户端本地运行,这种模式可以使得Spark Application和客户端进行交互,因为Driver在客户端,所以可以通过webUI访问Driver的状态,默认是http://hadoop1:4040访问,而YARN通过...
  • YARN——NM的资源管理

    2021-04-08 00:57:56
    【一些概念】本地化(Localization)将资源下载到本地的过程,这样container运行时可以从本地加载而不是从访问远端的文件。资源(Resource)资源表示运行containe...
  • 方法一: ...(1)yarn run dev --host 0.0.0.0(不需要修改配置文件) (2)npm run dev --host (需要修改config/index.js,把 host: 'localhost', 改为 host: '0.0.0.0') 3. 你电脑的IP +本地项目...
  • 最近换了一台电脑,换完电脑后试着本地启动了一下基于iview开发的一个web项目,yarn dev项目可以正常启动无任何报错,但是页面竟然无法打开,报错如下: 看这个异常信息应该是我新电脑只装了node和npm没有装iview...
  • 学习大数据,发现server与agent,hdfs中的nn与dn,yarn中的rm与nm都是通过rpc来进行通信的,今天就学习一下什么是rpc rpc是什么 remove produce call 远程过程调用 区别于调用本地方法,相当于调用远程服务器组件中...
  • CentOS 7 安装Spark-2.1.1-bin-hadoop-2.7 1 local模式(1台节点) ...进入spark_home目录,在bin目录下启动spark-shell,不报错说明正常本地模式安成功。 1.1 使用local模式访问内部Hive # 解压 tar -zxvf spar
  • windows搭建本地grafana前端开发环境

    千次阅读 2020-07-03 15:42:56
    现在windows的安装版文件...可以直接访问 localhost:3000 下载项目 并开始运行 git clone https://github.com/grafana/grafana cd grafana yarn install --pure-lockfile yarn start 修改C:\Progra...
  • Hive访问方式

    千次阅读 2018-10-29 11:30:26
    Hive的访问方式主要分为两种,一种是本地模式,通常用于单机测试,另一种是远程连接模式,比较常用。 本文前提: 1.本文使用的软件版本为: hadoop2.7.4 hive1.2.1 jdk1.8 2.运行hive之前保证jdk与hadoop配置...
  • WebExtension自动将网页价格本地化为尼泊尔货币。 扩展程序如何工作 该扩展程序在早上获取最新的货币汇率并进行缓存 将网页上所有以外币的价格转换为等效的NC。 例如,当您访问amazon.com时,将获得$ X的所有价格被...
  • 评价性 网页评估,着重于可访问性。 当前,它主要是围绕的包装,它对网站的可访问性问题进行了测试。 评估版有两个基本改进: 同时在多个断点(例如,移动设备,平板电脑和台式机... 或作为本地依赖项安装: $ yarn
  • 松露猪 :mushroom: :pig_face: TrufflePig是一个开发工具,它提供了一个简单的HTTP API来查找和读取生成的合同文件,以便在本地开发... 从您的松露项目中访问您的合同 http://localhost:3030/contracts?name=MyContrac
  • web 项目是使用的react框架,...yarn create @umijs/umi-app 需求: 打包后的文件需要本地可在浏览器打开 原理 原本打包后的文件 是在服务器中访问,静态文件中的 方案 在config中配置路径相关的属性 实测好用 ...
  • Mastodon机器人通过选择的主题标签增强所有本地的嘟嘟声。 克隆存储库( git clone https://github.com/Gargron/boost-bot.git ) 安装依赖项( yarn install )。 使用ACCESS_TOKEN , API_HOST和HASHTAG填写....
  • Finch是一个库,可让您构建可通过Web扩展的客户端脚本访问本地GraphQL API。 设置,您甚至可以从可连接的网站查询Finch GraphQL。 安装 npm install --save finch-graphql graphql react # or yarn add finch-...
  • cd /vulhub/hadoop/unauthorized-yarn docker-compose up -d http://ip:8088/cluster 访问地址出现此页面代表未授权访问 二、漏洞复现 exp #!/usr/bin/env python import requests target = '...
  • 通过超级大国轻松访问本地域 创建虚拟本地主机(使用https) 使用公开公共主机 使用为公共主机提供自动证书 通过网络发送的资源中的自动URL重写 自动Cookie改写 后台守护程序 安装 npm i -g @portless/cli # OR ...
  • LatestPDF是一个简单实用的Chrome扩展程序,可让您轻松快捷地访问PDF文件。 您可以从Chrome网络商店下载并安装“ RecentPDF”。 产品特点 弹出以显示最近查看或下载的本地和在线PDF文件。 能够在文件资源管理器中...
  • 集群启用了Kerberos认证后,集群中的一些组件的Web UI也会启用Kerberos认证,例如HDFS、Yarn、Hive等组件,此时如果在Windows上对这些页面进行访问,是无法正常访问的,需要在Windows本地安装上Kerberos客户端,...
  • 集群启用了Kerberos认证后,集群中的一些组件的Web UI也会启用Kerberos认证,例如HDFS、Yarn、Hive等组件,此时如果在Windows上对这些页面进行访问,是无法正常访问的,需要在Windows本地安装上Kerberos客户端,...
  • 集群启用了Kerberos认证后,集群中的一些组件的Web UI也会启用Kerberos认证,例如HDFS、Yarn、Hive等组件,此时如果在Windows上对这些页面进行访问,是无法正常访问的,需要在Windows本地安装上Kerberos客户端,...

空空如也

空空如也

1 2 3 4 5 ... 16
收藏数 315
精华内容 126
关键字:

本地访问yarn