我的钱包有点瘪 2019-04-13 21:28 采纳率: 0%
浏览 917

sparksql整合hive创建外部表报错(求大佬解答)

sparksql整合hive创建外部表的时候报错
建表语句如下:

create external table if not exists bdm.itcast_bdm_order_goods(
user_id string,--用户ID
order_id string,--订单ID
order_no string,--订单号
sku_id bigint,--SKU编号
sku_name string,--SKU名称
goods_id bigint,--商品编号

) partitioned by (dt string)
row format delimited fields terminated by ','
lines terminated by '\n'
location '/business/itcast_bdm_order_goods';

报如下错误:

**Moved: 'hdfs://hann/business/itcast_bdm_order_goods' to trash at: hdfs://hann/user/root/.Trash/Current
Error in query: org.apache.hadoop.hive.ql.metadata.HiveException: MetaException(message:java.lang.IllegalArgumentException: java.net.UnknownHostExc**eption: nhann);

启动spark-sql的语句如下:

spark-sql --master spark://node01:7077 --driver-class-path /export/servers/hive-1.1.0-cdh5.14.0/lib/mysql-connector-java-5.1.38.jar --conf spark.sql.warehouse.dir=hdfs://hann/user/hive/warehouse

hive-site.xml配置文件如下:

<configuration>
        <property>
                <name>javax.jdo.option.ConnectionURL</name>
                <value>jdbc:mysql://node03.hadoop.com:3306/hive?createDatabaseIfNotExist=true</value>
        </property>

        <property>
                <name>javax.jdo.option.ConnectionDriverName</name>
                <value>com.mysql.jdbc.Driver</value>
        </property>
        <property>
                <name>javax.jdo.option.ConnectionUserName</name>
                <value>root</value>
        </property>
        <property>
                <name>javax.jdo.option.ConnectionPassword</name>
                <value>123456</value>
        </property>
      <!-- <property>
                <name>hive.cli.print.current.db</name>
                <value>true</value>
        </property>
        <property>
                <name>hive.cli.print.header</name>
                <value>true</value>
        </property>
        <property>
                <name>hive.server2.thrift.bind.host</name>
                <value>node03.hadoop.com</value>
        </property>
         <property>
                <name>hive.metastore.uris</name>
                <value>thrift://node03.hadoop.com:9083</value>
        </property>
        <property>
                <name>hive.metastore.client.socket.timeout</name>
                <value>3600</value>
        </property>-->

</configuration>
  • 写回答

1条回答 默认 最新

  • 憧憬blog 2023-03-15 08:02
    关注

    根据报错信息可以看出创建外部表时location指定的路径无法访问,造成这个错误的原因可能是Hadoop集群中的namenode无法解析主机名“nhann”,建议您检查下几个地方:

    1. 检查Hadoop集群中的/etc/hosts文件中是否有“nhann”这个主机名的映射,如果没有可以添加上。

    2. 如果您使用的是DNS服务,请检查DNS配置是否正确。

    3. 如果您使用的是代理服务器,请检查代理服务器的配置是否正确。

    同时,建议您在创建表时使用完整的HDFS路径代替hostname来避免这种问题。

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题