Hive4:Hive报错集锦

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文件中添加日志监控支持

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


    yarn.log-aggregation-enable
    true

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

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


    
    mapreduce.framework.name
    yarn


  
    mapreduce.jobhistroy.address
    master:10020


    mapreduce.jobhistroy.webapp.address
    master:19888

三、将修改后的配置文件拷贝到集群中的其他机器(单机版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报错集锦)