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文件中添加日志监控支持
该配置中添加下面的配置:
<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)>