全球热消息:如何编写一个YARN应用

本文档在高层次上描述了为 YARN 实现新应用程序的方法。


(资料图片仅供参考)

相关概念和流程

在应用的提交流程中,是应用客户端将应用提交到 YARN ResourceManager。这可以通过设置YarnClient来完成。YarnClient启动后,客户端可以设置应用程序环境,准备好包含应用程序的第一个容器ApplicationMaster(AM),然后提交申请。您需要提供诸如应用程序运行所需的本地文件/jar 的详细信息、需要执行的实际命令(带有必要的命令行参数)、任何操作系统环境设置(可选)等信息等等。实际上,您需要描述需要为 ApplicationMaster 启动的 Unix 进程。

然后 YARN ResourceManager 将在分配的容器上启动 ApplicationMaster(如指定的那样)。ApplicationMaster 与 YARN 集群通信,并处理应用程序执行。它以异步方式执行操作。在应用程序启动期间,ApplicationMaster 的主要任务是:

a) 与 ResourceManager 通信,为未来的容器协商和分配资源b) 在容器分配之后,与 YARN NodeManager(NM)通信以启动其上的应用程序容器。

任务 a) 可以通过AMRMClientAsync对象异步执行,在AMRMClientAsync.CallbackHandler 中指定事件处理方法事件处理程序的类型。事件处理程序需要显式设置给客户端。任务 b) 可以通过启动一个可运行对象来执行,该对象在分配了容器时启动容器。作为启动此容器的一部分,AM 必须指定具有启动信息(例如命令行规范、环境等)的ContainerLaunchContext。

在应用程序执行期间,ApplicationMaster 通过NMClientAsync对象与NodeManager 通信。所有的容器事件NMClientAsync.CallbackHandler处理并关联NMClientAsync。典型的回调处理程序处理客户端启动、停止、状态更新和错误。ApplicationMaster 还通过处理AMRMClientAsync.CallbackHandler的getProgress()方法向 ResourceManager 报告执行进度。

除了异步客户端之外,某些工作流(AMRMClient和NMClient)还有同步版本。推荐使用异步客户端,因为(主观上)使用更简单,本文将主要介绍异步客户端。有关同步客户端的更多信息,请参阅AMRMClient和NMClient。

接口

以下部分是一些重要的接口:

Client<–>ResourceManager通过使用YarnClient对象 ApplicationMaster<–>ResourceManager通过使用AMRMClientAsync对象,通过AMRMClientAsync.CallbackHandler异步处理事件 ApplicationMaster<–>NodeManager启动容器。通过使用NodeManagers沟通NMClientAsync对象,通过NMClientAsync.CallbackHandler处理容器事件

特别提醒:

YARN 应用程序的三个主要协议(ApplicationClientProtocol、ApplicationMasterProtocol 和 ContainerManagementProtocol)仍然保留。3 个客户端封装了这 3 个协议,为 YARN 应用程序提供更简单的编程模型。 在极少数情况下,程序员可能希望直接使用这 3 种协议来实现应用程序。但是,请注意,对于一般用例,不再鼓励此类行为

编写一个简单的YARN应用

初始化和启动YarnClient

YarnClient yarnClient = YarnClient.createYarnClient(); yarnClient.init(conf); yarnClient.start();

一旦client启动后,即可在yarn上创建应用,并获取应用id

YarnClientApplication app = yarnClient.createApplication();GetNewApplicationResponse appResponse = app.getNewApplicationResponse();

YarnClientApplication 对新应用程序的响应还包含有关集群的信息,例如集群的最小/最大资源能力。 这是必需的,以确保您可以正确设置将在其中启动 ApplicationMaster 的容器的规范。 详情请参考 GetNewApplicationResponse。

客户端的主要关键是设置 ApplicationSubmissionContext,它定义了 RM 启动 AM 所需的所有信息。 客户需要将以下内容设置到上下文中:

应用信息:id, name

Queue, priority info:应用程序将被提交到的队列,为应用程序分配的优先级。

用户:提交申请的用户

ContainerLaunchContext:定义将在其中启动和运行 AM 的容器的信息。 如前所述,ContainerLaunchContext 定义了运行应用程序所需的所有必需信息,例如本地 Resources(二进制文件、jar、文件等)、环境设置(CLASSPATH 等)、要执行的命令和安全 Tokens (RECT)。

// set the application submission contextApplicationSubmissionContext appContext = app.getApplicationSubmissionContext();ApplicationId appId = appContext.getApplicationId();appContext.setKeepContainersAcrossApplicationAttempts(keepContainers);appContext.setApplicationName(appName);// set local resources for the application master// local files or archives as needed// In this scenario, the jar file for the application master is part of the local resourcesMap localResources = new HashMap();LOG.info("Copy App Master jar from local filesystem and add to local environment");// Copy the application master jar to the filesystem// Create a local resource to point to the destination jar pathFileSystem fs = FileSystem.get(conf);addToLocalResources(fs, appMasterJar, appMasterJarPath, appId.toString(),    localResources, null);// Set the log4j properties if neededif (!log4jPropFile.isEmpty()) {  addToLocalResources(fs, log4jPropFile, log4jPath, appId.toString(),      localResources, null);}// The shell script has to be made available on the final container(s)// where it will be executed.// To do this, we need to first copy into the filesystem that is visible// to the yarn framework.// We do not need to set this as a local resource for the application// master as the application master does not need it.String hdfsShellScriptLocation = "";long hdfsShellScriptLen = 0;long hdfsShellScriptTimestamp = 0;if (!shellScriptPath.isEmpty()) {  Path shellSrc = new Path(shellScriptPath);  String shellPathSuffix =      appName + "/" + appId.toString() + "/" + SCRIPT_PATH;  Path shellDst =      new Path(fs.getHomeDirectory(), shellPathSuffix);  fs.copyFromLocalFile(false, true, shellSrc, shellDst);  hdfsShellScriptLocation = shellDst.toUri().toString();  FileStatus shellFileStatus = fs.getFileStatus(shellDst);  hdfsShellScriptLen = shellFileStatus.getLen();  hdfsShellScriptTimestamp = shellFileStatus.getModificationTime();}if (!shellCommand.isEmpty()) {  addToLocalResources(fs, null, shellCommandPath, appId.toString(),      localResources, shellCommand);}if (shellArgs.length > 0) {  addToLocalResources(fs, null, shellArgsPath, appId.toString(),      localResources, StringUtils.join(shellArgs, " "));}// Set the env variables to be setup in the env where the application master will be runLOG.info("Set the environment for the application master");Map env = new HashMap();// put location of shell script into env// using the env info, the application master will create the correct local resource for the// eventual containers that will be launched to execute the shell scriptsenv.put(DSConstants.DISTRIBUTEDSHELLSCRIPTLOCATION, hdfsShellScriptLocation);env.put(DSConstants.DISTRIBUTEDSHELLSCRIPTTIMESTAMP, Long.toString(hdfsShellScriptTimestamp));env.put(DSConstants.DISTRIBUTEDSHELLSCRIPTLEN, Long.toString(hdfsShellScriptLen));// Add AppMaster.jar location to classpath// At some point we should not be required to add// the hadoop specific classpaths to the env.// It should be provided out of the box.// For now setting all required classpaths including// the classpath to "." for the application jarStringBuilder classPathEnv = new StringBuilder(Environment.CLASSPATH.$$())  .append(ApplicationConstants.CLASS_PATH_SEPARATOR).append("./*");for (String c : conf.getStrings(    YarnConfiguration.YARN_APPLICATION_CLASSPATH,    YarnConfiguration.DEFAULT_YARN_CROSS_PLATFORM_APPLICATION_CLASSPATH)) {  classPathEnv.append(ApplicationConstants.CLASS_PATH_SEPARATOR);  classPathEnv.append(c.trim());}classPathEnv.append(ApplicationConstants.CLASS_PATH_SEPARATOR).append(  "./log4j.properties");// Set the necessary command to execute the application masterVector vargs = new Vector(30);// Set java executable commandLOG.info("Setting up app master command");vargs.add(Environment.JAVA_HOME.$$() + "/bin/java");// Set Xmx based on am memory sizevargs.add("-Xmx" + amMemory + "m");// Set class namevargs.add(appMasterMainClass);// Set params for Application Mastervargs.add("--container_memory " + String.valueOf(containerMemory));vargs.add("--container_vcores " + String.valueOf(containerVirtualCores));vargs.add("--num_containers " + String.valueOf(numContainers));vargs.add("--priority " + String.valueOf(shellCmdPriority));for (Map.Entry entry : shellEnv.entrySet()) {  vargs.add("--shell_env " + entry.getKey() + "=" + entry.getValue());}if (debugFlag) {  vargs.add("--debug");}vargs.add("1>" + ApplicationConstants.LOG_DIR_EXPANSION_VAR + "/AppMaster.stdout");vargs.add("2>" + ApplicationConstants.LOG_DIR_EXPANSION_VAR + "/AppMaster.stderr");// Get final commandStringBuilder command = new StringBuilder();for (CharSequence str : vargs) {  command.append(str).append(" ");}LOG.info("Completed setting up app master command " + command.toString());List commands = new ArrayList();commands.add(command.toString());// Set up the container launch context for the application masterContainerLaunchContext amContainer = ContainerLaunchContext.newInstance(  localResources, env, commands, null, null, null);// Set up resource type requirements// For now, both memory and vcores are supported, so we set memory and// vcores requirementsResource capability = Resource.newInstance(amMemory, amVCores);appContext.setResource(capability);// Service data is a binary blob that can be passed to the application// Not needed in this scenario// amContainer.setServiceData(serviceData);// Setup security tokensif (UserGroupInformation.isSecurityEnabled()) {  // Note: Credentials class is marked as LimitedPrivate for HDFS and MapReduce  Credentials credentials = new Credentials();  String tokenRenewer = conf.get(YarnConfiguration.RM_PRINCIPAL);  if (tokenRenewer == null | | tokenRenewer.length() == 0) {    throw new IOException(      "Can"t get Master Kerberos principal for the RM to use as renewer");  }  // For now, only getting tokens for the default file-system.  final Token tokens[] =      fs.addDelegationTokens(tokenRenewer, credentials);  if (tokens != null) {    for (Token token : tokens) {      LOG.info("Got dt for " + fs.getUri() + "; " + token);    }  }  DataOutputBuffer dob = new DataOutputBuffer();  credentials.writeTokenStorageToStream(dob);  ByteBuffer fsTokens = ByteBuffer.wrap(dob.getData(), 0, dob.getLength());  amContainer.setTokens(fsTokens);}appContext.setAMContainerSpec(amContainer);

设置过程完成后,客户端就可以提交具有指定优先级和队列的应用程序。

// Set the priority for the application masterPriority pri = Priority.newInstance(amPriority);appContext.setPriority(pri);// Set the queue to which this application is to be submitted in the RMappContext.setQueue(amQueue);// Submit the application to the applications manager// SubmitApplicationResponse submitResp = applicationsManager.submitApplication(appRequest);yarnClient.submitApplication(appContext);

此时,RM 将接受申请,并在后台完成分配具有所需规格的容器的过程,然后最终在分配的容器上设置和启动 AM。

客户端可以通过多种方式跟踪实际任务的进度。

它可以通过 YarnClient 的 getApplicationReport() 方法与 RM 通信并请求应用程序的报告。

// Get application report for the appId we are interested inApplicationReport report = yarnClient.getApplicationReport(appId);

从 RM 收到的 ApplicationReport 包括以下内容:

一般申请信息:申请id、提交申请的队列、提交申请的用户、申请开始时间。ApplicationMaster 详细信息:运行 AM 的主机,它正在侦听来自客户端的请求的 rpc 端口(如果有)以及客户端与 AM 通信所需的令牌。应用程序跟踪信息:如果应用程序支持某种形式的进度跟踪,它可以设置一个跟踪 url,该 url 可通过 ApplicationReport 的 getTrackingUrl() 方法获得,客户端可以查看该 url 以监控进度。应用程序状态:ResourceManager 看到的应用程序状态可通过 ApplicationReport#getYarnApplicationState 获得。 如果 YarnApplicationState 设置为 FINISHED,客户端应参考 ApplicationReport#getFinalApplicationStatus 来检查应用程序任务本身的实际成功/失败。 如果出现故障,ApplicationReport#getDiagnostics 可能有助于进一步了解故障。

如果ApplicationMaster支持,client可以直接通过应用报告中的host:rpcport信息向AM自身查询进度更新。 如果可用,它还可以使用从报告中获取的跟踪 url。

在某些情况下,如果应用程序花费的时间太长或由于其他因素,客户端可能希望终止该应用程序。 YarnClient 支持 killApplication 调用,允许客户端通过 ResourceManager 向 AM 发送终止信号。 如果这样设计,ApplicationMaster 也可以通过客户端可以利用的 rpc 层支持中止调用。

yarnClient.killApplication(appId);

编写ApplicationMaster(AM)

AM 是作业的实际所有者。 它将由 RM 启动,并通过客户提供有关其负责监督和完成的工作的所有必要信息和资源。

由于 AM 是在一个容器内启动的,该容器可能(很可能会)与其他容器共享一个物理主机,考虑到多租户的性质,除其他问题外,它不能对它可以侦听的预配置端口等做出任何假设 .

当 AM 启动时,几个参数通过环境变量提供给它。 其中包括 AM 容器的 ContainerId、应用程序提交时间和有关运行 ApplicationMaster 的 NM(NodeManager)主机的详细信息。 Ref ApplicationConstants 参数名称。

与 RM 的所有交互都需要一个 ApplicationAttemptId(在失败的情况下每个应用程序可以有多次尝试)。 ApplicationAttemptId 可以从 AM 的容器 id 中获取。 有一些辅助 API 可以将从环境中获得的值转换为对象。

Map envs = System.getenv();String containerIdString =    envs.get(ApplicationConstants.AM_CONTAINER_ID_ENV);if (containerIdString == null) {  // container id should always be set in the env by the framework  throw new IllegalArgumentException(      "ContainerId not set in the environment");}ContainerId containerId = ConverterUtils.toContainerId(containerIdString);ApplicationAttemptId appAttemptID = containerId.getApplicationAttemptId();

在 AM 完全初始化之后,我们可以启动两个客户端:一个到 ResourceManager,一个到 NodeManagers。 我们使用自定义事件处理程序设置它们,我们将在本文后面详细讨论这些事件处理程序。

AMRMClientAsync.CallbackHandler allocListener = new RMCallbackHandler();  amRMClient = AMRMClientAsync.createAMRMClientAsync(1000, allocListener);  amRMClient.init(conf);  amRMClient.start();  containerListener = createNMCallbackHandler();  nmClientAsync = new NMClientAsyncImpl(containerListener);  nmClientAsync.init(conf);  nmClientAsync.start();

AM 必须向 RM 发出心跳,以通知它 AM 处于活动状态并且仍在运行。 RM 的超时到期间隔由可通过 YarnConfiguration.RM_AM_EXPIRY_INTERVAL_MS 访问的配置设置定义,默认值由 YarnConfiguration.DEFAULT_RM_AM_EXPIRY_INTERVAL_MS 定义。 ApplicationMaster 需要向 ResourceManager 注册自己才能开始心跳。

// Register self with ResourceManager// This will start heartbeating to the RMappMasterHostname = NetUtils.getHostname();RegisterApplicationMasterResponse response = amRMClient    .registerApplicationMaster(appMasterHostname, appMasterRpcPort,        appMasterTrackingUrl);

在注册的响应中,如果包含最大资源能力。 您可能想使用它来检查应用程序的请求。

// Dump out information about cluster capability as seen by the// resource managerint maxMem = response.getMaximumResourceCapability().getMemory();LOG.info("Max mem capability of resources in this cluster " + maxMem);int maxVCores = response.getMaximumResourceCapability().getVirtualCores();LOG.info("Max vcores capability of resources in this cluster " + maxVCores);// A resource ask cannot exceed the max.if (containerMemory > maxMem) {  LOG.info("Container memory specified above max threshold of cluster."      + " Using max value." + ", specified=" + containerMemory + ", max="      + maxMem);  containerMemory = maxMem;}if (containerVirtualCores > maxVCores) {  LOG.info("Container virtual cores specified above max threshold of  cluster."    + " Using max value." + ", specified=" + containerVirtualCores + ", max="    + maxVCores);  containerVirtualCores = maxVCores;}List previousAMRunningContainers =    response.getContainersFromPreviousAttempts();LOG.info("Received " + previousAMRunningContainers.size()        + " previous AM"s running containers on AM registration.");

根据任务要求,AM 可以请求一组容器来运行其任务。 我们现在可以计算我们需要多少个容器,并请求这些容器。

List previousAMRunningContainers =    response.getContainersFromPreviousAttempts();LOG.info("Received " + previousAMRunningContainers.size()    + " previous AM"s running containers on AM registration.");int numTotalContainersToRequest =    numTotalContainers - previousAMRunningContainers.size();// Setup ask for containers from RM// Send request for containers to RM// Until we get our fully allocated quota, we keep on polling RM for// containers// Keep looping until all the containers are launched and shell script// executed on them ( regardless of success/failure).for (int i = 0; i < numTotalContainersToRequest; ++i) {  ContainerRequest containerAsk = setupContainerAskForRM();  amRMClient.addContainerRequest(containerAsk);}

在 setupContainerAskForRM() 中,需要设置以下两件事:资源能力:目前,YARN 支持基于内存的资源需求,因此请求应定义需要多少内存。 该值以 MB 为单位定义,并且必须小于集群的最大容量和最小容量的精确倍数。 内存资源对应于对任务容器施加的物理内存限制。 它还将支持基于计算的资源 (vCore),如代码中所示。

优先级:当请求容器集时,AM 可以为每个集定义不同的优先级。 例如,Map-Reduce AM 可以为 Map 任务所需的容器分配更高的优先级,为 Reduce 任务的容器分配更低的优先级。

private ContainerRequest setupContainerAskForRM() {  // setup requirements for hosts  // using * as any host will do for the distributed shell app  // set the priority for the request  Priority pri = Priority.newInstance(requestPriority);  // Set up resource type requirements  // For now, memory and CPU are supported so we set memory and cpu requirements  Resource capability = Resource.newInstance(containerMemory,    containerVirtualCores);  ContainerRequest request = new ContainerRequest(capability, null, null,      pri);  LOG.info("Requested container ask: " + request.toString());  return request;}

在应用程序管理器发送容器分配请求后,容器将由 AMRMClientAsync 客户端的事件处理程序异步启动。 处理程序应实现 AMRMClientAsync.CallbackHandler 接口。

当分配了容器时,处理程序会设置一个线程来运行代码以启动容器。 这里我们使用名称 LaunchContainerRunnable 来进行演示。 我们将在本文的以下部分讨论 LaunchContainerRunnable 类。

@Overridepublic void onContainersAllocated(List allocatedContainers) {  LOG.info("Got response from RM for container ask, allocatedCnt="      + allocatedContainers.size());  numAllocatedContainers.addAndGet(allocatedContainers.size());  for (Container allocatedContainer : allocatedContainers) {    LaunchContainerRunnable runnableLaunchContainer =        new LaunchContainerRunnable(allocatedContainer, containerListener);    Thread launchThread = new Thread(runnableLaunchContainer);    // launch and start the container on a separate thread to keep    // the main thread unblocked    // as all containers may not be allocated at one go.    launchThreads.add(launchThread);    launchThread.start();  }}

在心跳时,事件处理程序报告应用程序的进度。

@Overridepublic float getProgress() {  // set progress to deliver to RM on next heartbeat  float progress = (float) numCompletedContainers.get()      / numTotalContainers;  return progress;}

容器启动线程实际上是在 NM 上启动容器。 将容器分配给 AM 后,它需要遵循与客户端为将要在分配的容器上运行的最终任务设置 ContainerLaunchContext 所遵循的类似过程。 一旦定义了 ContainerLaunchContext,AM 就可以通过 NMClientAsync 启动它。

// Set the necessary command to execute on the allocated containerVector vargs = new Vector(5);// Set executable commandvargs.add(shellCommand);// Set shell script pathif (!scriptPath.isEmpty()) {  vargs.add(Shell.WINDOWS ? ExecBatScripStringtPath    : ExecShellStringPath);}// Set args for the shell command if anyvargs.add(shellArgs);// Add log redirect paramsvargs.add("1>" + ApplicationConstants.LOG_DIR_EXPANSION_VAR + "/stdout");vargs.add("2>" + ApplicationConstants.LOG_DIR_EXPANSION_VAR + "/stderr");// Get final commandStringBuilder command = new StringBuilder();for (CharSequence str : vargs) {  command.append(str).append(" ");}List commands = new ArrayList();commands.add(command.toString());// Set up ContainerLaunchContext, setting local resource, environment,// command and token for constructor.// Note for tokens: Set up tokens for the container too. Today, for normal// shell commands, the container in distribute-shell doesn"t need any// tokens. We are populating them mainly for NodeManagers to be able to// download anyfiles in the distributed file-system. The tokens are// otherwise also useful in cases, for e.g., when one is running a// "hadoop dfs" command inside the distributed shell.ContainerLaunchContext ctx = ContainerLaunchContext.newInstance(  localResources, shellEnv, commands, null, allTokens.duplicate(), null);containerListener.addContainer(container.getId(), container);nmClientAsync.startContainerAsync(container, ctx);

NMClientAsync 对象及其事件处理程序一起处理容器事件。 包括容器启动、停止、状态更新、发生错误。

ApplicationMaster确定工作完成后,需要通过AM-RM客户端注销自己,然后停止客户端。

try {  amRMClient.unregisterApplicationMaster(appStatus, appMessage, null);} catch (YarnException ex) {  LOG.error("Failed to unregister application", ex);} catch (IOException e) {  LOG.error("Failed to unregister application", e);}amRMClient.stop();

疑难解答

我如何将应用程序的 jar 分发到 YARN 集群中需要它的所有节点?

您可以使用 LocalResource 将资源添加到您的应用程序请求中。 这将导致 YARN 将资源分发到 ApplicationMaster 节点。 如果资源是 tgz、zip 或 jar – 您可以让 YARN 解压缩它。 然后,您需要做的就是将解压缩的文件夹添加到您的类路径中。 例如,在创建您的申请请求时:

File packageFile = new File(packagePath);URL packageUrl = ConverterUtils.getYarnUrlFromPath(    FileContext.getFileContext().makeQualified(new Path(packagePath)));packageResource.setResource(packageUrl);packageResource.setSize(packageFile.length());packageResource.setTimestamp(packageFile.lastModified());packageResource.setType(LocalResourceType.ARCHIVE);packageResource.setVisibility(LocalResourceVisibility.APPLICATION);resource.setMemory(memory);containerCtx.setResource(resource);containerCtx.setCommands(ImmutableList.of(    "java -cp "./package/*" some.class.to.Run "    + "1>" + ApplicationConstants.LOG_DIR_EXPANSION_VAR + "/stdout "    + "2>" + ApplicationConstants.LOG_DIR_EXPANSION_VAR + "/stderr"));containerCtx.setLocalResources(    Collections.singletonMap("package", packageResource));appCtx.setApplicationId(appId);appCtx.setUser(user.getShortUserName);appCtx.setAMContainerSpec(containerCtx);yarnClient.submitApplication(appCtx);

如您所见,setLocalResources 命令获取名称到资源的映射。 该名称成为您应用程序的 cwd 中的符号链接,因此您可以使用 ./package/* 引用其中的工件。

注意:Java 的类路径 (cp) 参数非常敏感。 确保语法完全正确。

一旦您的包被分发到您的 AM,每当您的 AM 启动一个新容器时,您都需要遵循相同的过程(假设您希望将资源发送到您的容器)。 代码是一样的。 您只需要确保为您的 AM 提供包路径(HDFS 或本地),以便它可以将资源 URL 与容器 ctx 一起发送。

如何获取ApplicationMaster的ApplicationAttemptId?

ApplicationAttemptId 将通过环境变量传递给 AM,环境变量中的值可以通过 ConverterUtils 辅助函数转换为 ApplicationAttemptId 对象。

为什么我的container被NodeManager kill?

这可能是由于高内存使用量超过了您请求的容器内存大小。 造成这种情况的原因有很多。 首先,查看 NodeManager 在终止您的容器时转储的进程树。 您感兴趣的两件事是物理内存和虚拟内存。 如果您超出了物理内存限制,则您的应用程序使用了过多的物理内存。 如果您正在运行 Java 应用程序,则可以使用 -hprof 查看堆中占用空间的内容。 如果您已经超出了虚拟内存,您可能需要增加集群范围的配置变量 yarn.nodemanager.vmem-pmem-ratio 的值。

本文为从大数据到人工智能博主「xiaozhch5」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://lrting.top/backend/12468/

标签: Yarn

上一篇 :

有狐臭怎么办 该怎么去掉狐臭_有狐臭怎么办 该怎么去掉狐臭味道 全球即时看

下一篇 :

最后一页

分享到 :

推荐阅读

全球热消息:如何编写一个YARN应用

全球热消息:如何编写一个YARN应用

在应用的提交流程中,是应用客户端将应用提交到YARNResourceManager。这可以通过设置YarnClient来完成。...

2023-02-18
有狐臭怎么办 该怎么去掉狐臭_有狐臭怎么办 该怎么去掉狐臭味道 全球即时看

有狐臭怎么办 该怎么去掉狐臭_有狐臭怎么办 该怎么去掉狐臭味道 全球即时看

1、狐臭主要是汗腺分泌过多引起的,称为狐臭。一般是遗传的,所以目前没有很好的根治方法,但是如果不是...

2023-02-18
全球快报:2月17日基金净值:博道嘉瑞混合A最新净值1.57,跌1.95%

全球快报:2月17日基金净值:博道嘉瑞混合A最新净值1.57,跌1.95%

2月17日,博道嘉瑞混合A最新单位净值为1 57元,累计净值为1 57元,较前一交易日下跌1 95%。历史数据...

2023-02-18
南阳:线上线下互通 就业服务“零距离”

南阳:线上线下互通 就业服务“零距离”

南阳:线上线下互通就业服务“零距离”

2023-02-17
如何将标签应用于钩编物品_今日播报

如何将标签应用于钩编物品_今日播报

添加个人标签以提醒她谁制作了那条可爱的披肩。将您自己的标签添加到您钩编的东西上是对已经非常个性化...

2023-02-17
头条:终极救援_关于终极救援的介绍

头条:终极救援_关于终极救援的介绍

1、《终极救援(Extraction)》是由史蒂芬·C·米勒导演,MaxShowalter、UmairAleem编剧

2023-02-17
3大趋势引领国际物流行业变革,令运营更高效,客户更满意!_环球微速讯

3大趋势引领国际物流行业变革,令运营更高效,客户更满意!_环球微速讯

当一个行业在业务的各个方面都采用数字化时,就会发生数字化转型:与客户沟通、开展业务与交付的方式,...

2023-02-17
银河证券:2023年港股结构性牛市机会可期,三主线掘金_今热点

银河证券:2023年港股结构性牛市机会可期,三主线掘金_今热点

中国银河证券1月16日表示,2022年港股面临业绩和估值的“戴维斯双杀”。在港股市场内外部因素及港股上市...

2023-02-17
今年1月贵州查处违反中央八项规定精神问题185起 世界关注

今年1月贵州查处违反中央八项规定精神问题185起 世界关注

今年1月贵州查处违反中央八项规定精神问题185起

2023-02-17
淮滨:全力以“护”筑牢“安全网”

淮滨:全力以“护”筑牢“安全网”

“同学们,放学回家一定要靠右行走,不要追逐打闹,注意安全,小心车辆。”为切实保障新学期校园交通安...

2023-02-17
低钠盐、加碘盐、无碘盐……吃哪种盐更有利健康?一文了解→ 全球热闻

低钠盐、加碘盐、无碘盐……吃哪种盐更有利健康?一文了解→ 全球热闻

低钠盐、加碘盐、无碘盐……吃哪种盐更有利健康?一文了解→---根据2022年世界减盐周的报告显示,2017年...

2023-02-17
拔罐拔出粘稠物好吗_拔罐拔出粘稠物的骗局

拔罐拔出粘稠物好吗_拔罐拔出粘稠物的骗局

1 拔罐拔出粘稠物的骗局:我们应该理性对待这些骗局。一些无良商家在给客户拔罐的时候会使出一些招数,...

2023-02-17
广州金荣金属有限公司

广州金荣金属有限公司

1、广州金荣金属有限公司于2017年05月23日成立。2、法定代表人张耀荣,公司经营范围包括:机械零部件加...

2023-02-17
钟馗辅助出装_LOLS8辅助蒸汽机器人布里茨赋出装推荐

钟馗辅助出装_LOLS8辅助蒸汽机器人布里茨赋出装推荐

1、S8蒸汽机器人Britz推荐符文2、机器人装载推荐3、眼石是必须的,保证自己的视野,防gank,前期生产圣...

2023-02-16
汽车疑问解答:机械式自动变速器是什么意思

汽车疑问解答:机械式自动变速器是什么意思

汽车现在已经越来越普及,基本上都快实现每家每户都有汽车了,那么汽车这么多的情况之下,我们在用车的...

2023-02-16
全球热资讯!迪拜首个空中出租车垂直起降场在短短三年内问世

全球热资讯!迪拜首个空中出租车垂直起降场在短短三年内问世

在迪拜国际机场、朱美拉棕榈岛、迪拜市中心和迪拜码头等战略要地,迪拜可能很快就会拥有一个而不是四个...

2023-02-16
小伙给女友转账140万分手后想要回

小伙给女友转账140万分手后想要回

浙江温州,25岁男子与女友相识一个月坠入爱河,相恋短短两年内向女友转款500多笔,金额高达140多万元。...

2023-02-16
每日速讯:智媒经营主理人云集!中国智媒营销大会金理奖召开线上评审会

每日速讯:智媒经营主理人云集!中国智媒营销大会金理奖召开线上评审会

2月15日,由中国广告协会、南方报业传媒集团指导,南方都市报社发起并主办的中国智媒营销大会·金理奖召...

2023-02-16
天天信息:条件函数if的嵌套怎么写-条件函数

天天信息:条件函数if的嵌套怎么写-条件函数

1、要求:如果部门有生产和岗位操作的高温补贴。2、公式:=IF(AND(B2= 生产 C2= 主营业务 )...

2023-02-16
天天日报丨小米手机京东商城有卖吗

天天日报丨小米手机京东商城有卖吗

小米手机京东商城有卖吗,小米手机:是北京小米科技有限责任公司研发的高性能发烧级智能手机,雷军是小...

2023-02-16
观点:调研推进!五大领域发力推动“1+3”滨海药监技术窗口建设!

观点:调研推进!五大领域发力推动“1+3”滨海药监技术窗口建设!

为全面深入推进天津市药监局与天津经开区管委会“1+3”滨海药监技术窗口项目建设,充分发挥“1+3”滨海...

2023-02-16
天天微资讯!姓名打分_黄腾飞

天天微资讯!姓名打分_黄腾飞

姓名边旁参考信息:姓名繁体拼音康熙笔划字意五行黄黃huáng12土腾騰téng20火飞飛fēi9水姓名五格:天格→1

2023-02-16
笨的拼音和组词_笨的拼音和组词是什么写 世界报资讯

笨的拼音和组词_笨的拼音和组词是什么写 世界报资讯

笨字的多音字组词笨字的多音字组词:笨手笨脚、笨头笨脑、笨鸟先飞、笨嘴拙舌、笨嘴拙腮、!笨、钝、谈、...

2023-02-16
环球精选!网商银行企业账户是对公账户吗

环球精选!网商银行企业账户是对公账户吗

答案:网商银行的企业账户不是对公账户,网商银行是不能设立企业对公账户的。网商银行的企业账户和对公...

2023-02-16
苹果平板电脑如何上网_Ipad及如何随时随地都能上网-全球报资讯

苹果平板电脑如何上网_Ipad及如何随时随地都能上网-全球报资讯

1,Ipad如何随时随地都能上网:如果需要随时随地,那么请购买3g+wifi版的ipad。需要注意的是,目前行货...

2023-02-15
张志强督导文明创建和重点项目推进情况|全球报道

张志强督导文明创建和重点项目推进情况|全球报道

张志强督导文明创建和重点项目推进情况

2023-02-15
网页qq登陆方法_如何登陆webqq网页版 当前观察

网页qq登陆方法_如何登陆webqq网页版 当前观察

欢迎观看本篇文章,小升来为大家解答以上问题。网页qq登陆方法,如何登陆webqq网页版很多人还不知道,现...

2023-02-15
金蟾抱鲤是什么意思 金蟾抱鲤的意思

金蟾抱鲤是什么意思 金蟾抱鲤的意思

1、金蟾抱鲤的意思:就是代表着好运的意思,2、金蝉在我国民间有着许多的意义,比如说招财进宝,镇宅,...

2023-02-15
刚刚好薛之谦演唱会完整版_刚刚好 薛之谦 全球简讯

刚刚好薛之谦演唱会完整版_刚刚好 薛之谦 全球简讯

1、薛之谦为了回馈一路支持他的歌迷,于是创作了这首“薛式情歌”《刚刚好》。2、这首歌的歌词直指恋人...

2023-02-15
网上祛黑头的方法千千万,但是这个才是最安全有效,最适合的!

网上祛黑头的方法千千万,但是这个才是最安全有效,最适合的!

没想到,避免了痘痘之后,又要面对频繁的黑头,就像切洋葱一样,一层一层的剥,最后是眼泪。而一旦某些...

2023-02-15
全球快消息!怎么获得手机短信验证码

全球快消息!怎么获得手机短信验证码

获得手机短信验证码方法如下:1、注册账号,登陆后添加一个项目;2、认真填写资料,以防出错;3、添加完...

2023-02-15
博菲电气:公司产品未涉及人工智能、ChatGPT、高压快充等领域

博菲电气:公司产品未涉及人工智能、ChatGPT、高压快充等领域

每经AI快讯,有投资者在投资者互动平台提问:公司产品是否有涉及人工智能、ChatGPT、高压快充等领域合作...

2023-02-15
什么牌子的前置滤网好?

什么牌子的前置滤网好?

1、随着生活品质的逐渐提高,人们对自身的健康问题越来越重视,不论是食物还是饮用水。2、大家都开始严...

2023-02-15
机构屡出假阳性报告市委书记怒斥 一律严肃处理!-世界热推荐

机构屡出假阳性报告市委书记怒斥 一律严肃处理!-世界热推荐

4月23日,安徽省委常委、合肥市委书记虞爱华主持召开第31次市疫防工作视频会商会。会上,通报了一起“机...

2023-02-15
世体:巴萨球迷将季票出售给曼联球迷须提前填写表格申请

世体:巴萨球迷将季票出售给曼联球迷须提前填写表格申请

直播吧2月15日讯欧联杯淘汰赛附加赛首回合,巴萨将坐镇诺坎普迎战曼联。据《世界体育报》报道,赛前,若...

2023-02-15
天天热点评!中金:释放海风资源是长期趋势 中长期可开发资源体量有更大空间

天天热点评!中金:释放海风资源是长期趋势 中长期可开发资源体量有更大空间

智通财经获悉,中金公司发布研究报告称,海上风电发展契合产业链参与方发展诉求,伴随海风平价加速实现...

2023-02-15
天天热资讯!调查发现超半数65岁至69岁老年人使用智能手机

天天热资讯!调查发现超半数65岁至69岁老年人使用智能手机

老年人正在积极拥抱数字时代。日前,在第三届中国人口与发展论坛上发布的一项调查结果显示,一半以上的6...

2023-02-15
2017年新颖创业点子

2017年新颖创业点子

只有你想不到,没有你做不到的。来看看2017年新颖创业点子。看看有没有你喜欢的。以下是学习啦小编分享...

2023-02-15
超400万人次、3.6亿元 广府庙会怎能又“潮”又吸金

超400万人次、3.6亿元 广府庙会怎能又“潮”又吸金

暂停三年后回归,广府庙会得到市民又一次热捧。连续7天220多场活动,为广府庙会带来超400万人次客流,北...

2023-02-15
有趣的古代故事:错别字笑谈

有趣的古代故事:错别字笑谈

古时,两秀才进京赶考,途中遇一庙宇,本是祭祀孔夫子的,门上一块横扁,上书文廟两字,不过字迹明显行...

2023-02-15
硬实力和软实力是什么意思_软实力是什么意思 最新

硬实力和软实力是什么意思_软实力是什么意思 最新

1、软实力的概念诞生于国际关系领域,原来指的是某个国家依靠文化和理念方面的因素来获得影响力的能力。2...

2023-02-15
关于学校食堂安全责任书范文5篇

关于学校食堂安全责任书范文5篇

在日常生活和工作中,越来越多人会去使用责任书,责任书是写明责任,明确应该承担的任务的文书。责任书...

2023-02-15
昆明高新区召开2022年度“两新”党组织书记抓基层党建工作述职评议会

昆明高新区召开2022年度“两新”党组织书记抓基层党建工作述职评议会

昆明高新区召开2022年度“两新”党组织书记抓基层党建工作述职评议会

2023-02-14
大三学生个人总结最新精选10篇

大三学生个人总结最新精选10篇

大三学生要凭着对个人目标和知识的强烈追求,刻苦钻研,勤奋好学,态度端正,目标明确,难么,今天小编...

2023-02-14
环球今日报丨正常人的腹股沟淋巴结的形态为_正常人的腹股沟淋巴结的形态

环球今日报丨正常人的腹股沟淋巴结的形态为_正常人的腹股沟淋巴结的形态

1、病情分析:正常腹股沟淋巴结大小、质地均匀,自上而下分布,硬度较大,边界清楚,无压痛或肿胀。2、...

2023-02-14
世界快消息!大宗交易:机构账户买入朗新科技2163.2万元(02-14)

世界快消息!大宗交易:机构账户买入朗新科技2163.2万元(02-14)

2023年2月14日,朗新科技发生1笔大宗交易,总成交80万股,成交金额2163 2万元,成交价27 04元,折价7 52%。

2023-02-14
大学英语六级时间分配技巧以及考试技巧

大学英语六级时间分配技巧以及考试技巧

大学英语六级时间分配技巧以及考试技巧六级考试时间,是在每年的六月份和十二月份,每年的大学英语六级...

2023-02-14
焦点速递!230街坊启动签约!居民说“还打算住虹口”

焦点速递!230街坊启动签约!居民说“还打算住虹口”

连日阴雨,丝毫没有阻挡230街坊居民前往旧改基地签约的热情。“等了这么久,旧改阳光终于照到我们了!”...

2023-02-14
环球速讯:适合送女生的生日礼物

环球速讯:适合送女生的生日礼物

有很多的小仙女,我是初中生,不知道她是哪个年龄,我一直很喜欢的类女生,我的小姨平常比较喜欢打扮,...

2023-02-14
我发现了蚂蚁的秘密200字记事作文-天天热讯

我发现了蚂蚁的秘密200字记事作文-天天热讯

我发现了蚂蚁的秘密200字记事作文一天放学,我走在回家的路上,发现一条青虫躺在路旁。我蹲下来看了看,...

2023-02-14
梅山水电站|每日消息

梅山水电站|每日消息

1、梅山水电站位于鄂、豫、皖三省交界处的大别山腹地、淮河支流史河上游,坐落于有“红军故乡、将军摇篮...

2023-02-14
今日看点:骆家辉简历_骆家辉阴谋败露

今日看点:骆家辉简历_骆家辉阴谋败露

1、骆家辉是美籍华裔,而且是第三代。2、他的行事、价值观首先是必须与美国主流社会一致,如果是北京希...

2023-02-14
国际金融市场早知道:2月14日

国际金融市场早知道:2月14日

【资讯导读】•美联储理事:仍需要加息•欧盟委员会上调欧盟和欧元

2023-02-14
当前消息!给心爱的男人送什么生日礼物

当前消息!给心爱的男人送什么生日礼物

你好,其实送什么都不重要,重要的是你的心意,你的心意到了就行,相信你的他会很满意的!。你还是学生...

2023-02-14
伊春林都机场_关于伊春林都机场的介绍|全球今日报

伊春林都机场_关于伊春林都机场的介绍|全球今日报

1、伊春林都机场(YichunLinduAirport,IATA:LDS,ICAO:ZYLD),位于中国黑龙江省伊春

2023-02-14
考教师编制时间_考编制教师时间

考教师编制时间_考编制教师时间

1、教师编制考试是指学校招聘教师的考试师范专业可以报考教师招聘的编制。2、非师范类学生要取得教师资...

2023-02-14
每日讯息!数30怎么玩必赢

每日讯息!数30怎么玩必赢

数30怎么玩必赢,1、玩这个游戏通常就是说清楚规则,数2个数的:到30算输:要依次抢占这几个数:2 5 8...

2023-02-14
韩栋 天天热议

韩栋 天天热议

1、韩栋,1980年11月11日出生于浙江省杭州市,毕业于中南大学土木工程专业,中国内地影视男演员。2、200...

2023-02-13
世界热议:清汤火锅鱼的做法

世界热议:清汤火锅鱼的做法

清汤火锅鱼的做法,清汤火锅鱼最为重要的就是清汤汤底的熬制,一般采用鸡骨或猪骨熬成的高汤当做汤底,...

2023-02-13
华盛昌: 关于使用闲置募集资金进行现金管理到期赎回的公告_即时

华盛昌: 关于使用闲置募集资金进行现金管理到期赎回的公告_即时

华盛昌:关于使用闲置募集资金进行现金管理到期赎回的公告

2023-02-13
上海世茂建设保持“20世茂02”利率仍为3.23%不调整

上海世茂建设保持“20世茂02”利率仍为3.23%不调整

乐居财经张林霞2月13日,据上交所披露,上海世茂建设有限公司2020年公开发行公司债券(第一期)(品种二...

2023-02-13
4800万像素稳了?曝iPhone 15将搭载一款新的凸起镜头

4800万像素稳了?曝iPhone 15将搭载一款新的凸起镜头

techradar报道,正式发布iPhone15的官方信息预计还要再等7个月,但在此期间,已有很多关于iPhone15和iPh...

2023-02-13
浙江曾经的最好学府,现在有名的相亲角——万松书院_今日讯

浙江曾经的最好学府,现在有名的相亲角——万松书院_今日讯

今天小雨,原本不想出去的,但想着周末都宅在家里,觉得也挺没意思的。于是坐地铁坐到了候潮门,闲步走...

2023-02-13
淘宝网无法打开显示网络崩溃_淘宝网无法打开-全球百事通

淘宝网无法打开显示网络崩溃_淘宝网无法打开-全球百事通

1、选择另一个网页,试试看是否连接,因为有时候可能会突然断网,无法上网。注意不要选择主页或本地存储...

2023-02-09
7月13什么日子

7月13什么日子

农历七月十三是地藏节。地藏,其义为“安忍不动犹如大地,静虑深密犹如地藏。”这就是说,他如同大地,...

2023-02-09
奋发“兔”强谱新篇 “干”字当头开新局 雪野街道召开“攻坚2023”工作动员大会

奋发“兔”强谱新篇 “干”字当头开新局 雪野街道召开“攻坚2023”工作动员大会

大众网·海报新闻记者周扬亮济南报道为进一步贯彻落实各级工作动员大会精神,总结成绩、表扬先进、分析...

2023-02-09
当前短讯!元素之土哪里刷最合适_元素之土哪里刷

当前短讯!元素之土哪里刷最合适_元素之土哪里刷

1、“元素之土”30~60土元素怪物掉落,推荐荒芜之地、阿拉希数量众多(我们服20G 个左右)“元素之水”30~60

2023-02-09
工薪阶层理财方法 推荐这两种方法! 全球滚动

工薪阶层理财方法 推荐这两种方法! 全球滚动

所谓的工薪阶层,就是主要收入来源是工资的阶层,对于这部分人群来说,每个月的收入是固定的,并且大部...

2023-02-09
涉ChatGPT概念连续涨停 三六零异动公告提示风险

涉ChatGPT概念连续涨停 三六零异动公告提示风险

涉ChatGPT概念连续涨停三六零异动公告提示风险

2023-02-09
学生会工作总结范本8篇_天天快看点

学生会工作总结范本8篇_天天快看点

学生会以全心全意服务同学为宗旨,发挥学校党政联系广大同学的桥梁和纽带作用。在党组织的领导和团组织...

2023-02-09
世界快资讯丨小熊加湿器怎么维修_小熊加湿器怎么加水

世界快资讯丨小熊加湿器怎么维修_小熊加湿器怎么加水

1、加湿器的水箱可以直接拿起来,水箱和出风口在一个地方。2、拿起水箱后,如下图所示,拧开那个盖子。...

2023-02-09
汽车加氟压力表多少正常值_汽车加氟压力表多少正常 今日聚焦

汽车加氟压力表多少正常值_汽车加氟压力表多少正常 今日聚焦

1、汽车加制冷剂是低压应该是1 5到2 5公斤,高压应该在13 5公斤到15 5公斤之间。汽车的空调系统是需要使用制冷剂

2023-02-08
2020鼠年经典春联大全_鼠年唯美春联大全

2020鼠年经典春联大全_鼠年唯美春联大全

鼠年经典春联:我们在写对联的时候讲究的是平仄对仗,那你在写春联的时候,想好怎样写了吗?下面小编整理...

2023-02-08
播报:港媒:中国经济复苏“溢出效应”惠及亚洲

播报:港媒:中国经济复苏“溢出效应”惠及亚洲

参考消息网2月8日报道据香港《南华早报》网站2月6日报道,中国的重新开放正帮助有韧性的亚洲避免全面衰...

2023-02-08
徐溜站 今日热闻

徐溜站 今日热闻

1、徐溜站,位于中国江苏省淮安市,是中国铁路上海局集团有限公司管辖的的一个铁路车站,车站建于1995年...

2023-02-08
世界信息:中餐座次礼仪

世界信息:中餐座次礼仪

中餐宴请,座位有主次尊卑,如何安排才不会出错呢?别着急,记住客随主便就不容易出错啦!下面由学习啦小...

2023-02-08
天天头条:“花式”宣传+“硬核”反诈!盐城建湖公安筑牢全民“防诈墙”

天天头条:“花式”宣传+“硬核”反诈!盐城建湖公安筑牢全民“防诈墙”

“足不出户,日进斗金工资日结。打一诈骗类型。”“我知道!是‘网络刷单’。”居民吴先生举手猜对灯谜...

2023-02-08
环球热门:梨泰院踩踏事故调查新进展:韩国会通过行政安全部长弹劾案

环球热门:梨泰院踩踏事故调查新进展:韩国会通过行政安全部长弹劾案

当地时间8日下午,韩国国会通过议员投票表决方式通过行政安全部长官李祥敏弹劾案,李祥敏随即遭停职。该...

2023-02-08
可能的英语表达

可能的英语表达

如果我们不能够持之以恒地学习英语,我们的英语水平又怎么会进步呢?不过是停滞不前罢了。下面是学习啦小...

2023-02-08
换装双联屏设计 新款宝马X6官图发布

换装双联屏设计 新款宝马X6官图发布

2月8日,我们从官方获取到了旗下中大型SUV——新款宝马X6(图片|配置|询价)(参数|询价)车型官图。作为改...

2023-02-08
【环球新要闻】蹙眉低首的拼音_蹙眉

【环球新要闻】蹙眉低首的拼音_蹙眉

1、【词组】西施蹙眉【拼音】Xīshīcùmeí【释义】西施:古代美女。2、蹙眉:皱紧(眉头)侧着头,皱紧眉头,

2023-02-08
到了2024年,“十核处理器”会在手机上再现吗

到了2024年,“十核处理器”会在手机上再现吗

到了2024年,“十核处理器”会在手机上再现吗

2023-02-08
天天视讯!教师节校长致辞

天天视讯!教师节校长致辞

教师节校长致辞(15篇)在学习、工作、生活中,大家都尝试过写致辞吧,致辞是向他人表达思想感情用的文字...

2023-02-08
iWALKFCA004G4 看热讯

iWALKFCA004G4 看热讯

1、iWALKFCA004G4是一款产于中国大陆的手机保护套。2、适用于三星GalaxyS4 三星I9500;三星

2023-02-08
沪深股通|博雅生物2月7日获外资买入0.06%股份 观察

沪深股通|博雅生物2月7日获外资买入0.06%股份 观察

同花顺数据显示,2023年2月7日,博雅生物获外资买入26 44万股,占流通盘0 06%。截至目前,陆股通持有...

2023-02-08
初二物理学期教学工作计划_世界简讯

初二物理学期教学工作计划_世界简讯

初二物理学期教学工作计划光阴迅速,一眨眼就过去了,我们迎来了新的学习生活,是时候静下心来好好写写...

2023-02-08
弛的意思_弛

弛的意思_弛

1、驰和弛的区别如下:偏旁部首不同:驰的偏旁部首是“马”,而弛的偏旁部首是“弓”。2、2、词性不同所...

2023-02-08
苍白的近义词的读法 天天观点

苍白的近义词的读法 天天观点

一、关于苍白的近义词的读法1、读法:[cāngbái]二、关于苍白的近义词的释义2、基础释义:1 白而略微发青;灰

2023-02-08
qq空间进不去怎么办_6步解决问题

qq空间进不去怎么办_6步解决问题

1、单击浏览器上的工具选择互联网选项。2、打开的internet属性,然后单击删除浏览历史记录。3、选择要删...

2023-02-08
最新资讯:电子信息技术专业中专_电子信息技术专业

最新资讯:电子信息技术专业中专_电子信息技术专业

1、电子信息技术专业是集现代电子技术、信息技术、通信技术于一体的专业。2、文章主要分为六个部分。3、...

2023-02-08
吃哈密瓜要注意什么|全球今热点

吃哈密瓜要注意什么|全球今热点

吃哈密瓜要注意什么,哈密瓜性凉,不宜过多食用,以免引起腹泻。哈密瓜主产于吐哈盆地(即吐鲁番盆地和...

2023-02-07
presynaptic

presynaptic

1、presynaptic,英语单词,主要用作形容词,作形容词时译为“[解剖]突触前的”。2、。文章到此就分享结束

2023-02-07
香港警方拘捕44人香港警方为什么拘捕44人真相了_前沿热点

香港警方拘捕44人香港警方为什么拘捕44人真相了_前沿热点

香港警方拘捕44人香港警方为什么拘捕44人真相了,香港是中国的一部分,这是毋庸置疑的。当时近日前二十...

2023-02-07
断母乳吃什么回奶快_吃什么回奶快|即时

断母乳吃什么回奶快_吃什么回奶快|即时

1、回奶前做好充分准备,先减少哺乳次数。2、饮食要清淡,不能太油腻,不要喝太多的水或汤,尤其是鸡汤...

2023-02-07
理想L9获得了奶爸的认可,却败在了熊孩子的“童子尿”_最新消息

理想L9获得了奶爸的认可,却败在了熊孩子的“童子尿”_最新消息

一泡童子尿毁了一辆车的声誉,惊喜不惊喜!意外不意外!这到底是谁家的孩子,竟然如此的厉害呢?我们一...

2023-02-07
酸奶没有冷藏还能吃吗_酸奶没有冷藏还能喝吗_当前快讯

酸奶没有冷藏还能吃吗_酸奶没有冷藏还能喝吗_当前快讯

1、酸奶没有冷藏还能喝吗1、含活性乳酸菌的酸奶放置冰箱冷藏,可以利用低温不让酸奶继续发酵,保证酸奶...

2023-02-07
没有之一 到底是什么意思

没有之一 到底是什么意思

没有之一到底是什么意思,“没有之一”的意思是没有比这个更好的了,或者说没有什么能与之相比。近义词...

2023-02-07
天天速看:事与愿违下一句啥意思_事与愿违下一句是什么

天天速看:事与愿违下一句啥意思_事与愿违下一句是什么

1、1、事与愿违的意思是事情的发展、事情的结果违背了我的愿望,与我的愿望不相符。2、2、例如我本来以...

2023-02-07
张尧浠:鹰言携非农打压有限、黄金即将回调到位再起攀升

张尧浠:鹰言携非农打压有限、黄金即将回调到位再起攀升

张尧浠:鹰言携非农打压有限、黄金即将回调到位再起攀升,金价,触底,鹰言,张尧浠,美元指数

2023-02-07
一夜君宠 焦点快播

一夜君宠 焦点快播

1、《一夜君宠》是起点中文网连载的网络小说。2、作者是幸福的可能。文章到此就分享结束,希望对大家有...

2023-02-07
x 广告
x 广告

Copyright ©  2015-2022 华中水产网版权所有  备案号:京ICP备12018864号-26   联系邮箱:2 913 236 @qq.com