我正在以伪分布式模式设置 CDH4。
我已经设置了 Hadoop,并且按照 CDH4 安装指南中的建议,也成功完成了 hdfs 演示。
我还设置了 HIVE 和 HBase。
为了在 Hbase 中填充数据,我编写了一个 java 客户端,它在 HBase 中填充大量数据(4 个表中每个大约 1M 行)。
现在我面临两个问题:
- 当 java 客户端运行将虚拟数据移植到 hbase 时,总共输入了大约 4,50,000 行数据后 regionserver 关闭。
- 使用 Hive,我无法访问在 HBase 中创建的表,或者最糟糕的是,甚至无法从 hive shell 创建表。虽然,hbase shell 向我显示了数据/表结构(无论是在 regionserver 关闭之前生成的。)
我看过其他关于相同的帖子。似乎第二个问题与我的 /etc/hosts 或 hive-site.xml 有关。因此,我正在粘贴它们的内容。
/etc/hosts
198.251.79.225 u17162752.onlinehome-server.com u17162752
198.251.79.225 default-domain.com
198.251.79.225 hbase.zookeeper.quorum localhost
198.251.79.225 cloudera-vm # Added by NetworkManager
127.0.0.1 localhost.localdomain localhost
127.0.1.1 cloudera-vm-local localhost
蜂巢站点.xml
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/metastore</value>
<description>the URL of the MySQL database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>mypassword</value>
</property>
<property>
<name>datanucleus.autoCreateSchema</name>
<value>false</value>
</property>
<property>
<name>datanucleus.fixedDatastore</name>
<value>true</value>
</property>
<property>
<name>hive.metastore.uris</name>
<value>thrift://127.0.0.1:9083</value>
<description>IP address (or fully-qualified domain name) and port of the metastore host</description>
</property>
<property>
<name>hive.support.concurrency</name>
<description>Enable Hive's Table Lock Manager Service</description>
<value>true</value>
</property>
<property>
<name>hive.zookeeper.quorum</name>
<description>Zookeeper quorum used by Hive's Table Lock Manager</description>
<value>zk1.myco.com,zk2.myco.com,zk3.myco.com</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<description>Zookeeper quorum used by Hive's Table Lock Manager</description>
<value>zk1.myco.com,zk2.myco.com,zk3.myco.com</value>
</property>
<property>
<name>hive.server2.authentication</name>
<value>NOSASL</value>
</property>
</configuration>
这些问题阻碍了我完成任务,我应该这样做。
在此先感谢阿布斯凯克
PS:这是我第一次在这个论坛发帖,很抱歉,如有不当之处,您可能发现了!谢谢你陪我。
嗨塔里克,感谢您的回复。我以某种方式设法克服了这一点。现在,我面临另一个问题。
我已经在 HBase 中有 4 个表,我想在 hive shell 中创建外部表。但是在 hive shell 上运行 create external table 命令时会出现以下错误:
'ERROR: org.apache.hadoop.hbase.client.NoServerForRegionException: No server address listed in -ROOT- for region .META.,,1.1028785192 containing row'
此外,当我在 HBase shell 中执行某些操作时会出现此错误。
前一个错误在 hbase shell 上的另一个错误与 zookeeper 有关。堆栈跟踪:
'WARN zookeeper.ZKUtil: catalogtracker-on- org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation@6a9a56bf- 0x1413718482c0010 Unable to get data of znode /hbase/unassigned/1028785192
org.apache.zookeeper.KeeperException$SessionExpiredException: KeeperErrorCode = Session expired for /hbase/unassigned/1028785192'
请帮忙。谢谢!