CentOS hbase put 报错

本文记录了在使用HBase进行数据插入时遇到的未知主机名错误,并给出了通过配置DNS解析来解决问题的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

执行插入

put 'mytable','first','cf:message','hello'

意外报错,

2017-04-14 06:36:36,102 WARN  [main] net.DNS: Unable to determine address of the host-falling back to "localhost" address
java.net.UnknownHostException: bogon: bogon: Temporary failure in name resolution
    at java.net.InetAddress.getLocalHost(InetAddress.java:1475)
    at org.apache.hadoop.net.DNS.resolveLocalHostIPAddress(DNS.java:287)
    at org.apache.hadoop.net.DNS.<clinit>(DNS.java:58)
    at org.apache.hadoop.hbase.client.ScannerCallable.<clinit>(ScannerCallable.java:90)
    at org.apache.hadoop.hbase.client.ClientSmallScanner$SmallScannerCallableFactory.getCallable(ClientSmallScanner.java:305)
    at org.apache.hadoop.hbase.client.ClientSmallReversedScanner.nextScanner(ClientSmallReversedScanner.java:167)
    at org.apache.hadoop.hbase.client.ClientSmallReversedScanner.loadCache(ClientSmallReversedScanner.java:205)
    at org.apache.hadoop.hbase.client.ClientSmallReversedScanner.next(ClientSmallReversedScanner.java:185)
    at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateRegionInMeta(ConnectionManager.java:1249)
    at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateRegion(ConnectionManager.java:1155)
    at org.apache.hadoop.hbase.client.AsyncProcess.submit(AsyncProcess.java:370)
    at org.apache.hadoop.hbase.client.AsyncProcess.submit(AsyncProcess.java:321)
    at org.apache.hadoop.hbase.client.BufferedMutatorImpl.backgroundFlushCommits(BufferedMutatorImpl.java:206)
    at org.apache.hadoop.hbase.client.BufferedMutatorImpl.flush(BufferedMutatorImpl.java:183)
    at org.apache.hadoop.hbase.client.HTable.flushCommits(HTable.java:1425)
    at org.apache.hadoop.hbase.client.HTable.put(HTable.java:1018)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.jruby.javasupport.JavaMethod.invokeDirectWithExceptionHandling(JavaMethod.java:450)
    at org.jruby.javasupport.JavaMethod.invokeDirect(JavaMethod.java:311)
    at org.jruby.java.invokers.InstanceMethodInvoker.call(InstanceMethodInvoker.java:59)
    at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:312)
    at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:169)
    at org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
    at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74)
    at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:120)
    at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:134)
    at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:174)
    at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:282)
    at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:71)
    at org.jruby.ast.CallManyArgsNode.interpret(CallManyArgsNode.java:59)
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_BLOCK(ASTInterpreter.java:111)
    at org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:374)
    at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:295)
    at org.jruby.runtime.InterpretedBlock.yieldSpecific(InterpretedBlock.java:229)
    at org.jruby.runtime.Block.yieldSpecific(Block.java:99)
    at org.jruby.ast.ZYieldNode.interpret(ZYieldNode.java:25)
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
    at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74)

猜想识别不了localhost

于是编辑 /etc/resolv.conf
添加了一行DNS的配置

localhost 127.0.0.1

ok 搞定

### CentOS 7 中 `ifconfig` 命令报错的原因 在 CentOS 7 或更高版本中,默认情况下不再提供传统的 `ifconfig` 工具,而是推荐使用更现代化的网络管理工具如 `ip` 和 `nmcli`。如果尝试运行 `ifconfig` 并遇到错误提示,则可能是因为未安装该工具。 #### 解决方案 可以通过安装 `net-tools` 软件包来重新启用 `ifconfig` 功能: ```bash yum install net-tools -y ``` 完成上述操作后即可正常使用 `ifconfig` 命令[^1]。 需要注意的是,在现代 Linux 发行版中建议优先采用 `ip addr show` 替代 `ifconfig` 查看网卡状态;或者通过 NetworkManager 的命令行接口 `nmcli dev status` 获取当前设备连接情况。 对于脚本兼容性需求较高的场景下确实需要保留传统方式时才考虑引入额外依赖项即 `net-tools` 包。 --- ### 示例代码展示如何切换至新方法获取IP地址信息 以下是利用 `ip` 命令替代旧有 `ifconfig` 方法的一个简单例子: ```bash #!/bin/bash INTERFACE="eth0" echo "Interface $INTERFACE details:" ip addr show dev ${INTERFACE} ``` 此脚本定义了一个变量用于指定目标接口名称 (此处设为 eth0),随后调用了 `ip addr show` 来显示特定网卡的相关属性数据。 同样功能也可以借助于如下单行指令实现快速查询活动端口及其对应 IPv4 地址列表: ```bash ip -o -f inet addr | awk '{print $2,$4}' ``` 以上两种形式均能有效取代原始基于 `ifconfig` 的处理逻辑并具备更好的跨平台适应能力。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值