我有三个安装了docker的物理节点。我有一个码头集装箱与mesos,马拉松,hadoop和flink。我为mesos、zookeeper和marathon配置了主节点和从节点。我一步一步地做这些工作。首先,在主节点中,我使用以下命令进入docker容器:
docker run -v /home/user/.ssh:/root/.ssh --privileged -p 5050:5050 -p 5051:5051 -p 5052:5052 -p 2181:2181 -p 8082:8081 -p 6123:6123 -p 8080:8080 -p 50090:50090 -p 50070:50070 -p 9000:9000 -p 2888:2888 -p 3888:3888 -p 4041:4040 -p 7077:7077 -p 52222:22 -e WEAVE_CIDR=10.32.0.2/12 -e MESOS_EXECUTOR_REGISTRATION_TIMEOUT=5mins -e LIBPROCESS_IP=10.32.0.2 -e MESOS_RESOURCES=ports*:[11000-11999] -ti hadoop_marathon_mesos_flink_2 /bin/bash
然后运行mesos和zookeeper:
/home/zookeeper-3.4.14/bin/zkServer.sh restart
/home/mesos-1.7.2/build/bin/mesos-master.sh --ip=10.32.0.1 --hostname=10.32.0.1 --roles=marathon,flink --quorum=1 --work_dir=/var/run/mesos --log_dir=/var/log/mesos
在同一个集装箱里跑完马拉松之后:
/home/marathon-1.7.189-48bfd6000/bin/marathon --master 10.32.0.1:5050 --zk zk://10.32.0.1:2181/marathon --hostname 10.32.0.1 --webui_url 10.32.0.1:8080 --logging_level debug
最后,我运行hadoop:
/opt/hadoop/sbin/start-dfs.sh
马拉松、mesos和hadoop运行起来没有任何问题。我工作中最重要的部分就是跑马拉松。我在docker容器中配置flink如下:
env.java.home: /opt/java
jobmanager.rpc.address: 10.32.0.1
high-availability: zookeeper
high-availability.storageDir: hdfs:///flink/ha/
high-availability.zookeeper.quorum: 10.32.0.1:2181,10.32.0.2:2181
recovery.zookeeper.path.mesos-workers: /mesos-workers
在marathonui中,我创建了应用程序并将这个json文件放在上面,但失败了。
{
"id": "flink",
"cmd": "/home/flink-1.7.0/bin/mesos-appmaster.sh
-Dmesos.master=10.32.0.1:5050,10.32.0.2:5050
-Dmesos.initial-tasks=1",
"cpus": 1.0,
"mem": 1024
}
flink应用程序在mesos ui中失败。显示此错误:
i0428 06:01:39.586699 6155执行。cpp:162]版本:1.7.2
i0428 06:01:39.596458 6154执行。cpp:236]登记在代理人984595ae-e811-48fb-a9f5-ca6128e1cc1a-s0上的遗嘱执行人
i0428 06:01:39.598870 6157执行人。cpp:188]已收到订阅的事件
i0428 06:01:39.599761 6157执行人。cpp:192]10.32.0.3认购执行人
i0428 06:01:39.599963 6157执行人。cpp:188]已接收启动事件
i0428 06:01:39.601236 6157执行人。cpp:697]启动任务flink.16a7cc18-697b-11e9-928f-ce235caa831e
i0428 06:01:39.613719 6157执行人。cpp:712]6163分岔指挥
i0428 06:01:39.787395 6157执行人。cpp:1013]命令退出,状态为1(pid:6163)
i0428 06:01:40.791885 6162过程。cpp:927]停止了套接字接受循环
奇怪的是,在stdout中,我看到了这段文字;尽管我在/etc/environment和flink-conf.yam中设置了javau home。
请指定javau home。在flink config./conf/flink-conf.yaml中,或者作为系统范围的java\u home。
你能告诉我该怎么解决那个问题吗?
非常感谢。
1条答案
按热度按时间tyu7yeag1#
您可以在从属节点中检查flink日志。另外,最好像这样更改json文件。它可以帮助你跟踪你的申请。
另外,java\u在每个节点(主节点和从节点)中都是flink\u conf.yaml的家。
通过添加javau home,您不会看到stdout中的错误。
我认为这是有用的。