美文网首页Hive数仓hive
Hive4:Hive报错集锦

Hive4:Hive报错集锦

作者: 勇于自信 | 来源:发表于2020-04-29 11:41 被阅读0次

    hive导入数据报错

    报错原因:

    load data local顺序写反了

    改顺序后执行成功:

    hive (badou)> load data local inpath '/home/dongdong/hive/orders.csv' overwrite into table orders;
    Loading data to table badou.orders
    OK
    Time taken: 12.187 seconds
    hive (badou)>

    执行hive报内存溢出

    解决办法:

    在hive-env.sh中设置:

    export HADOOP_HEAPSIZE=102400

    hive提交任务后,日志不能查看,如下:

    解放方法

    下来查询官方文档后,才了解到yarn的日志监控功能默认是处于关闭状态的,需要我们进行开启,开启步骤如下:

    Ps:下面配置的文件的位置在hadoop根目录 etc/haddop文件夹下,比较老版本的Hadoop是在hadoop根目录下的conf文件夹中

    一、在yarn-site.xml文件中添加日志监控支持

    该配置中添加下面的配置:

    <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
    

    二、在mapred-site.xml文件中添加日志服务的配置

    该配置文件中添加如下配置:

    <property>
        <!-- 表示提交到hadoop中的任务采用yarn来运行,要是已经有该配置则无需重复配置 -->
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
      <!--日志监控服务的地址,一般填写为nodenode机器地址 -->
        <name>mapreduce.jobhistroy.address</name>
        <value>master:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistroy.webapp.address</name>
        <value>master:19888</value>
    </property>
    

    三、将修改后的配置文件拷贝到集群中的其他机器(单机版hadoop可以跳过该步骤)

    快捷一点可以使用 scp 命令将配置文件拷贝覆盖到其他机器

    scp yarn-site.xml skyler@slave1:/hadoopdir/etc/hadoop/

    scp mapred-site.xml skyler@slave1:/hadoopdir/etc/hadoop/

    …其他datanode机器同理

    四、重新启动集群的Hdfs和Yarn服务

    在namenode机器上分别对hdfs和yarn服务进行重启

    bin/stop-dfs.sh

    bin/start-dfs.sh

    bin/stop-yarn.sh

    bin/start-yarn.sh

    五、 开启日志监控服务进程

    在nodenode机器上执行 sbin/mr-jobhistory-daemon.sh start historyserver 命令,执行完成后使用jps命令查看是否启动成功,若启动成功则会显示出JobHistoryServer服务

    六、hive中执行showdatabases报错:

    解决办法:

    步骤一:

    首先进入hive/bin目录下

    执行命令 ** ./hive --service metastore &**

    虽然发现还是报错,但是这个错误提供了版本冲突的错误信息,然后解决版本冲突问题,上面的问题就迎刃而解了。

    解决hive和mysql版本冲突问题:

    第一种方案:

    登陆mysql,修改hive metastore版本:
    进行mysql:mysql -uroot -p (123456)
    use hive;
    select * from version;
    update VERSION set SCHEMA_VERSION='2.1.1' where VER_ID=1;

    2.简单粗暴:在hvie-site.xml中关闭版本验证

    更改hive-site.xml配置:

    七、hive中关键字作为列名的方法
    hive中有很多关键字,直接作为列名,会出错的

    解决方案:

    使用·· (ESC下面的那个键,点号)两个符号包裹即可。

    hive (root)> create table udata(userid int,item_id int,rating int,timestamp timestamp)row format delimited fields terminated by ' ';
    OK
    Time taken: 2.254 seconds
    hive (root)>

    相关文章

      网友评论

        本文标题:Hive4:Hive报错集锦

        本文链接:https://www.haomeiwen.com/subject/yodgwhtx.html