resourcemanager UI界面无法访问报错KeeperErrorCode = ConnectionLoss for /rmstore

之前有4个Zookeeper节点,删除一个节点后,过段时间重启了resourcemanager服务,服务启动了,但是UI界面看不了,报错如下:

2016-05-05 16:13:22,683 INFO  recovery.ZKRMStateStore (ZKRMStateStore.java:runWithRetries(1145)) - Retrying operation on ZK. Retry no. 283
2016-05-05 16:13:23,423 INFO  zookeeper.ClientCnxn (ClientCnxn.java:logStartConnect(975)) - Opening socket connection to server testserver4.bj/10.111.32.53:2181. Will not attempt to authenticate using SASL (unknown error)
2016-05-05 16:13:23,424 INFO  zookeeper.ClientCnxn (ClientCnxn.java:primeConnection(852)) - Socket connection established to testserver4.bj/10.111.32.53:2181, initiating session
2016-05-05 16:13:23,425 INFO  zookeeper.ClientCnxn (ClientCnxn.java:run(1098)) - Unable to read additional data from server sessionid 0x0, likely server has closed socket, closing socket connection and attempting reconnect
2016-05-05 16:13:23,874 INFO  zookeeper.ZooKeeper (ZooKeeper.java:close(684)) - Session: 0x0 closed
2016-05-05 16:13:23,874 INFO  zookeeper.ZooKeeper (ZooKeeper.java:<init>(438)) - Initiating client connection, connectString=testserver1.bj:2181,testserver2.bj:2181,testserver4.bj:2181 sessionTimeout=10000 watcher=null
2016-05-05 16:13:23,874 INFO  zookeeper.ClientCnxn (ClientCnxn.java:run(512)) - EventThread shut down
2016-05-05 16:13:23,881 INFO  recovery.ZKRMStateStore (ZKRMStateStore.java:createConnection(1184)) - Created new ZK connection
2016-05-05 16:13:23,883 INFO  zookeeper.ClientCnxn (ClientCnxn.java:logStartConnect(975)) - Opening socket connection to server testserver4.bj/10.111.32.53:2181. Will not attempt to authenticate using SASL (unknown error)
2016-05-05 16:13:23,884 INFO  zookeeper.ClientCnxn (ClientCnxn.java:primeConnection(852)) - Socket connection established to testserver4.bj/10.111.32.53:2181, initiating session
2016-05-05 16:13:23,884 INFO  zookeeper.ClientCnxn (ClientCnxn.java:run(1098)) - Unable to read additional data from server sessionid 0x0, likely server has closed socket, closing socket connection and attempting reconnect
2016-05-05 16:13:23,985 INFO  recovery.ZKRMStateStore (ZKRMStateStore.java:runWithRetries(1143)) - Exception while executing a ZK operation.
org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /rmstore
        at org.apache.zookeeper.KeeperException.create(KeeperException.java:99)
        at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
        at org.apache.zookeeper.ZooKeeper.create(ZooKeeper.java:783)
        at org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore$1.run(ZKRMStateStore.java:309)
        at org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore$1.run(ZKRMStateStore.java:305)
        at org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore$ZKAction.runWithCheck(ZKRMStateStore.java:1104)
        at org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore$ZKAction.runWithRetries(ZKRMStateStore.java:1125)
        at org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore.createRootDir(ZKRMStateStore.java:305)
        at org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore.createRootDirRecursively(ZKRMStateStore.java:1219)
        at org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore.startInternal(ZKRMStateStore.java:288)
        at org.apache.hadoop.yarn.server.resourcemanager.recovery.RMStateStore.serviceStart(RMStateStore.java:498)
        at org.apache.hadoop.service.AbstractService.start(AbstractService.java:193)
        at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager$RMActiveServices.serviceStart(ResourceManager.java:580)
        at org.apache.hadoop.service.AbstractService.start(AbstractService.java:193)
        at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.startActiveServices(ResourceManager.java:982)
        at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager$1.run(ResourceManager.java:1023)
        at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager$1.run(ResourceManager.java:1019)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:422)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657)
        at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.transitionToActive(ResourceManager.java:1019)
        at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.serviceStart(ResourceManager.java:1059)
        at org.apache.hadoop.service.AbstractService.start(AbstractService.java:193)
        at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.main(ResourceManager.java:1203)
2016-05-05 16:13:23,985 INFO  recovery.ZKRMStateStore (ZKRMStateStore.java:runWithRetries(1145)) - Retrying operation on ZK. Retry no. 284
2016-05-05 16:13:24,136 INFO  zookeeper.ClientCnxn (ClientCnxn.java:logStartConnect(975)) - Opening socket connection to server testserver1.bj/10.111.32.50:2181. Will not attempt to authenticate using SASL (unknown error)
2016-05-05 16:13:24,136 INFO  zookeeper.ClientCnxn (ClientCnxn.java:primeConnection(852)) - Socket connection established to testserver1.bj/10.111.32.50:2181, initiating session
2016-05-05 16:13:24,137 INFO  zookeeper.ClientCnxn (ClientCnxn.java:run(1098)) - Unable to read additional data from server sessionid 0x0, likely server has closed socket, closing socket connection and attempting reconnect
2016-05-05 16:13:24,315 INFO  zookeeper.ClientCnxn (ClientCnxn.java:logStartConnect(975)) - Opening socket connection to server testserver2.bj/10.111.32.51:2181. Will not attempt to authenticate using SASL (unknown error)
2016-05-05 16:13:24,315 INFO  zookeeper.ClientCnxn (ClientCnxn.java:primeConnection(852)) - Socket connection established to testserver2.bj/10.111.32.51:2181, initiating session
2016-05-05 16:13:24,316 INFO  zookeeper.ClientCnxn (ClientCnxn.java:run(1098)) - Unable to read additional data from server sessionid 0x0, likely server has closed socket, closing socket connection and attempting reconnect


重启所有Zookeeper问题解决。
抖音的UI界面非常复杂,实现起来比较困难,需要耗费大量的时间和精力。以下是一个简单实现的示例代码,仅供参考。 1. 首先创建一个布局文件,例如 main_ability.xml。 ``` <?xml version="1.0" encoding="utf-8"?> <DirectionalLayout xmlns:ohos="http://schemas.huawei.com/res/ohos" ohos:height="match_parent" ohos:width="match_parent" ohos:orientation="vertical"> <Text ohos:id="$+id:title" ohos:height="50vp" ohos:width="match_parent" ohos:text="抖音" ohos:textSize="50fp"/> <ListContainer ohos:id="$+id:list_container" ohos:height="match_parent" ohos:width="match_parent"/> </DirectionalLayout> ``` 2. 在 main_ability.xml 文件中,使用 ListContainer 组件来展示视频列表,我们需要自定义一个 ItemProvider。 ``` public class VideoItemProvider extends BaseItemProvider { private final List<Video> videos; public VideoItemProvider(List<Video> videos) { this.videos = videos; } @Override public int getCount() { return videos.size(); } @Override public Object getItem(int position) { return videos.get(position); } @Override public long getItemId(int position) { return position; } @Override public Component getComponent(int position, Component component, ComponentContainer componentContainer) { if (component == null) { component = LayoutScatter.getInstance(componentContainer.getContext()) .parse(ResourceTable.Layout_video_item, null, false); } Video video = videos.get(position); // 设置视频封面 Image coverImage = (Image) component.findComponentById(ResourceTable.Id_cover_image); coverImage.setPixelMap(createPixelMap(video.getCover())); // 设置视频标题 Text titleText = (Text) component.findComponentById(ResourceTable.Id_title_text); titleText.setText(video.getTitle()); // 设置作者信息 Text authorText = (Text) component.findComponentById(ResourceTable.Id_author_text); authorText.setText(video.getAuthor()); return component; } private PixelMap createPixelMap(int resourceId) { ResourceManager resourceManager = getResourceManager(); return ImageSource.create(resourceManager, resourceId).createPixelmap(null); } } ``` 3. 创建一个 Video 类,用来保存视频的信息。 ``` public class Video { private final int cover; private final String title; private final String author; public Video(int cover, String title, String author) { this.cover = cover; this.title = title; this.author = author; } public int getCover() { return cover; } public String getTitle() { return title; } public String getAuthor() { return author; } } ``` 4. 在 MainActivity 中,将数据填充到 ListContainer 中。 ``` public class MainActivity extends AbilitySlice { private final List<Video> videos = new ArrayList<>(); @Override public void onStart(Intent intent) { super.onStart(intent); // 添加视频数据 videos.add(new Video(R.drawable.video1, "这是一个标题", "这是一个作者")); videos.add(new Video(R.drawable.video2, "这是一个标题", "这是一个作者")); videos.add(new Video(R.drawable.video3, "这是一个标题", "这是一个作者")); videos.add(new Video(R.drawable.video4, "这是一个标题", "这是一个作者")); videos.add(new Video(R.drawable.video5, "这是一个标题", "这是一个作者")); // 加载布局文件 Component component = LayoutScatter.getInstance(this) .parse(ResourceTable.Layout_main_ability, null, false); // 获取 ListContainer 组件 ListContainer listContainer = (ListContainer) component.findComponentById(ResourceTable.Id_list_container); // 设置 ItemProvider listContainer.setItemProvider(new VideoItemProvider(videos)); // 将布局文件添加到界面中 super.setUIContent(component); } } ``` 5. 最后,将 MainActivity 注册到 manifest.xml 文件中。 ``` <?xml version="1.0" encoding="utf-8"?> <ability xmlns:ohos="http://schemas.huawei.com/res/ohos" ohos:description="@string/app_name"> <name>com.example.app.MainActivity</name> <label>@string/app_name</label> <permission ohos:name="ohos.permission.DISTRIBUTED_DATASYNC" ohos:label="distributed_data_sync"/> <config> <deviceType>phone</deviceType> </config> <intent> <action>android.intent.action.MAIN</action> <category>android.intent.category.LAUNCHER</category> </intent> </ability> ``` 这样,就可以在鸿蒙系统中实现一个简单的抖音 UI 界面了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值