Q:

ls: reading directory .:  Input/output error

My system raised the I/O error when I tried to use 'ls' on a mounted hard disk. 
I am using 
hadoop@hbase1:/hddata$ uname -a
Linux hbase1 3.8.0-29-generic #42~precise1-Ubuntu SMP Wed Aug 14 16:19:23 UTC 2013 x86_64    x86_64 x86_64 GNU/Linux

hadoop@hbase1:/hddata$ df
Filesystem                      1K-blocks       Used Available Use% Mounted on
/dev/mapper/hbase2--vg-root     468028968    2715496 441532304   1% /
udev                              6081916          4   6081912   1% /dev
tmpfs                             2436652        336   2436316   1% /run
none                                 5120          0      5120   0% /run/lock
none                              6091620          0   6091620   0% /run/shm
/dev/sda1                      1922727280  867279740 957771940  48% /hddata
/dev/sdb1                          233191      27854    192896  13% /boot
10.18.103.101:/data/marketdata 1883265024 1644255232 143344640  92% /srv/data/marketdatah

The last several lines of dmesg
hadoop@hbase1:/hddata$ dmesg | tail
[316263.280056] EXT4-fs (sda1): previous I/O error to superblock detected
[316263.281326] sd 0:0:0:0: [sda] Unhandled error code
[316263.281329] sd 0:0:0:0: [sda]
[316263.281330] Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
[316263.281332] sd 0:0:0:0: [sda] CDB:
[316263.281334] Write(10): 2a 00 00 00 00 3f 00 00 08 00
[316263.281342] end_request: I/O error, dev sda, sector 63
[316263.282584] Buffer I/O error on device sda1, logical block 0
[316263.283799] lost page write due to I/O error on sda1
[316263.283842] EXT4-fs error (device sda1): ext4_find_entry:1270: inode #2: comm bash: reading directory lblock 0

A:

Buffer I/O error on device sda1, logical block 0

This sort of thing is indicative of an impending hardware failure.  I'd do what you can to back up everything you need to somewhere else and replace the drive before it fails irreparably.