我在同一台机器上部署了辅助名称节点是我的主要名称节点:
出于性能和持久性原因,这是错误的(辅助名称节点不是热备份,但它确实有所需元数据的副本)。我找到了有关如何移动 namenode 的文档,但没有找到关于移动辅助 namenode 的文档。
有经验的人知道如何安全地做到这一点吗?
我在一个项目中工作,我的工作是构建一个数据库系统来管理大约 60,000,000,000 条数据条目。
项目背景是我要对每秒从大约30,000个RFID阅读器读取的大量消息进行实时存储。假设每个 RFID 阅读器每天生成 6,000 条消息,我必须向数据库中插入 180,000,000 个条目。
可能的数据条目类似于“time_stamp、Reader_ID、Tag_ID、other_msg_content”
将是基于时间范围、Reader_ID 和 Tag_ID 的查询 (SELECT)。查询不会很复杂。
现在在设计数据库系统,打算用MySQL。我的转储问题是:
使用 MySQL 是否明智,还是我应该求助于 Oracle(价格昂贵)或 HBase?
如果我必须使用 MySQL,知道如何构建集群吗?
如果我将消息插入表格中,很快表格就会很长。我想使用 Sharding 技术将长表拆分为许多短表。
3.a. 我想知道一个MySQL InnoDB表的合适长度,即插入多少条数据后,我要开始分片?
3.b. 有没有好的分片代理解决方案?我知道 spock 代理和其他一些,需要推荐。
我必须使用 MySQL 集群吗?或者我只是使用mysql主服务器和分片从服务器,并使用Replication来实现高可用?
假设我必须在 MySQL 中处理 20 TB 数据(1 年),我计划使用 20 个节点(PC 服务器,便宜),并且每个节点存储 1 TB 数据,这可能吗?欢迎提出任何意见。
非常感谢。
问题
第一个目标是独立运行 HBase。一旦 HBase 启动,导航到 ip:60010/master-status 就成功了。
第二个目标是运行一个独特的 ZooKeeper 仲裁。ZooKeeper已下载并已启动:
netstat -nato | grep 2181
tcp 0 0 :::2181 :::* LISTEN off (0.00/0/0)
Run Code Online (Sandbox Code Playgroud)
将conf/hbase-env.sh改变如下:
# Tell HBase whether it should manage it's own instance of Zookeeper or not.
export HBASE_MANAGES_ZK=false
Run Code Online (Sandbox Code Playgroud)
为了避免 HBase 在 HBase 启动后启动 ZooKeeper。
但是,一旦启动了 HBase,就会出现以下错误。
Could not start ZK at requested port of 2181. ZK was started at port: 2182.
Aborting as clients (e.g. shell) will not be able to find this ZK quorum.
Run Code Online (Sandbox Code Playgroud)
题 …
更新 4,215:
查看hdfs内部的空间使用情况后,我发现 .oldlogs 使用了大量空间:
1485820612766 /hbase/.oldlogs
Run Code Online (Sandbox Code Playgroud)
所以新问题:
同样作为作业 scollector 不会监视各种 hdfs 目录的磁盘空间使用情况....
看起来以下错误在那个时候开始重复填充日志,不确定它们的确切含义:
2014-11-25 01:44:47,673 FATAL org.apache.hadoop.hbase.regionserver.wal.HLog: Could not sync. Requesting close of hlog
java.io.IOException: Reflection
at org.apache.hadoop.hbase.regionserver.wal.SequenceFileLogWriter.sync(SequenceFileLogWriter.java:310)
at org.apache.hadoop.hbase.regionserver.wal.HLog.syncer(HLog.java:1405)
at org.apache.hadoop.hbase.regionserver.wal.HLog.syncer(HLog.java:1349)
at org.apache.hadoop.hbase.regionserver.wal.HLog.sync(HLog.java:1511)
at org.apache.hadoop.hbase.regionserver.wal.HLog$LogSyncer.run(HLog.java:1301)
at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor30.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.hadoop.hbase.regionserver.wal.SequenceFileLogWriter.sync(SequenceFileLogWriter.java:308)
... 5 more
Caused by: java.io.IOException: Failed to add a datanode. User may turn off this feature by setting dfs.client.block.write.replace-datanode-on-failure.policy in …Run Code Online (Sandbox Code Playgroud) 对于我们希望使用 Active Active 配置实现零数据库和应用程序停机时间的应用程序。我们的 dB 是 Oracle
以下是我的问题:
感谢和问候, 希拉尔