Hadoop(部署篇)

2023-11-10

目录

 Hadoop三种运行模式

本地运行模式

伪分布式运行模式

完全分布式运行模式(开发重点)


 Hadoop三种运行模式

Hadoop 运行模式包括:本地模式、伪分布式模式以及完全分布式模式。
Hadoop 官方网站:http://hadoop.apache.org/

本地运行模式

1. 官方 Grep 案例
①创建在 hadoop-2.7.6 文件下面创建一个 input 文件夹:
[root@master hadoop-2.7.6]# mkdir input
②将 Hadoop 的 xml 配置文件复制到 input
[root@master hadoop-2.7.6]# cp etc/hadoop/*.xml input
③执行 share 目录下的 MapReduce 程序
[root@master hadoop-2.7.6]# hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.6.jar grep input output 'dfs[a-z.]+'
④查看输出结果:
[root@master hadoop-2.7.6]# cat output/*

伪分布式运行模式

1.启动 HDFS 并运行 MapReduce 程序

(1)分析
        ①配置集群
        ②启动、测试集群增、删、查
        ③执行 WordCount 案例
(2)执行步骤
        ①配置集群
(a)配置:hadoop-env.sh
主节点中,获取 jdk 的路径:
[root@master hadoop-2.7.6]# echo $JAVA_HOME
编辑 hadoop-env.sh,并添加 jdk 路径:
[root@master hadoop]# vim hadoop-env.sh
export JAVA_HOME=/usr/local/soft/jdk1.8.0_171

(b)配置:core-site.xml
<!-- 指定 HDFS 中 NameNode 的地址 -->
<property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
</property>
<!-- 指定 Hadoop 运行时产生文件的存储目录 -->
<property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/soft/hadoop-2.7.6/tmp</value>
</property>
(c)配置:hdfs-site.xml
<!-- 指定 HDFS 副本的数量 -->
<property>
        <name>dfs.replication</name>
        <value>1</value>
</property>
②启动集群
(a)格式化 NameNode(第一次启动时格式化,以后就不要总格式化)
[root@master hadoop-2.7.6]# hadoop namenode -format

 

(b)启动 NameNode
[root@master hadoop-2.7.6]# hadoop-daemon.sh start namenode

 

(c)启动 DataNode
[root@master hadoop-2.7.6]# hadoop-daemon.sh start datanode
③查看集群
(a)查看是否启动成功
[root@master hadoop-2.7.6]# jps
7461 NameNode
7559 DataNode
7641 Jps
(b)web 端查看 HDFS 文件系统
http://master:50070

 

(c)查看产生的 Log 日志
说明:在企业中遇到 Bug 时,经常根据日志提示信息去分析问题、解决 Bug。
[root@master hadoop-2.7.6]# cd logs/
[root@master logs]# ll

(d)思考:为什么不能一直格式化 NameNode,格式化 NameNode,要注意什
么?
[root@master hadoop-2.7.6]# cd tmp/dfs/name/current
[root@master current]# cat VERSION
#Mon Jul 11 10:27:14 CST 2022
namespaceID=1179648118
clusterID=CID-92721281-f46b-419c-bab2-e23edc300e06
cTime=0
storageType=NAME_NODE
blockpoolID=BP-1720451217-192.168.18.133-1657506434948
layoutVersion=-63
[root@master data]# cd current/
[root@master current]# ll
总用量 4
drwx------. 4 root root 54 7 月 11 10:30 BP-1720451217-192.168.18.133-1657506434948
-rw-r--r--. 1 root root 229 7 月 11 10:30 VERSION
[root@master current]# cat VERSION
#Mon Jul 11 10:30:12 CST 2022
storageID=DS-7efd22c8-fc53-4e03-beae-6699e4398181
clusterID=CID-92721281-f46b-419c-bab2-e23edc300e06
cTime=0
datanodeUuid=5774abb7-ab49-4740-8747-a6923bd17d8e
storageType=DATA_NODE
layoutVersion=-56
注意:格式化 NameNode,会产生新的集群 id,导致 NameNode 和 DataNode的集群 id 不一致,集群找不到已往数据。所以,格式 NameNode 时,一定要先删除 data 数据和 log 日志,然后再格式化 NameNode。

 ④操作集群

(a)在 HDFS 文件系统上创建一个 input 文件夹
[root@master hadoop-2.7.6]# hadoop dfs -mkdir /input
(b)将测试文件内容上传到文件系统上
[root@master hadoop-2.7.6]# hadoop dfs -put wordcountinput/wc.input /input
(c)查看上传的文件是否正确
[root@master hadoop-2.7.6]# hadoop dfs -ls /input
[root@master hadoop-2.7.6]# hadoop dfs -cat /input/wc.input
(d)运行 MapReduce 程序
[root@master hadoop-2.7.6]# hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.6.jar wordcount /input /output
(e)查看输出结果
命令行查看:
[root@master hadoop-2.7.6]# hadoop dfs -cat /output/*

 2. 启动 YARN 并运行 MapReduce 程序

(1)分析
①配置集群在 YARN 上运行 MR
②启动、测试集群增、删、查
③在 YARN 上执行 WordCount 案例
(2)执行步骤
①配置集群
(a)配置 yarn-env.sh
配置一下 JAVA_HOME
export JAVA_HOME=/usr/local/soft/jdk1.8.0_171
(b)配置 yarn-site.xml
<!-- 指定 YARN 的 ResourceManager 的地址 -->
<property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
</property>
<!-- Reducer 获取数据的方式 -->
<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
</property>
(c)配置:mapred-env.sh
配置一下 JAVA_HOME
export JAVA_HOME=/usr/local/soft/jdk1.8.0_171
(d)配置: (对 mapred-site.xml.template 重新命名为) mapred-site.xml
[root@master hadoop]# mv mapred-site.xml.template mapred-site.xml
[root@master hadoop]# vim mapred-site.xml
<!-- 指定 MR 运行在 YARN 上 -->
<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
</property>
②启动集群
(a)启动前必须保证 NameNode 和 DataNode 已经启动
(b)启动 ResourceManager
[root@master hadoop]# yarn-daemon.sh start resourcemanager
(c)启动 NodeManager
[root@master hadoop]# yarn-daemons.sh start nodemanager
③集群操作
(a)YARN 的浏览器页面查看:http://master:8088/cluster
(b)执行 MapReduce 程序:
[root@master hadoop-2.7.6]# hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.6.jar wordcount /input /output
(c)查看运行结果:
[root@master hadoop-2.7.6]# hadoop dfs -cat /output/*

 

3.配置历史服务器

为了查看程序的历史运行情况,需要配置一下历史服务器。具体配置步骤如
下:
1. 配置 mapred-site.xml
在该文件里面增加如下配置。
<!-- 历史服务器端地址 -->
<property>
        <name>mapreduce.jobhistory.address</name>
        <value>master:10020</value>
</property>
<!-- 历史服务器 web 端地址 -->
<property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>master:19888</value>
</property>
2. 启动历史服务器
[root@master hadoop-2.7.6]# mr-jobhistory-daemon.sh start historyserver
3. 查看历史服务器是否启动
[root@master hadoop-2.7.6]# jps
10016 Jps
9234 NodeManager
7461 NameNode
7559 DataNode
9948 JobHistoryServer
8941 ResourceManager
4. 查看 JobHistory
http://master:19888/jobhistory

4. 配置日志的聚集
日志聚集概念:应用运行完成以后,将程序运行日志信息上传到 HDFS 系统上。
日志聚集功能好处:可以方便的查看到程序运行详情,方便开发调试。
注意:开启日志聚集功能,需要重新启动 NodeManager 、ResourceManager和 HistoryManager。
开启日志聚集功能具体步骤如下:
1. 配置 yarn-site.xml
[root@master hadoop]# vim yarn-site.xml
在该文件里面增加如下配置。
<!-- 日志聚集功能使能 -->
<property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
</property>
<!-- 日志保留时间设置 7 天 -->
<property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>604800</value>
</property>
2. 关闭 NodeManager 、ResourceManager 和 HistoryManager
[root@master hadoop]# yarn-daemon.sh stop resourcemanager
[root@master hadoop]# yarn-daemons.sh stop nodemanager
[root@master hadoop]# mr-jobhistory-daemon.sh stop historyserver
3. 启动 NodeManager 、ResourceManager 和 HistoryManager
[root@master hadoop]# yarn-daemon.sh start resourcemanager
[root@master hadoop]# yarn-daemon.sh start nodemanager
[root@master hadoop]# mr-jobhistory-daemon.sh start historyserver
4. 删除 HDFS 上已经存在的输出文件
[root@master hadoop]# hadoop dfs -rm -r /output
5. 执行 WordCount 程序
[root@master hadoop-2.7.6]# hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.6.jar wordcount /input /output
6. 查看日志
http://master:19888/jobhistory

 

5. 配置文件说明
Hadoop 配置文件分两类:默认配置文件和自定义配置文件,只有用户想修
改某一默认配置值时,才需要修改自定义配置文件,更改相应属性值。
(1)默认配置文件

 

(2)自定义配置文件:
core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml 四个
配置文件存放在$HADOOP_HOME/etc/hadoop 这个路径上,用户可以根据项目需求
重新进行修改配置。

完全分布式运行模式(开发重点)

1. 准备工作
(1)设备
三台虚拟机:master、node1、node2
(2)时间同步
date
(3)修改主机名
三台主机名分别是:master、node1、node2
(4)关闭防火墙
systemctl stop firewalld
(5)查看防火墙状态
systemctl status firewalld
(6)取消防火墙自启
systemctl disable firewalld
(7)免密登录
三台都需要免密:
# 1、生成密钥
ssh-keygen -t rsa
# 2、配置免密登录
ssh-copy-id master
ssh-copy-id node1
ssh-copy-id node2
# 3、测试免密登录
ssh node1
2. 搭建 Hadoop 集群
(1)上传安装包并解压
①使用 xftp 上传压缩包至 master 的/usr/local/packages/
②解压
tar -zxvf hadoop-2.7.6.tar.gz -C /usr/local/soft/
(2)配置环境变量
vim /etc/profile
JAVA_HOME=/usr/local/soft/jdk1.8.0_171
HADOOP_HOME=/usr/local/soft/hadoop-2.7.6
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
# 重新加载环境变量
source /etc/profile
(3)修改 Hadoop 配置文件
①进入 hadoop 的配置文件
cd /usr/local/soft/hadoop-2.7.6/etc/hadoop/
②core-site.xml
<property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
</property>
<property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/soft/hadoop-2.7.6/tmp</value>
</property>
<property>
        <name>fs.trash.interval</name>
        <value>1440</value>
</property>
③hadoop-env.sh
export JAVA_HOME=/usr/local/soft/jdk1.8.0_171

④hdfs-site.xml
<property>
        <name>dfs.replication</name>
        <value>1</value>
</property>
<property>
        <name>dfs.permissions</name>
        <value>false</value>
</property>
⑤mapred-site.xml.template
重命名文件:
cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
</property>
<property>
        <name>mapreduce.jobhistory.address</name>
        <value>master:10020</value>
</property>
<property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>master:19888</value>
</property>
⑥slaves
node1
node2
⑦yarn-site.xml
<property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
</property>
<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
</property>
<property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
</property>
<property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>604800</value>
</property>
(4)分发 Hadoop 到 node1、node2
cd /usr/local/soft/
scp -r hadoop-2.7.6/ node1:`pwd`
scp -r hadoop-2.7.6/ node2:`pwd`
(5)格式化 namenode(第一次启动的时候需要执行)
hdfs namenode -format

(6)启动 Hadoop 集群
start-all.sh
(7)检查 master、node1、node2 上的进程
①master

②node1 

 ③node2

(8)访问 HDFS 的 WEB 界面
http://master:50070

(9)访问 YARN 的 WEB 界面
http://master:8088/cluster

3.scp&rsync 的使用
(1) scp(secure copy)安全拷贝
①scp 定义:
scp 可以实现服务器与服务器之间的数据拷贝。(from server1 to server2)
②基本语法
scp -r /usr/local/soft/data/ node1:`pwd`
命令 递归 要拷贝的文件路径/名称 目的用户@主机:目的路径 /名称
③案例实操
在 master 上,将 master 中/usr/local/soft/下的 data/目录拷贝到 node1
中的 soft 目录下:
[root@master soft]# scp -r data/ node1:`pwd`
(2)rsync 远程同步工具
rsync 主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。
rsync 和 scp 区别:用 rsync 做文件的复制要比 scp 的速度快,rsync 只对差异文件做更新。scp 是把所有文件都复制过去。
①基本语法
[root@master soft]# rsync -rvl data/ node2:`pwd`
命令 选项参数 要拷贝的文件路径/名称 目的用户@主机:目的路径/名称
选项参数说明:
选项
②案例实操
把 master 机器上的/usr/local/packages 目录同步到 node1 服务器的 root
用户下的/usr/local/packages 目录
[root@master local]# rsync -rvl packages/
node1:/usr/local/packages/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hadoop(部署篇) 的相关文章

  • Cat 文件与 HDFS 中的模式不匹配?

    我正在尝试 cat 与 hadoop HDFS 中的以下模式不匹配的文件 hdfs dfs cat gz 如何捕获所有不以 gz 结尾的文件 编辑 抱歉 但我需要在 Hadoop 中管理文件 显然 hdfs 附带的命令非常少 编辑2 所有文
  • 无法使用 PDI 步骤连接到 HDFS

    我已经配置成功了Hadoop 2 4 in an Ubuntu 14 04 虚拟机 from a 视窗8系统 Hadoop 安装工作绝对正常 而且我还可以从 Windows 浏览器查看 Namenode 附图如下 所以 我的主机名是 ubu
  • Spark MLLib 存在问题,导致概率和预测对于所有内容都相同

    我正在学习如何将机器学习与 Spark MLLib 结合使用 目的是对推文进行情感分析 我从这里得到了一个情感分析数据集 http thinknook com wp content uploads 2012 09 Sentiment Ana
  • Hive ParseException - 无法识别“结束”“字符串”附近的输入

    尝试从现有 DynamoDB 表创建 Hive 表时出现以下错误 NoViableAltException 88 at org apache hadoop hive ql parse HiveParser IdentifiersParser
  • 在 Hadoop 中按文件中的值排序

    我有一个文件 其中每行包含一个字符串 然后是一个空格 然后是一个数字 例子 Line1 Word 2 Line2 Word1 8 Line3 Word2 1 我需要按降序对数字进行排序 然后将结果放入文件中 为数字分配排名 所以我的输出应该
  • 使用 Hadoop 映射两个数据集

    假设我有两个键值数据集 数据集A和B 我们称它们为数据集A和B 我想用 B 组的数据更新 A 组中的所有数据 其中两者在键上匹配 因为我要处理如此大量的数据 所以我使用 Hadoop 进行 MapReduce 我担心的是 为了在 A 和 B
  • 是否值得购买 Mahout in Action 以跟上 Mahout 的速度,或者还有其他更好的来源吗?

    我目前是一个非常随意的用户阿帕奇马胡特 http mahout apache org 我正在考虑购买这本书象夫在行动 http www manning com owen 不幸的是 我很难理解这本书的价值 并且认为它是一本曼宁早期访问计划 h
  • Spark 上的 Hive 2.1.1 - 我应该使用哪个版本的 Spark

    我在跑蜂巢2 1 1 Ubuntu 16 04 上的 hadoop 2 7 3 根据Hive on Spark 入门 https cwiki apache org confluence display Hive Hive on Spark
  • R+Hadoop:如何从HDFS读取CSV文件并执行mapreduce?

    在以下示例中 small ints to dfs 1 1000 mapreduce input small ints map function k v cbind v v 2 MapReduce函数的数据输入是一个名为small ints的
  • 获取 emr-ddb-hadoop.jar 将 DynamoDB 与 EMR Spark 连接

    我有一个 DynamoDB 表 需要将其连接到 EMR Spark SQL 才能对该表运行查询 我获得了带有发行标签 emr 4 6 0 和 Spark 1 6 1 的 EMR Spark Cluster 我指的是文档 使用 Spark 分
  • Namenode高可用客户端请求

    谁能告诉我 如果我使用java应用程序请求一些文件上传 下载操作到带有Namenode HA设置的HDFS 这个请求首先去哪里 我的意思是客户端如何知道哪个名称节点处于活动状态 如果您提供一些工作流程类型图或详细解释请求步骤 从开始到结束
  • hadoop中reducer的数量

    我正在学习hadoop 我发现减速器的数量非常令人困惑 1 reducer的数量与partition的数量相同 2 reducer 的数量是 0 95 或 1 75 乘以 节点数 每个节点的最大容器数 3 减速机数量设定为mapred re
  • 如何通过Python访问Hive?

    https cwiki apache org confluence display Hive HiveClient HiveClient Python https cwiki apache org confluence display Hi
  • Hive - 线程安全的自动递增序列号生成

    我遇到一种情况 需要将记录插入到特定的 Hive 表中 其中一列需要是自动递增的序列号 即在任何时间点都必须严格遵循 max value 1 规则 记录从许多并行的 Hive 作业插入到这个特定的表中 这些作业每天 每周 每月批量运行 现在
  • 在映射器的单个输出上运行多个减速器

    我正在使用地图缩减实现左连接功能 左侧有大约 6 亿条记录 右侧有大约 2300 万条记录 在映射器中 我使用左连接条件中使用的列来创建键 并将键值输出从映射器传递到减速器 我遇到性能问题 因为两个表中的值数量都很高的映射器键很少 例如分别
  • 如何将SQL数据加载到Hortonworks中?

    我已在我的电脑中安装了 Hortonworks SandBox 还尝试使用 CSV 文件 并以表结构的方式获取它 这是可以的 Hive Hadoop nw 我想将当前的 SQL 数据库迁移到沙箱 MS SQL 2008 r2 中 我将如何做
  • 运行时异常:java.lang.NoSuchMethodException:tfidf$Reduce.()

    如何解决这个问题 tfidf是我的主类 为什么运行jar文件后会出现这个错误 java lang RuntimeException java lang NoSuchMethodException tfidf Reduce
  • 适用于 Hadoop 的 DynamoDB 输入格式

    我必须使用 Hadoop mapreduce 处理保留在 Amazon Dynamodb 中的一些数据 我在互联网上搜索 Dynamo DB 的 Hadoop InputFormat 但找不到它 我对 Dynamo DB 不熟悉 所以我猜测
  • InvalidRequestException(为什么:empid 如果包含 Equal,则不能被多个关系限制)

    这是关于我从 Apache Spark 查询 Cassandra 时遇到的问题 Spark 的正常查询工作正常 没有任何问题 但是当我使用关键条件进行查询时 出现以下错误 最初 我尝试查询复合键列族 它也给出了与下面相同的问题 由以下原因引
  • pyspark.sql.utils.AnalysisException:u'Path不存在

    我正在使用标准 hdfs 与 amazon emr 运行 Spark 作业 而不是 S3 来存储我的文件 我在 hdfs user hive warehouse 有一个配置单元表 但当我的 Spark 作业运行时找不到它 我配置了 Spar

随机推荐

  • 软件工程第一次阅读作业

    项目 内容 本作业属于北航软件工程课程 博客园班级链接 作业要求请点击链接查看 作业要求 我在这门课程的目标是 成为一个具有一定经验的软件开发人员 这个作业在哪个具体方面帮助我实现目标 让我对自己目前的状况有一个更加清醒的认识 1 快速阅读
  • 【华为OD统一考试A卷

    华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为OD统一考试 A卷 和OD统一考试 B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是
  • jQuery如何判断input元素是否获得焦点(点击编辑时)

    问题提出 如果你要判断input元素是否获得焦点 或者是否处在活动编辑状态 使用jQuery的 hasFocus 方法或 is focus 方法貌似都无效 搜索网上给出的办法 几乎净是采用上述处理方法 然并卵 都是扯淡 我的解决办法 监听点
  • Caffe中对MNIST执行train操作执行流程解析

    之前在 http blog csdn net fengbingchun article details 49849225 中简单介绍过使用Caffe train MNIST的文章 当时只是仿照caffe中的example实现了下 下面说一下
  • Windows下VVC参考软件VTM10.0编译和运行

    1 预备工作 VTM软件下载 链接https vcgit hhi fraunhofer de jvet VVCSoftware VTM tree masterhttps vcgit hhi fraunhofer de jvet VVCSof
  • Word中批量更新域的两个小方法

    一处域更新 如果只有一处需要更新 对着域右键选择 更新域 即可 多处域更新 很多需要更新的时候 可以如下操作 两种方法应该都可以 选择 打印预览 可以更新文档中的所有域 MOS认证的老师教的 CTRL A 全选 然后F9 更新 即可 自己觉
  • UE4 虚幻引擎,绑定Mesh到Skeleton骨骼插槽Socket

    1 在Skeleton骨骼中Add socket添加插槽 新建的Slot socket插槽 可以添加Preview Asset预览资产 方便查看 2 将Component组件绑定到骨骼中 新建一个StaticMesh 绑定组件到骨骼插槽 3
  • 如何学习C++

    转自 http blog csdn net yong2016 article details 9321837 看了这篇文章才知道自己最近太浮躁了 学做技术也是学做人 读者定位是两类人群 a 初学者 即将入手 C 语言 不知道如何开始 b 已
  • Tomcat 与 Nginx,Apache的区别

    Apache指的应该是Apache软件基金会下的一个项目 Apache HTTP Server Project Nginx同样也是一款开源的HTTP服务器软件 当然它也可以作为邮件代理服务器 通用的TCP代理服务器 Tomcat是Apach
  • 计算机分析学生表字段,巧用Excel数据透视表统计分析学生成绩

    巧用Excel数据透视表统计分析学生成绩 科技信息 IT论坛 SCIENCE TECHNOLOGYINFORMATION2010年第19期 巧用Excel数据透视表统计分析学生成绩 魏零 桂林航天工业高等专科学校计算机系 广西 桂林 541
  • Coverless Image Steganography Based on Generative Adversarial Network

    基于生成对抗网络的无载体图像隐写技术 摘要 传统图像隐写技术 修改 嵌入到载体图像来传输秘密信息 gt 隐写工具很容易检测到载体图像的失真 gt 秘密信息的泄露 无载体图像隐写技术 不修改载体图像就可以隐藏秘密信息 但存在容量低 质量差等问
  • 操作系统地址重定位相关练习题

    一 问题描述 某虚拟存储器的用户空间共有32个页面 每页1KB 主存16KB 假定某时刻系统为用户的第0 1 2 3页分配的物理块号为5 10 4 7 而该用户作业的长度为6页 试将十六进制的虚拟地址0A5C 103C转换成物理地址 二 正
  • ★【动态规划】【线段树】基站选址

    问题描述 有N个村庄坐落在一条直线上 第i i gt 1 个村庄距离第1个村庄的距离为Di 需要在这些村庄中建立不超过K个通讯基站 在第i个村庄建立基站的费用为Ci 如果在距离第i个村庄不超过Si的范围内建立了一个通讯基站 那么就成它被覆盖
  • 华为od机考题目-IPv4地址转换成为整数

    while 1 try nums list map int input split if len nums 4 有效ip 为 4段
  • Leetcode No. 136. Single Number

    Given an array of integers every element appears twice except for one Find that single one Note Your algorithm should ha
  • 面试官:你对Kafka了解吗?这41个问题你能答出几个

    一 请说明什么是Apache Kafka Apache Kafka是由Apache开发的一种发布订阅消息系统 它是一个分布式的 分区的和重复的日志服务 二 请说明什么是传统的消息传递方法 传统的消息传递方法包括两种 排队 在队列中 一组用户
  • 微信小程序真机调试实现获取本地服务器数据

    一般来说 如果不涉及到后端数据 我们通过微信小成开发工具预览功能是可以直观看到项目的情况的 但是一旦涉及到后端本地服务器数据 预览是无法获取到的 而真机调试得按下面操作才能实现 通过win r 打开命令行工具 输入ipconfig 如果你是
  • 关于RT-Thread中优先级翻转问题的简记

    最近在学习RT Thread的相关知识 记录一下心得 优先级翻转 是指当一个高优先级线程试图通过信号量机制访问共享资源时 如果该信号量已被低优先级线程持有 而这个低优先级线程在运行过程中可能又被其他一些中等优先级的线程抢占 从而造成高优先级
  • python-opencv 调取摄像头并保存图片

    通过opencv python 调用摄像头并保存图片 import torch coding utf 8 import numpy as np import cv2 import matplotlib pyplot as plt cap c
  • Hadoop(部署篇)

    目录 Hadoop三种运行模式 本地运行模式 伪分布式运行模式 完全分布式运行模式 开发重点 Hadoop三种运行模式 Hadoop 运行模式包括 本地模式 伪分布式模式以及完全分布式模式 Hadoop 官方网站 http hadoop a