云服务器内容精选
-
常用CLI Flink常用的CLI如下所示: yarn-session.sh 可以使用yarn-session.sh启动一个常驻的Flink集群,接受来自客户端提交的任务。启动一个有3个TaskManager实例的Flink集群示例如下: bin/yarn-session.sh -n 3 yarn-session.sh的其他参数可以通过以下命令获取: bin/yarn-session.sh -help Flink 使用flink命令可以提交Flink作业,作业既可以被提交到一个常驻的Flink集群上,也可以使用单机模式运行。 提交到常驻Flink集群上的一个示例如下: bin/flink run examples/streaming/WindowJoin.jar 用户在用该命令提交任务前需要先用yarn-session启动Flink集群。 以单机模式运行作业的一个示例如下: bin/flink run -m yarn-cluster -yn 2 examples/streaming/WindowJoin.jar 通过参数-m yarn-cluster使作业以单机模式运行,-yn表示TaskManager的数量。 flink脚本的其他参数可以通过以下命令获取: bin/flink --help
-
注意事项 如果yarn-session.sh使用-z配置特定的zookeeper的namespace,则在使用flink run时必须使用-yid指出applicationID,使用-yz指出zookeeper的namespace,前后namespace保持一致。 举例: bin/yarn-session.sh -n 3 -z YARN101 bin/flink run -yid application_****_**** -yz YARN101 examples/streaming/WindowJoin.jar 如果yarn-session.sh不使用-z配置特定的zookeeper的namespace,则在使用flink run时不要使用-yz指定特定的zookeeper的namespace。 举例: bin/yarn-session.sh -n 3 bin/flink run examples/streaming/WindowJoin.jar 如果使用flink run -m yarn-cluster时启动集群则可以使用-yz指定一个zookeeper的namespace。 不能同时启动两个或两个以上的集群来共享一个namespace。 用户在启动集群或提交作业时如果使用了-z配置项,则在删除、停止及查询作业、触发savepoint时也要使用-z配置项指明namespace。
-
Storm接口介绍 Storm采用的接口同开源社区版本保持一致,详情请参见: http://storm.apache.org/documentation/Home.html。 Storm-HDFS采用的接口同开源社区版本保持一致,详情参见: https://github.com/apache/storm/tree/v0.10.0/external/storm-hdfs。 Storm-HBase采用的接口同开源社区版本保持一致,详情参见: https://github.com/apache/storm/tree/v0.10.0/external/storm-hbase。 Storm-Kafka采用的接口同开源社区版本保持一致,详情参见: https://github.com/apache/storm/tree/v0.10.0/external/storm-kafka。 Storm-JDBC采用的接口同开源社区版本保持一致,详情参见: https://github.com/apache/storm/tree/v0.10.0/external/storm-jdbc。 父主题: Storm应用开发常见问题
-
登录MRS Manager 登录MRS管理控制台页面。 在“现有集群” 列表,单击指定的集群名称,进入集群信息页面。 单击“点击管理”,打开“访问MRS Manager页面”。 若用户创建集群时已经绑定弹性公网IP,如图1所示。 选择待添加的安全组规则所在安全组,该安全组在创建群时配置。 添加安全组规则,默认填充的是用户访问公网IP地址9022端口的规则,如需开放多个IP段为可信范围用于访问MRS Manager页面,请参考添加安全组规则。如需对安全组规则进行查看,修改和删除操作,请单击“管理安全组规则”。 自动获取的访问公网IP与用户本机IP不一致,属于正常现象,无需处理。 9022端口为knox的端口,需要开启访问knox的9022端口权限,才能访问MRS Manager服务。 勾选“我确认xx.xx.xx.xx为可信任的公网访问IP,并允许从该IP访问MRS Manager页面。” 图1 添加访问MRS Manager的安全组规则 若用户创建集群时暂未绑定弹性公网IP,如图2所示。 在弹性公网IP下拉框中选择可用的弹性公网IP或单击“管理弹性公网IP”创建弹性公网IP。 选择待添加的安全组规则所在安全组,该安全组在创建群时配置。 添加安全组规则,默认填充的是用户访问公网IP地址9022端口的规则,如需开放多个IP段为可信范围用于访问MRS Manager页面,请参考添加安全组规则。如需对安全组规则进行查看,修改和删除操作,请单击“管理安全组规则”。 自动获取的访问公网IP与用户本机IP不一致,属于正常现象,无需处理。 9022端口为knox的端口,需要开启访问knox的9022端口权限,才能访问MRS Manager服务。 勾选“我确认xx.xx.xx.xx为可信任的公网访问IP,并允许从该IP访问MRS Manager页面。” 图2 绑定弹性公网IP 单击“确定”,进入MRS Manager登录页面。 输入创建集群时默认的用户名“admin”及设置的密码,单击“登录”进入MRS Manager页面。
-
添加安全组规则 如需为其他用户开通访问MRS Manager的权限,参考该小节内容添加对应用户访问公网的IP地址为可信范围。 在MRS管理控制台,在“现有集群” 列表,单击指定的集群名称,进入集群信息页面。 单击弹性公网IP后边的“添加安全组规则”,如图3所示。 图3 集群详情 进入“添加安全组规则”页面,添加需要开放权限用户访问公网的IP地址段并勾选“我确认这里设置的授权对象是可信任的公网访问IP范围,禁止使用0.0.0.0/0,否则会有安全风险。”如图4所示。 图4 添加安全组规则 默认填充的是用户访问公网的IP地址,用户可根据需要修改IP地址段,如需开放多个IP段为可信范围,请重复执行步骤6-步骤9。如需对安全组规则进行查看,修改和删除操作,请单击“管理安全组规则”。 单击“确定”完成安全组规则添加。
-
问题 执行Spark Core应用,尝试收集大量数据到Driver端,当Driver端内存不足时,应用挂起不退出,日志内容如下。 16/04/19 15:56:22 ERROR Utils: Uncaught exception in thread task-result-getter-2 java.lang.OutOfMemoryError: Java heap space at java.lang.reflect.Array.newArray(Native Method) at java.lang.reflect.Array.newInstance(Array.java:75) at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1671) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1345) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2000) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1924) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2000) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1924) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351) at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1707) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1345) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371) at org.apache.spark.serializer.JavaDeserializationStream.readObject(JavaSerializer.scala:71) at org.apache.spark.serializer.JavaSerializerInstance.deserialize(JavaSerializer.scala:91) at org.apache.spark.scheduler.DirectTaskResult.value(TaskResult.scala:94) at org.apache.spark.scheduler.TaskResultGetter$$anon$3$$anonfun$run$1.apply$mcV$sp(TaskResultGetter.scala:66) at org.apache.spark.scheduler.TaskResultGetter$$anon$3$$anonfun$run$1.apply(TaskResultGetter.scala:57) at org.apache.spark.scheduler.TaskResultGetter$$anon$3$$anonfun$run$1.apply(TaskResultGetter.scala:57) at org.apache.spark.util.Utils$.logUncaughtExceptions(Utils.scala:1716) at org.apache.spark.scheduler.TaskResultGetter$$anon$3.run(TaskResultGetter.scala:56) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Exception in thread "task-result-getter-2" java.lang.OutOfMemoryError: Java heap space at java.lang.reflect.Array.newArray(Native Method) at java.lang.reflect.Array.newInstance(Array.java:75) at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1671) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1345) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2000) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1924) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2000) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1924) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351) at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1707) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1345) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371) at org.apache.spark.serializer.JavaDeserializationStream.readObject(JavaSerializer.scala:71) at org.apache.spark.serializer.JavaSerializerInstance.deserialize(JavaSerializer.scala:91) at org.apache.spark.scheduler.DirectTaskResult.value(TaskResult.scala:94) at org.apache.spark.scheduler.TaskResultGetter$$anon$3$$anonfun$run$1.apply$mcV$sp(TaskResultGetter.scala:66) at org.apache.spark.scheduler.TaskResultGetter$$anon$3$$anonfun$run$1.apply(TaskResultGetter.scala:57) at org.apache.spark.scheduler.TaskResultGetter$$anon$3$$anonfun$run$1.apply(TaskResultGetter.scala:57) at org.apache.spark.util.Utils$.logUncaughtExceptions(Utils.scala:1716) at org.apache.spark.scheduler.TaskResultGetter$$anon$3.run(TaskResultGetter.scala:56) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)
-
回答 用户尝试收集大量数据到Driver端,如果Driver端的内存不足以存放这些数据,那么就会抛出OOM(OutOfMemory)的异常,然后Driver端一直在进行GC,尝试回收垃圾来存放返回的数据,导致应用长时间挂起。 解决措施: 如果用户需要在OOM场景下强制将应用退出,那么可以在启动Spark Core应用时,在客户端配置文件“$SPARK_HOME/conf/spark-defaults.conf”中的配置项“spark.driver.extraJavaOptions”中添加如下内容: -XX:OnOutOfMemoryError='kill -9 %p'
-
如何获取对象URL?(Java SDK) 将桶中的对象权限设置为匿名用户读取权限后,可通过对象的URL直接下载该对象。获取对象URL的方式如下: 方式一,接口查询,ObsClient上传对象后会返回PutObjectResult对象,通过调用该对象的getObjectUrl接口可获取上传对象的URL。示例代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 // Endpoint以北京四为例,其他地区请按实际情况填写。 String endPoint = "https://obs.cn-north-4.myhuaweicloud.com"; // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量ACCESS_KEY_ID和SECRET_ACCESS_KEY_ID。 // 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html String ak = System.getenv("ACCESS_KEY_ID"); String sk = System.getenv("SECRET_ACCESS_KEY_ID"); // 创建ObsClient实例 ObsClient obsClient = new ObsClient(ak, sk, endPoint); // 调用putObject接口上传对象并获取其返回结果 PutObjectResult result = obsClient.putObject("bucketname", "objectname", new File("localfile")); // 读取该已上传对象的URL System.out.println("\t" + result.getObjectUrl()); 方式二,按https://桶名.域名/文件夹目录层级/对象名的方式进行拼接。 如果该对象存在于桶的根目录下,则链接地址将不需要有文件夹目录层级; 各区域对应的域名可以从这里的终端节点查看。 例如需访问区域为“华北-北京四”的桶名为“testbucket”中“test”文件夹下对象名为“test.txt”的对象,则该对象的URL为https://testbucket.obs.cn-north-4.myhuaweicloud.com/test/test.txt。 父主题: 常见问题(Java SDK)
-
扫描OpenTSDB的指标数据 tsdb命令可以使用“tsdb query”命令批量查询导入的指标数据,例如执行tsdb query 0 1h-ago sum sys.cpu.user host=web01命令。 Start run net.opentsdb.tools.CliQuery, args: 0 1h-ago sum sys.cpu.user host=web01 sys.cpu.user 1356998400000 41 {host=web01, cpu=0} sys.cpu.user 1356998401000 42 {host=web01, cpu=0} sys.cpu.user 1356998402000 44 {host=web01, cpu=0} sys.cpu.user 1356998403000 47 {host=web01, cpu=0} sys.cpu.user 1356998404000 42 {host=web01, cpu=0} sys.cpu.user 1356998405000 42 {host=web01, cpu=0}
-
HiveQL接口介绍 HiveQL支持当前使用的MRS Hive与对应开源Hive版本中的所有特性,详情请参见https://cwiki.apache.org/confluence/display/hive/languagemanual。MRS Hive版本与开源Hive版本的对应关系如表1所示。 表1 MRS Hive与开源版本对应关系一览表 MRS版本 开源Hive版本 MRS 1.9.x 2.3.3 父主题: Hive应用开发常见问题
-
回答 Spark部署时,如下jar包存放在客户端的“$SPARK_HOME/jars/streamingClient”目录以及服务端的“/opt/Bigdata/MRS/FusionInsight-Spark-2.2.1/spark/jars/streamingClient”目录: kafka-clients-0.8.2.1.jar kafka_2.10-0.8.2.1.jar spark-streaming-kafka_2.10-1.5.1.jar 由于$SPARK_HOME/lib/streamingClient/*默认没有添加到classpath,所以需要手动配置。 在提交应用程序运行时,在命令中添加如下参数即可: --jars $SPARK_CLIENT_HOME/jars/streamingClient/kafka-clients-0.8.2.1.jar,$SPARK_CLIENT_HOME/jars/streamingClient/kafka_2.10-0.8.2.1.jar,$SPARK_CLIENT_HOME/jars/streamingClient/park-streaming-kafka_2.10-1.5.1.jar 用户自己开发的应用程序以及样例工程都支持上述参数。 但是Spark开源社区提供的KafkaWordCount等样例程序,不仅需要添加--jars参数,还需要配置其他,否则会报“ClassNotFoundException”错误,yarn-client和yarn-cluster模式下稍有不同。 yarn-client模式下 在除--jars参数外,在客户端“spark-defaults.conf”配置文件中,将“spark.driver.extraClassPath”参数值中添加客户端依赖包路径,如“$SPARK_HOME/lib/streamingClient/*”。 yarn-cluster模式下 除--jars参数外,还需要配置其他,有三种方法任选其一即可,具体如下。 在客户端spark-defaults.conf配置文件中,在“spark.yarn.cluster.driver.extraClassPath”参数值中添加服务端的依赖包路径,如“/opt/huawei/Bigdata/FusionInsight/spark/spark/lib/streamingClient/*”。 将各服务端节点的“spark-examples_2.10-1.5.1.jar”包删除。 在客户端“spark-defaults.conf”配置文件中,修改或增加配置选项“spark.driver.userClassPathFirst = true”。
-
应用开发操作步骤 确认Storm组件已经安装,并正常运行。如果业务需要连接其他组件,请同时安装该组件并运行。 将storm-examples导入到Eclipse开发环境,请参见准备Storm应用开发环境。 参考storm-examples工程src/main/resources/flux-examples目录下的相关yaml应用示例,开发客户端业务。 获取相关配置文件。 本步骤只适用于业务中有访问外部组件需求的场景,如HDFS、HBase等,获取方式请参见Storm-HDFS开发指引或者Storm-HBase开发指引。若业务无需获取相关配置文件,请忽略本步骤。
-
部署运行及结果查看 使用如下命令打包:“mvn package”。执行成功后,将会在target目录生成storm-examples-1.0.jar。 将打好的jar包,以及开发好的yaml文件及相关的properties文件拷贝至storm客户端所在主机的任意目录下,如“/opt”。 执行命令提交拓扑。 storm jar /opt/jartarget/storm-examples-1.0.jar org.apache.storm.flux.Flux --remote /opt/my-topology.yaml 如果设置业务以本地模式启动,则提交命令如下。 storm jar /opt/jartarget/storm-examples-1.0.jar org.apache.storm.flux.Flux --local /opt/my-topology.yaml 如果业务设置为本地模式,请确保提交环境为普通模式环境,当前不支持安全环境下使用命令提交本地模式的业务。 如果使用了properties文件,则提交命令如下。 storm jar /opt/jartarget/storm-examples-1.0.jar org.apache.storm.flux.Flux --remote /opt/my-topology.yaml --filter /opt/my-prop.properties 拓扑提交成功后请自行登录storm UI查看。
-
下载MRS客户端 登录MRS Manager,请参考登录MRS Manager。 选择“服务管理”。 单击“下载客户端”。 在“客户端类型”选择“完整客户端”。 在“下载路径”选择“远端主机”。 将“主机IP”设置为新申请的弹性云服务器的IP地址,设置“主机端口”为“22”,并将“存放路径”设置为“/tmp”。 如果使用SSH登录ECS的默认端口“22”被修改,请将“主机端口”设置为新端口。 “保存路径”最多可以包含256个字符。 “登录用户”设置为“root”。 如果使用其他用户,请确保该用户对保存目录拥有读取、写入和执行权限。 在“登录方式”选择“密码”或“SSH私钥”。 密码:输入创建集群时设置的root用户密码。 SSH私钥:选择并上传创建集群时使用的密钥文件。 图1 下载客户端 单击“确定”开始生成客户端文件。 若界面显示以下提示信息表示客户端包已经成功保存。单击“关闭”。客户端文件请到下载客户端时设置的远端主机的“存放路径”中获取。 下载客户端文件到远端主机成功。 若界面显示以下提示信息,请检查用户名密码及远端主机的安全组配置,确保用户名密码正确,及远端主机的安全组已增加SSH(22)端口的入方向规则。然后从2执行重新开始下载客户端。 连接到服务器失败,请检查网络连接或参数设置。 生成客户端会占用大量的磁盘IO,不建议在集群处于安装中、启动中、打补丁中等非稳态场景下载客户端。 父主题: HDFS应用开发常见问题
-
解决步骤 检查工程conf目录下“client.properties”中配置的“bootstrap.servers”配置值中访问的IP和端口是否正确。 如果IP与Kafka集群部署的业务IP不一致,那么需要修改为当前集群正确的IP地址。 如果配置中的端口为21007(开启kerberos认证模式端口),那么修改该端口为9092(没有开启kerberos认证模式端口)。 检查网络是否正常,确保当前机器能够正常访问Kafka集群。
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格