• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java UserInfo类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.UserInfo的典型用法代码示例。如果您正苦于以下问题:Java UserInfo类的具体用法?Java UserInfo怎么用?Java UserInfo使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



UserInfo类属于org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity包,在下文中一共展示了UserInfo类的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: render

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.UserInfo; //导入依赖的package包/类
@Override
protected void render(Block html) {
  TBODY<TABLE<Hamlet>> tbody =
          html.table("#userinfo").thead().$class("ui-widget-header").tr().th()
                  .$class("ui-state-default")._("User Name")._().th()
                  .$class("ui-state-default")._("Max Resource")._().th()
                  .$class("ui-state-default")._("Used Resource")._().th()
                  .$class("ui-state-default")._("Max AM Resource")._().th()
                  .$class("ui-state-default")._("Used AM Resource")._().th()
                  .$class("ui-state-default")._("Schedulable Apps")._().th()
                  .$class("ui-state-default")._("Non-Schedulable Apps")._()._()._()
                  .tbody();

  ArrayList<UserInfo> users = lqinfo.getUsers().getUsersList();
  for (UserInfo userInfo : users) {
    tbody.tr().td(userInfo.getUsername())
            .td(userInfo.getUserResourceLimit().toString())
            .td(userInfo.getResourcesUsed().toString())
            .td(lqinfo.getUserAMResourceLimit().toString())
            .td(userInfo.getAMResourcesUsed().toString())
            .td(Integer.toString(userInfo.getNumActiveApplications()))
            .td(Integer.toString(userInfo.getNumPendingApplications()))._();
  }

  html.div().$class("usersinfo").h5("Active Users Info")._();
  tbody._()._();
}
 
开发者ID:naver,项目名称:hadoop,代码行数:28,代码来源:CapacitySchedulerPage.java


示例2: render

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.UserInfo; //导入依赖的package包/类
@Override
protected void render(Block html) {
  TBODY<TABLE<Hamlet>> tbody =
      html.table("#userinfo").thead().$class("ui-widget-header").tr().th()
          .$class("ui-state-default")._("User Name")._().th()
          .$class("ui-state-default")._("Max Resource")._().th()
          .$class("ui-state-default")._("Used Resource")._().th()
          .$class("ui-state-default")._("Max AM Resource")._().th()
          .$class("ui-state-default")._("Used AM Resource")._().th()
          .$class("ui-state-default")._("Schedulable Apps")._().th()
          .$class("ui-state-default")._("Non-Schedulable Apps")._()._()._()
          .tbody();

  ArrayList<UserInfo> users = lqinfo.getUsers().getUsersList();
  for (UserInfo userInfo : users) {
    ResourceInfo resourcesUsed = userInfo.getResourcesUsed();
    if (nodeLabel != null) {
      resourcesUsed = userInfo.getResourceUsageInfo()
          .getPartitionResourceUsageInfo(nodeLabel).getUsed();
    }
    tbody.tr().td(userInfo.getUsername())
        .td(userInfo.getUserResourceLimit().toString())
        .td(resourcesUsed.toString())
        .td(lqinfo.getUserAMResourceLimit().toString())
        .td(userInfo.getAMResourcesUsed().toString())
        .td(Integer.toString(userInfo.getNumActiveApplications()))
        .td(Integer.toString(userInfo.getNumPendingApplications()))._();
  }

  html.div().$class("usersinfo").h5("Active Users Info")._();
  tbody._()._();
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:33,代码来源:CapacitySchedulerPage.java


示例3: render

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.UserInfo; //导入依赖的package包/类
@Override
protected void render(Block html) {
  TBODY<TABLE<Hamlet>> tbody =
      html.table("#userinfo").thead().$class("ui-widget-header").tr().th()
          .$class("ui-state-default")._("User Name")._().th()
          .$class("ui-state-default")._("Max Resource")._().th()
          .$class("ui-state-default")._("Used Resource")._().th()
          .$class("ui-state-default")._("Max AM Resource")._().th()
          .$class("ui-state-default")._("Used AM Resource")._().th()
          .$class("ui-state-default")._("Schedulable Apps")._().th()
          .$class("ui-state-default")._("Non-Schedulable Apps")._()._()._()
          .tbody();

  ArrayList<UserInfo> users = lqinfo.getUsers().getUsersList();
  for (UserInfo userInfo : users) {
    tbody.tr().td(userInfo.getUsername())
        .td(userInfo.getUserResourceLimit().toString())
        .td(userInfo.getResourcesUsed().toString())
        .td(lqinfo.getUserAMResourceLimit().toString())
        .td(userInfo.getAMResourcesUsed().toString())
        .td(Integer.toString(userInfo.getNumActiveApplications()))
        .td(Integer.toString(userInfo.getNumPendingApplications()))._();
  }

  html.div().$class("usersinfo").h5("Active Users Info")._();
  tbody._()._();
}
 
开发者ID:yncxcw,项目名称:big-c,代码行数:28,代码来源:CapacitySchedulerPage.java


示例4: render

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.UserInfo; //导入依赖的package包/类
@Override
protected void render(Block html) {
  StringBuilder activeUserList = new StringBuilder("");
  ResourceInfo usedResources = lqinfo.getResourcesUsed();
  ArrayList<UserInfo> users = lqinfo.getUsers().getUsersList();
  for (UserInfo entry: users) {
    activeUserList.append(entry.getUsername()).append(" &lt;")
      .append(getPercentage(entry.getResourcesUsed(), usedResources))
      .append(", Schedulable Apps: " + entry.getNumActiveApplications())
      .append(", Non-Schedulable Apps: " + entry.getNumPendingApplications())
      .append("&gt;<br style='display:block'>"); //Force line break
  }

  ResponseInfo ri = info("\'" + lqinfo.getQueuePath().substring(5) + "\' Queue Status").
      _("Queue State:", lqinfo.getQueueState()).
      _("Used Capacity:", percent(lqinfo.getUsedCapacity() / 100)).
      _("Absolute Used Capacity:", percent(lqinfo.getAbsoluteUsedCapacity() / 100)).
      _("Absolute Capacity:", percent(lqinfo.getAbsoluteCapacity() / 100)).
      _("Absolute Max Capacity:", percent(lqinfo.getAbsoluteMaxCapacity() / 100)).
      _("Used Resources:", lqinfo.getResourcesUsed().toString()).
      _("Num Schedulable Applications:", Integer.toString(lqinfo.getNumActiveApplications())).
      _("Num Non-Schedulable Applications:", Integer.toString(lqinfo.getNumPendingApplications())).
      _("Num Containers:", Integer.toString(lqinfo.getNumContainers())).
      _("Max Applications:", Integer.toString(lqinfo.getMaxApplications())).
      _("Max Applications Per User:", Integer.toString(lqinfo.getMaxApplicationsPerUser())).
      _("Max Schedulable Applications:", Integer.toString(lqinfo.getMaxActiveApplications())).
      _("Max Schedulable Applications Per User:", Integer.toString(lqinfo.getMaxActiveApplicationsPerUser())).
      _("Configured Capacity:", percent(lqinfo.getCapacity() / 100)).
      _("Configured Max Capacity:", percent(lqinfo.getMaxCapacity() / 100)).
      _("Configured Minimum User Limit Percent:", Integer.toString(lqinfo.getUserLimit()) + "%").
      _("Configured User Limit Factor:", String.format("%.1f", lqinfo.getUserLimitFactor())).
      _("Active Users: ", activeUserList.toString()).
      _r("Accessible Node Labels:", StringUtils.join(",", lqinfo.getNodeLabels()));

  html._(InfoBlock.class);

  // clear the info contents so this queue's info doesn't accumulate into another queue's info
  ri.clear();
}
 
开发者ID:Nextzero,项目名称:hadoop-2.6.0-cdh5.4.3,代码行数:40,代码来源:CapacitySchedulerPage.java


示例5: render

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.UserInfo; //导入依赖的package包/类
@Override
protected void render(Block html) {
  StringBuilder activeUserList = new StringBuilder("");
  ResourceInfo usedResources = lqinfo.getResourcesUsed();
  ArrayList<UserInfo> users = lqinfo.getUsers().getUsersList();
  for (UserInfo entry: users) {
    activeUserList.append(entry.getUsername()).append(" &lt;")
      .append(getPercentage(entry.getResourcesUsed(), usedResources))
      .append(", Active Apps: " + entry.getNumActiveApplications())
      .append(", Pending Apps: " + entry.getNumPendingApplications())
      .append("&gt;<br style='display:block'>"); //Force line break
  }

  ResponseInfo ri = info("\'" + lqinfo.getQueuePath().substring(5) + "\' Queue Status").
      _("Queue State:", lqinfo.getQueueState()).
      _("Used Capacity:", percent(lqinfo.getUsedCapacity() / 100)).
      _("Absolute Capacity:", percent(lqinfo.getAbsoluteCapacity() / 100)).
      _("Absolute Max Capacity:", percent(lqinfo.getAbsoluteMaxCapacity() / 100)).
      _("Used Resources:", StringEscapeUtils.escapeHtml(lqinfo.getUsedResources().toString())).
      _("Num Active Applications:", Integer.toString(lqinfo.getNumActiveApplications())).
      _("Num Pending Applications:", Integer.toString(lqinfo.getNumPendingApplications())).
      _("Num Containers:", Integer.toString(lqinfo.getNumContainers())).
      _("Max Applications:", Integer.toString(lqinfo.getMaxApplications())).
      _("Max Applications Per User:", Integer.toString(lqinfo.getMaxApplicationsPerUser())).
      _("Max Active Applications:", Integer.toString(lqinfo.getMaxActiveApplications())).
      _("Max Active Applications Per User:", Integer.toString(lqinfo.getMaxActiveApplicationsPerUser())).
      _("Configured Capacity:", percent(lqinfo.getCapacity() / 100)).
      _("Configured Max Capacity:", percent(lqinfo.getMaxCapacity() / 100)).
      _("Configured Minimum User Limit Percent:", Integer.toString(lqinfo.getUserLimit()) + "%").
      _("Configured User Limit Factor:", String.format("%.1f", lqinfo.getUserLimitFactor())).
      _r("Active users: ", activeUserList.toString());

  html._(InfoBlock.class);

  // clear the info contents so this queue's info doesn't accumulate into another queue's info
  ri.clear();
}
 
开发者ID:ict-carch,项目名称:hadoop-plus,代码行数:38,代码来源:CapacitySchedulerPage.java


示例6: renderQueueCapacityInfo

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.UserInfo; //导入依赖的package包/类
private void renderQueueCapacityInfo(ResponseInfo ri, String label) {
  PartitionQueueCapacitiesInfo capacities =
      lqinfo.getCapacities().getPartitionQueueCapacitiesInfo(label);
  PartitionResourcesInfo resourceUsages =
      lqinfo.getResources().getPartitionResourceUsageInfo(label);

  // Get UserInfo from first user to calculate AM Resource Limit per user.
  ResourceInfo userAMResourceLimit = null;
  ArrayList<UserInfo> usersList = lqinfo.getUsers().getUsersList();
  if (usersList.isEmpty()) {
    // If no users are present, consider AM Limit for that queue.
    userAMResourceLimit = resourceUsages.getAMLimit();
  } else {
    userAMResourceLimit = usersList.get(0)
        .getResourceUsageInfo().getPartitionResourceUsageInfo(label)
        .getAMLimit();
  }
  ResourceInfo amUsed = (resourceUsages.getAmUsed() == null)
      ? new ResourceInfo(Resources.none())
      : resourceUsages.getAmUsed();
  ri.
  _("Used Capacity:", percent(capacities.getUsedCapacity() / 100)).
  _("Configured Capacity:", percent(capacities.getCapacity() / 100)).
  _("Configured Max Capacity:", percent(capacities.getMaxCapacity() / 100)).
  _("Absolute Used Capacity:", percent(capacities.getAbsoluteUsedCapacity() / 100)).
  _("Absolute Configured Capacity:", percent(capacities.getAbsoluteCapacity() / 100)).
  _("Absolute Configured Max Capacity:", percent(capacities.getAbsoluteMaxCapacity() / 100)).
  _("Used Resources:", resourceUsages.getUsed().toString()).
  _("Configured Max Application Master Limit:", StringUtils.format("%.1f",
      capacities.getMaxAMLimitPercentage())).
  _("Max Application Master Resources:",
      resourceUsages.getAMLimit().toString()).
  _("Used Application Master Resources:",
      amUsed.toString()).
  _("Max Application Master Resources Per User:",
      userAMResourceLimit.toString());
}
 
开发者ID:hopshadoop,项目名称:hops,代码行数:38,代码来源:CapacitySchedulerPage.java


示例7: render

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.UserInfo; //导入依赖的package包/类
@Override
protected void render(Block html) {
  TBODY<TABLE<Hamlet>> tbody =
      html.table("#userinfo").thead().$class("ui-widget-header").tr().th()
          .$class("ui-state-default")._("User Name")._().th()
          .$class("ui-state-default")._("Max Resource")._().th()
          .$class("ui-state-default")._("Used Resource")._().th()
          .$class("ui-state-default")._("Max AM Resource")._().th()
          .$class("ui-state-default")._("Used AM Resource")._().th()
          .$class("ui-state-default")._("Schedulable Apps")._().th()
          .$class("ui-state-default")._("Non-Schedulable Apps")._()._()._()
          .tbody();

  ArrayList<UserInfo> users = lqinfo.getUsers().getUsersList();
  for (UserInfo userInfo : users) {
    ResourceInfo resourcesUsed = userInfo.getResourcesUsed();
    PartitionResourcesInfo resourceUsages = lqinfo
        .getResources()
        .getPartitionResourceUsageInfo((nodeLabel == null) ? "" : nodeLabel);
    if (nodeLabel != null) {
      resourcesUsed = userInfo.getResourceUsageInfo()
          .getPartitionResourceUsageInfo(nodeLabel).getUsed();
    }
    ResourceInfo amUsed = (resourceUsages.getAmUsed() == null)
        ? new ResourceInfo(Resources.none())
        : resourceUsages.getAmUsed();
    tbody.tr().td(userInfo.getUsername())
        .td(userInfo.getUserResourceLimit().toString())
        .td(resourcesUsed.toString())
        .td(resourceUsages.getAMLimit().toString())
        .td(amUsed.toString())
        .td(Integer.toString(userInfo.getNumActiveApplications()))
        .td(Integer.toString(userInfo.getNumPendingApplications()))._();
  }

  html.div().$class("usersinfo").h5("Active Users Info")._();
  tbody._()._();
}
 
开发者ID:hopshadoop,项目名称:hops,代码行数:39,代码来源:CapacitySchedulerPage.java


示例8: CapacitySchedulerLeafQueueInfo

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.UserInfo; //导入依赖的package包/类
CapacitySchedulerLeafQueueInfo(LeafQueue q) {
  super(q);
  numActiveApplications = q.getNumActiveApplications();
  numPendingApplications = q.getNumPendingApplications();
  numContainers = q.getNumContainers();
  maxApplications = q.getMaxApplications();
  maxApplicationsPerUser = q.getMaxApplicationsPerUser();
  userLimit = q.getUserLimit();
  users = new UsersInfo(q.getUsers());
  userLimitFactor = q.getUserLimitFactor();
  AMResourceLimit = new ResourceInfo(q.getAMResourceLimit());
  usedAMResource = new ResourceInfo(q.getQueueResourceUsage().getAMUsed());
  preemptionDisabled = q.getPreemptionDisabled();
  orderingPolicyInfo = q.getOrderingPolicy().getInfo();
  defaultNodeLabelExpression = q.getDefaultNodeLabelExpression();
  defaultPriority = q.getDefaultApplicationPriority().getPriority();
  ArrayList<UserInfo> usersList = users.getUsersList();
  if (usersList.isEmpty()) {
    // If no users are present, consider AM Limit for that queue.
    userAMResourceLimit = resources.getPartitionResourceUsageInfo(
        RMNodeLabelsManager.NO_LABEL).getAMLimit();
  } else {
    userAMResourceLimit = usersList.get(0).getResourceUsageInfo()
        .getPartitionResourceUsageInfo(RMNodeLabelsManager.NO_LABEL)
        .getAMLimit();
  }
}
 
开发者ID:hopshadoop,项目名称:hops,代码行数:28,代码来源:CapacitySchedulerLeafQueueInfo.java


示例9: render

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.UserInfo; //导入依赖的package包/类
@Override
protected void render(Block html) {
  StringBuilder activeUserList = new StringBuilder("");
  ResourceInfo usedResources = lqinfo.getResourcesUsed();
  ArrayList<UserInfo> users = lqinfo.getUsers().getUsersList();
  for (UserInfo entry: users) {
    activeUserList.append(entry.getUsername()).append(" &lt;")
      .append(getPercentage(entry.getResourcesUsed(), usedResources))
      .append(", Schedulable Apps: " + entry.getNumActiveApplications())
      .append(", Non-Schedulable Apps: " + entry.getNumPendingApplications())
      .append("&gt;<br style='display:block'>"); //Force line break
  }

  ResponseInfo ri = info("\'" + lqinfo.getQueuePath().substring(5) + "\' Queue Status").
      _("Queue State:", lqinfo.getQueueState()).
      _("Used Capacity:", percent(lqinfo.getUsedCapacity() / 100)).
      _("Absolute Used Capacity:", percent(lqinfo.getAbsoluteUsedCapacity() / 100)).
      _("Absolute Capacity:", percent(lqinfo.getAbsoluteCapacity() / 100)).
      _("Absolute Max Capacity:", percent(lqinfo.getAbsoluteMaxCapacity() / 100)).
      _("Used Resources:", StringEscapeUtils.escapeHtml(lqinfo.getUsedResources().toString())).
      _("Num Schedulable Applications:", Integer.toString(lqinfo.getNumActiveApplications())).
      _("Num Non-Schedulable Applications:", Integer.toString(lqinfo.getNumPendingApplications())).
      _("Num Containers:", Integer.toString(lqinfo.getNumContainers())).
      _("Max Applications:", Integer.toString(lqinfo.getMaxApplications())).
      _("Max Applications Per User:", Integer.toString(lqinfo.getMaxApplicationsPerUser())).
      _("Max Schedulable Applications:", Integer.toString(lqinfo.getMaxActiveApplications())).
      _("Max Schedulable Applications Per User:", Integer.toString(lqinfo.getMaxActiveApplicationsPerUser())).
      _("Configured Capacity:", percent(lqinfo.getCapacity() / 100)).
      _("Configured Max Capacity:", percent(lqinfo.getMaxCapacity() / 100)).
      _("Configured Minimum User Limit Percent:", Integer.toString(lqinfo.getUserLimit()) + "%").
      _("Configured User Limit Factor:", String.format("%.1f", lqinfo.getUserLimitFactor())).
      _r("Active users: ", activeUserList.toString());

  html._(InfoBlock.class);

  // clear the info contents so this queue's info doesn't accumulate into another queue's info
  ri.clear();
}
 
开发者ID:chendave,项目名称:hadoop-TCP,代码行数:39,代码来源:CapacitySchedulerPage.java


示例10: render

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.UserInfo; //导入依赖的package包/类
@Override
protected void render(Block html) {
  StringBuilder activeUserList = new StringBuilder("");
  ResourceInfo usedResources = lqinfo.getResourcesUsed();
  ArrayList<UserInfo> users = lqinfo.getUsers().getUsersList();
  for (UserInfo entry: users) {
    activeUserList.append(entry.getUsername()).append(" &lt;")
      .append(getPercentage(entry.getResourcesUsed(), usedResources))
      .append(", Schedulable Apps: " + entry.getNumActiveApplications())
      .append(", Non-Schedulable Apps: " + entry.getNumPendingApplications())
      .append("&gt;<br style='display:block'>"); //Force line break
  }

  ResponseInfo ri = info("\'" + lqinfo.getQueuePath().substring(5) + "\' Queue Status").
      _("Queue State:", lqinfo.getQueueState()).
      _("Used Capacity:", percent(lqinfo.getUsedCapacity() / 100)).
      _("Absolute Used Capacity:", percent(lqinfo.getAbsoluteUsedCapacity() / 100)).
      _("Absolute Capacity:", percent(lqinfo.getAbsoluteCapacity() / 100)).
      _("Absolute Max Capacity:", percent(lqinfo.getAbsoluteMaxCapacity() / 100)).
      _("Used Resources:", StringEscapeUtils.escapeHtml(lqinfo.getResourcesUsed().toString())).
      _("Num Schedulable Applications:", Integer.toString(lqinfo.getNumActiveApplications())).
      _("Num Non-Schedulable Applications:", Integer.toString(lqinfo.getNumPendingApplications())).
      _("Num Containers:", Integer.toString(lqinfo.getNumContainers())).
      _("Max Applications:", Integer.toString(lqinfo.getMaxApplications())).
      _("Max Applications Per User:", Integer.toString(lqinfo.getMaxApplicationsPerUser())).
      _("Max Schedulable Applications:", Integer.toString(lqinfo.getMaxActiveApplications())).
      _("Max Schedulable Applications Per User:", Integer.toString(lqinfo.getMaxActiveApplicationsPerUser())).
      _("Configured Capacity:", percent(lqinfo.getCapacity() / 100)).
      _("Configured Max Capacity:", percent(lqinfo.getMaxCapacity() / 100)).
      _("Configured Minimum User Limit Percent:", Integer.toString(lqinfo.getUserLimit()) + "%").
      _("Configured User Limit Factor:", String.format("%.1f", lqinfo.getUserLimitFactor())).
      _r("Active users: ", activeUserList.toString());

  html._(InfoBlock.class);

  // clear the info contents so this queue's info doesn't accumulate into another queue's info
  ri.clear();
}
 
开发者ID:Seagate,项目名称:hadoop-on-lustre2,代码行数:39,代码来源:CapacitySchedulerPage.java


示例11: UsersInfo

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.UserInfo; //导入依赖的package包/类
public UsersInfo(ArrayList<UserInfo> usersList) {
  this.usersList = usersList;
}
 
开发者ID:naver,项目名称:hadoop,代码行数:4,代码来源:UsersInfo.java


示例12: getUsersList

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.UserInfo; //导入依赖的package包/类
public ArrayList<UserInfo> getUsersList() {
  return usersList;
}
 
开发者ID:naver,项目名称:hadoop,代码行数:4,代码来源:UsersInfo.java



注:本文中的org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.UserInfo类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java TypeSerializerCollection类代码示例发布时间:2022-05-22
下一篇:
Java BulgarianAnalyzer类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap