- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在为我的 5 节点 hadoop 集群使用 VM(1 个 VM 有 Name Node,1 个 VM 有 JobTracker/SecondaryNameNode/HMaster,3 个 VM 有 DataNodes/TaskTrackers/HRegionServers/Zookeepers),这是 Cloudera 发行版,我手动安装,而不是通过 Cloudera Manager 安装。
编辑 - 每个包含数据节点的虚拟机的磁盘空间大约用了 50-60%。我最好在明天早上之前完成这件事,但我可以在 24 小时内完成。
我必须返回其中一个 VM(特别是一个特定的 DataNode)并将其替换为另一个(不要问为什么)。我购买了第二台 VM,可以随时开始安装。
这是我目前的策略:
为什么是第三个? NameNode 保存存储在 HDFS 上的所有文件的所有 block 的位置的元数据。 HBase 元表指向具有 HFiles 数据的 RegionServers。 Zookeeper服务器在DataNode上的数据也是必不可少的。
如何指示 NameNode 和 HBase/Zookeeper 指向新采购的 VM 上的数据?我还没有考虑什么?
现在这实际上是一个开发环境,我可以使用 Pig 导出 HDFS 数据和 HBase 数据,清除所有 DataNode 和 Zookeeper 的数据目录,然后使用 Pig 将数据导回。除了跛脚之外,我相信这对我来说是一个很好的锻炼。
最佳答案
如果您只是更换一个合理大小的集群中的单个机器,您通常可以关闭要停用的机器的区域服务器等待区域重新分配,然后关闭数据节点并等待“在 Hadoop NameNode UI 中“复制不足的 block 数”降至零。然后,当您将新机器添加到集群时,您可以运行 Hadoop balancer重新平衡数据 block 的工具。然后使用 HBase shell 运行 HBase balancer
命令。这将重新平衡 HBase 区域。
如果要停用多个节点,您可能需要阅读 draining nodes .您还可以使用 hdfs-site.xml
中的节点排除将节点标记为已停用( dfs.hosts.exclude
) 和 mapred-site.xml
(mapreduce.jobtracker.hosts.exclude.filename
)。
我发现 HBase 中的重新平衡区域相对较快,而且并不令人担忧。重新平衡 HDFS block 非常耗时,因此可能值得也可能不值得,具体取决于集群的大小和集群的满载程度。
就其值(value)而言,我实际上并没有尝试手动将数据从一个节点复制到另一个节点,但我知道在节点退役后重新插入该节点效果很好。 (例如,如果机器需要一些离线硬件维护。)鉴于此,如果您用具有相同 DNS 和/或 IP 地址的新主机替换退役的机器,我希望您的工作方式。它也可能只是按照您尝试过的方式工作,但它似乎需要做更多的工作,并且只有在您试图尽量减少集群配置不足的时间段时才有用。
关于Hadoop 如何停用一个 DataNode 并用另一台机器替换它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22498075/
我有一个Perl脚本,要求用户输入密码。当用户键入字符时,我该如何仅回声“ *”代替用户键入的字符? 我正在使用Windows XP / Vista。 最佳答案 您可以玩Term :: ReadKey
This question already has answers here: How to urlencode a querystring in Python? (13个回答) 7年前关闭。 我正在
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 7 年前。 Improve t
我希望能够检测 h1 中的“/”标签,并将其替换为 ,其中.slash将充当分隔符。 var div = $('h1'); div.html(div.html().replace(/\//g, '/
我是一名 Java 初学者,目前正在寻找一种分割字符串的方法 message根据分隔符 (.) 划分为子字符串。理想情况下,我有单个句子,并且我想将每个句子包装在 HTML 标签中,即。 e. 。
MySql:我的产品表设置如下: pg_id |页面名称 1 |披萨馅饼 2 | child 菜单 Php:在循环遍历 MySQL 表中的记录时回显 html。 "; ?> 我
我正在尝试一次读取一个文本文件并将每一行打印到终端窗口。我正在使用 g++ 在 mac 上编译,例如 g++ cpp3.cpp -o cpp3。 文本文件如下所示: 20100000001 20100
这个问题在这里已经有了答案: sed fails with "unknown option to `s'" error [closed] (1 个回答) 关闭 7 年前。 我有个小问题。 我尝试用文
我有一个非常具体的问题。我正在使用 Debian。我有一个 FTP 文件夹,应用程序将在其中上传 pdf 文件,该文件将存储在 ftpfolder/EMAIL_ADDRESS 中,文件名将是 CURR
我尝试使用其 before 和 after 值的 means 填充 NaN 单元格。 type date v1 v2 0 a 2018-09 215
我在上述模拟中使用 SHM 的标准微分方程,a = -w^2*x。我正在使用 Python,并以 odeint 作为求解器。尽管对其进行了多次编辑,我仍然将输出视为直线而不是正弦曲线。代码是: fro
System.out.print("Enter the message to encrypt: "); message = s.next().toString(); // this mess
我有一个主要的 LinearLayout ,在 main.xml 文件中,在 Activity 中设置 ( setContentView )。入主LinearLayout我想添加 1-X 自定义 Li
并用括起来是否安全?
一些用户生成的文本(可能包含脚本/代码)将向公众展示。如果我过滤掉所有 和标记并用 将结果文本括起来和 ,用户提交的脚本有机会被执行吗? 请给我一个如何破解这个保护方案的例子。 最佳答案 Is it
{abc def ghi} 我已经通过在比较它是否是 { 或 } 之前先跨度包装所有字符来完成此操作。但这太慢了,我需要反转该过程,是否可以获取相对于父 div 的 cha
我想创建一个自定义 UITabBarItem 并使用 xib 文件设置其 UI,就像常规 UIView 一样。 我尝试在 UITabBarItem 上创建一个子类,但创建 xib 文件的选项不可用。
我有以下 HTML 结构: Text 1 Text 2 Text 3 Text 4 Text 5 我想找到一个包含“4”
我正在逐字创建着色工具。基本上用户可以从单词中选择几个字母并将它们分开着色,因此一个单词可以有 2 种或更多颜色。 为了跟踪所有单词,它们都有 ID,我想知道我怎么知道选择了哪些字母以及所选单词有哪些
我是 Python 的新手。我确实有一个包含单词列表的文件。它们包含丹麦字母 (ÆØÅ),但 re.compile 不理解这些字符。该函数按每个 ÆØÅ 拆分单词。文本是从 Twitter 和 Fac
C#如何在字符串中找到多余的)或(括号,并替换为@ 示例输入 )(more))) ((((more))) ((((more)) (about)((index)(more))) (about)((ind
我是一名优秀的程序员,十分优秀!