AnsweredAssumed Answered

remote client: Could not create FileClient

Question asked by alexwoolford on Apr 13, 2018
Latest reply on Apr 14, 2018 by alexwoolford

I have an unsecured MapR cluster (v6.0.1) and I'd like to execute hadoop commands from an external client.

 

I added the `mapr_core.repo` and installed the client: `yum install mapr-client`. I then created a `mapr` user on my client machine, ensuring that the id/gid match the mapr user/group on my cluster.

 

I then ran the `configure.sh`:

[root@dpm ~]# /opt/mapr/server/configure.sh -N mapr.woolford.io -c -C mapr01.woolford.io:7222 -HS mapr03.woolford.io -Z mapr01.woolford.io,mapr02.woolford.io,mapr03.woolford.io -RM mapr01.woolford.io,mapr02.woolford.io
Configuring Hadoop-2.7.0 at /opt/mapr/hadoop/hadoop-2.7.0
Done configuring Hadoop
CLDB node list: mapr01.woolford.io:7222
Zookeeper node list: mapr01.woolford.io:5181,mapr02.woolford.io:5181,mapr03.woolford.io:5181
External Zookeeper node list:

... and ensured that all the hosts have the relevant entries in `/etc/hosts`, i.e.:

10.0.1.111 mapr01.woolford.io mapr01
10.0.1.112 mapr02.woolford.io mapr02
10.0.1.113 mapr03.woolford.io mapr03
10.0.1.117 dpm.woolford.io dpm

Not sure if this step was necessary since the hosts can resolve via DNS, but saw it in the docs and so did it anyway.

 

I'm able to interact with the filesystem from a cluster node, e.g. 

 [mapr@mapr01 root]$ hadoop fs -ls /
Found 8 items
drwxr-xr-x - mapr mapr 1 2018-04-08 10:46 /apps
drwxr-xr-x - mapr mapr 0 2018-04-08 10:42 /hbase
drwxr-xr-x - mapr mapr 3 2018-04-08 10:48 /installer
drwxr-xr-x - mapr mapr 1 2018-04-08 10:59 /oozie
drwxr-xr-x - mapr mapr 0 2018-04-08 10:40 /opt
drwxrwxrwx - mapr mapr 0 2018-04-13 08:30 /tmp
drwxr-xr-x - mapr mapr 2 2018-04-08 10:48 /user
drwxr-xr-x - mapr mapr 1 2018-04-08 10:39 /var

I get the following error when I try to run the same command from the external client:

[mapr@dpm ~]$ hadoop fs -ls /
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/mapr/lib/slf4j-log4j12-1.7.12.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/mapr/hadoop/hadoop-2.7.0/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
ls: Could not create FileClient

... and see these messages in cldb.log:

2018-04-14 10:54:23,9351 lengths all wrong total=94, ticket=9522, hdr=48, msg=67659, received from 10.0.1.117:47954
2018-04-14 10:54:23,9359 lengths all wrong total=94, ticket=9522, hdr=51, msg=67659, received from 10.0.1.117:33788
2018-04-14 10:54:23,9366 lengths all wrong total=94, ticket=9522, hdr=50, msg=67659, received from 10.0.1.117:55472

Time is sync'd across all the hosts via `chronyd`:

$ ansible mapr_dpm -m shell -a "date"
dpm.woolford.io | SUCCESS | rc=0 >>
Sat Apr 14 11:33:01 MDT 2018

mapr01.woolford.io | SUCCESS | rc=0 >>
Sat Apr 14 11:33:01 MDT 2018

mapr02.woolford.io | SUCCESS | rc=0 >>
Sat Apr 14 11:33:01 MDT 2018

mapr03.woolford.io | SUCCESS | rc=0 >>
Sat Apr 14 11:33:01 MDT 2018

 

Can you see what I'm doing wrong?

Outcomes