Hadoop 错误归档库

在hive中操作任意mapreduce相关语句

The size of Container logs revealed the below error:

2015-04-24 11:41:41,858 WARN [main] org.apache.hadoop.mapred.MapTask: Unable to initialize MapOutputCollector org.apache.hadoop.mapred.MapTask$MapOutputBuffer
java.io.IOException: Invalid "mapreduce.task.io.sort.mb": 2048
	at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.init(MapTask.java:975)
	at org.apache.hadoop.mapred.MapTask.createSortingCollector(MapTask.java:401)

Solution:

Set the value of mapreduce.task.io.sort.mb < 2048MB 

Reason
“无法初始化任何输出收集器”表示工作未能启动容器,可以有多个相同的原因。然而,一个必须检查容器日志在hdfs识别导致错误。在这个特定的实例,mapreduce.task.io.sort.mb内存值输入大于2047 mb,但是它允许的最大值是2047 mb,因此任何高于其导致工作失败标记为无效。

解决方案: 
设置mapreduce.task.io.sort.mb < 2048 mb 
mapred-site.xml

        <property>
                <name>mapreduce.task.io.sort.mb</name>
                <value>1024</value>
        </property>

Linux内核事故,一直输出syslog日志

Message from syslogd@ at Thu Mar 17 22:58:28 2011 ...
localhost last message repeated 2 times

Message from syslogd@ at Thu Mar 17 22:58:28 2011 ...
localhost kernel: EDAC MC0: UE page 0x0, offset 0x0, grain 1073741824, row 2, labels ":": i3200 UE

无论是ssh上,还是本机的终端窗口统统都报警,而没有办法打字。

Solution:

[root@localhost ~]#  /etc/init.d/syslog stop    //先停止syslog:
[root@localhost init.d]# lsmod | grep edac
i3200_edac              9545  0 
edac_mc                26513  1 i3200_edac
[root@localhost init.d]# rmmod i3200_edac
[root@localhost init.d]# rmmod edac_mc
[root@localhost ~]#  /etc/init.d/syslog stop    //再开启syslog:
卸载 i3200_edac  edac_mc 两个模块

yum进程被占用

在install.sh过程中
Another app is currently holding the yum lock; waiting for it to exit...
The other application is: yum
Memory : 55 M RSS (352 MB VSZ)
Started: Thu Apr 9 18:45:48 2015 - 06:13 ago
State : Sleeping, pid: 31018

Solution: 
检查每个节点,运行:yum list & yum clean all
若出现问题,则表示yum进程被占用
rm -rf /var/run/yum.pid 或者直接pkill yum  

 

postgresql-libs.rpm from updates: [Errno 256] No more mirrors to try.

在安装ambari的过程中,出现以下错误
error :
### Step 4:Begin configure Web-server ............
-------------------------------------------------
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package ambari-server.noarch 0:1.4.4.23-1 will be installed
--> Processing Dependency: postgresql-server >= 8.1 for package: ambari-server-1.4.4.23-1.noarch
--> Running transaction check
---> Package postgresql-server.x86_64 0:8.4.20-2.el6_6 will be installed
--> Processing Dependency: postgresql-libs(x86-64) = 8.4.20-2.el6_6 for package: postgresql-server-8.4.20-2.el6_6.x86_64
--> Processing Dependency: postgresql(x86-64) = 8.4.20-2.el6_6 for package: postgresql-server-8.4.20-2.el6_6.x86_64
--> Processing Dependency: libpq.so.5()(64bit) for package: postgresql-server-8.4.20-2.el6_6.x86_64
--> Running transaction check
---> Package postgresql.x86_64 0:8.4.20-2.el6_6 will be installed
---> Package postgresql-libs.x86_64 0:8.4.20-2.el6_6 will be installed

Error Downloading Packages:
postgresql-8.4.20-2.el6_6.x86_64: failure: Packages/postgresql-8.4.20-2.el6_6.x86_64.rpm from updates: [Errno 256] No more mirrors to try.
postgresql-server-8.4.20-2.el6_6.x86_64: failure: Packages/postgresql-server-8.4.20-2.el6_6.x86_64.rpm from updates: [Errno 256] No more mirrors to try.
postgresql-libs-8.4.20-2.el6_6.x86_64: failure: Packages/postgresql-libs-8.4.20-2.el6_6.x86_64.rpm from updates: [Errno 256] No more mirrors to try.

cp: cannot create regular file `/var/lib/ambari-server/resources/': No such file or directory
cp: cannot create regular file `/var/lib/ambari-server/resources/': No such file or directory
./install.sh.x: line 232: ambari-server: command not found

Reason:
没有安装jdk的缘故,虽然之后再ambari配置的过程中,会重新再安装jdk,所以安装什么版本都没关系

Solution:
检查jdk:java -version查看已经在使用的jdk版本,如果没有,yum安装方式: yum install java ,如果不行则离线安装jdk。 系统自带jdk默认目录在/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64,验证方法为在/usr/lib/jvm/下运行 ls -l /usr/lib/jvm/

 

hive 元数据库安装出错

hive mysql的设置
update user set password =password('hive') where user ='hive';
select host,user from user;
insert into user(host,user,password)values('%','hive','hive');
grant all privileges on *.* to hive'%' identified by 'hive';
flush privileges

在用ambari安装HDP的过程中,装hive的节点不能事先安装mysql,有些配置可能不是默认的,导致元数据库配置不成功 。当然。源码安装恰好相反

 

当ambari意外宕机时,再重启出现以下错误
error:
cannot open Packages database in /var/lib/rpm E: could not open RPM database
solution:
rm -rf /var/lib/rpm/__db*

当ambari配置hdp时安装不成功,在命令行下运行:
ambari-server reset ambari-server restart
重启机器重新在浏览器配置HDP, 并注意保证时间同步

 

error:

Another MySQL daemon already running with the same unix socket.

solution:
yum remove mysql mysql-server mysql-libs mysql-devel
service mysql stop
mv /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock.bak

 

HbaseRegionServer自动停止:

Solution:
hbase regionserver process connection refused 把该机器127.0.0.1去掉

或者

时间同步问题!

 

Spark 磁盘占满

问题1

由于Spark在计算的时候会将中间结果存储到/tmp目录,而目前linux又都支持tmpfs,其实说白了就是将/tmp目录挂载到内存当中。

那么这里就存在一个问题,中间结果过多导致/tmp目录写满而出现如下错误

No Space Left on the device

解决办法就是针对tmp目录不启用tmpfs,修改/etc/fstab

  • spark.local.dir:Spark 运行时的临时目录,例如 map 的输出文件,保存在磁盘的 RDD 等都保存在这里。默认是 /tmp 这个目录,而一开始我们搭建的小集群上 /tmp 这个目录的空间只有2G,大数据量跑起来就出 Exception (”No space left on device”)了。

如果是archlinux,仅修改/etc/fstab是不够的,还需要执行如下指令:

systemctl mask tmp.mount

 

默认安装的CentOS,已经开启了tmpfs。tmpfs会使用内存,如果内存用完,会用swap空间。调整tmpfs大小,别超过内存+swap的大小。如果系统资源紧张,用完了内存,用到swap时,tmpfs的效率就大幅度降低了。所以不妨多安装些内存,反正内存价格也没多贵。tmpfs是内存文件系统,类似于DOS年代的ramdisk,mount上去就能用了,不需要用mkfs之类的命令来初始化。

# cat /etc/fstab

LABEL=/                 /                        ext3    defaults        1 1
LABEL=/home         /home                ext3    defaults        1 2
LABEL=/boot1        /boot                  ext3    defaults        1 2
tmpfs                    /dev/shm             tmpfs   defaults        0 0
devpts                   /dev/pts              devpts  gid=5,mode=620  0 0
sysfs                      /sys                    sysfs   defaults        0 0
proc                      /proc                  proc    defaults        0 0
LABEL=SWAP-sda3  swap                  swap    defaults        0 0

 

其中tmpfs那一行,就是开启tmpfs。在tmpfs里存放的文件,读写非常快,毕竟直接读取内存,当然比读取磁盘快多了。tmpfs里的文件,重启后就没了。适合存放session,或其他临时性的文件。可以大幅度提供读写速度。

 

posted @ 2015-06-10 08:57  晋心  阅读(895)  评论(0编辑  收藏  举报