Member since
07-17-2019
738
Posts
433
Kudos Received
111
Solutions
My Accepted Solutions
| Title | Views | Posted |
|---|---|---|
| 3473 | 08-06-2019 07:09 PM | |
| 3670 | 07-19-2019 01:57 PM | |
| 5192 | 02-25-2019 04:47 PM | |
| 4664 | 10-11-2018 02:47 PM | |
| 1768 | 09-26-2018 02:49 PM |
08-25-2016
05:20 PM
Oh my. Thanks for correcting me, Vlad! I am totally wrong and missed the return type (just looked at the method arguments).
... View more
08-23-2016
02:30 PM
2016-08-2309:19:43,087[recovery.RecoveryManager] DEBUG:Unable to initate log sort for hdfs://de-hd-cluster.name-node.com:8020/apps/accumulo/data/wal/de-hd-cluster.data-node3.com+9997/91ece971-7485-4acf-aa7f-dcde00fafce9: java.io.FileNotFoundException: File does not exist: /apps/accumulo/data/wal/de-hd-cluster.data-node3.com+9997/91ece971-7485-4acf-aa7f-dcde00fafce9
This error is the reason all of your tables are offline. You are missing a WAL file. Did you delete this file by hand? Is HDFS healthy (not missing any blocks)? If you did not do anything, you can grep for the file name "91ece971-7485-4acf-aa7f-dcde00fafce9" over the Accumulo Master and GarbageCollector log files to see if either of these services reports (incorrectly) deleting this file.
Because this WAL is missing, the accumulo.root table cannot be brought online (because Accumulo knows that it would be missing data). These are system tables, you cannot just delete them.
Your only option as I presently see it is to re-initialize. It appears that you have no other data in the system which I assume makes this a reasonable approach. First, stop Accumulo via Ambari, and then in a shell as root from the node where the Accumulo Master is installed:
# su - accumulo
$ hdfs dfs -rmr /apps/accumulo/data/*
$ ACCUMULO_CONF_DIR=/etc/accumulo/conf/secure accumulo init This will completely remove all Accumulo data and then re-initialize the system. Then, restart Accumulo via Ambari. The system should be in the same state as after your original installation.
... View more
08-22-2016
02:34 PM
I would assume that the the documentation is wrong as we do significant cross-component testing for each release (and I see we have some tests for Flume writing to HBase). "At least HBase 0.98" is probably the correct phrasing.
... View more
08-22-2016
01:53 PM
1 Kudo
Hi Klaus, 2016-08-2207:43:14,841[impl.ThriftScanner] DEBUG:Failed to locate tablet for table :!0 row :~err_ This exception is telling you that the Monitor is trying to read the row "~err_" from the accumulo.metadata table but failing to find where the tablet containing that row is hosted. This likely means that accumulo.metadata tablet which contains this row is not assigned to any TabletServer. 2016-08-22 07:43:26,533 [monitor.Monitor] INFO : Failed to obtain problem reports
java.lang.RuntimeException: org.apache.accumulo.core.client.impl.ThriftScanner$ScanTimedOutException
at org.apache.accumulo.core.client.impl.ScannerIterator.hasNext(ScannerIterator.java:161)
at org.apache.accumulo.server.problems.ProblemReports$3.hasNext(ProblemReports.java:252)
at org.apache.accumulo.server.problems.ProblemReports.summarize(ProblemReports.java:310)
at org.apache.accumulo.monitor.Monitor.fetchData(Monitor.java:346)
at org.apache.accumulo.monitor.Monitor$1.run(Monitor.java:486)
at org.apache.accumulo.fate.util.LoggingRunnable.run(LoggingRunnable.java:35)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.accumulo.core.client.impl.ThriftScanner$ScanTimedOutException
at org.apache.accumulo.core.client.impl.ThriftScanner.scan(ThriftScanner.java:230)
at org.apache.accumulo.core.client.impl.ScannerIterator$Reader.run(ScannerIterator.java:80)
at org.apache.accumulo.core.client.impl.ScannerIterator.hasNext(ScannerIterator.java:151)
... 6 more I believe this timeout is happening because of the previously mentioned failure to locate the tablet. I would check the Accumulo monitor page and see if you have any unassigned tablets (you should be able to see a red number). There would likely be accompanied logs in the "Recent Logs" page of the monitor which inform you why the Tablet is not being assigned. If you see no obvious errors, I would recommend trying to restart the Accumulo master. Regarding the "alternating memory usage", I don't have any explanation for that off the top of my head.
... View more
08-18-2016
07:25 PM
1 Kudo
I am not aware of any option to allow installation to directories other than /usr/.
... View more
08-12-2016
04:27 AM
11 Kudos
Apache ZooKeeper is a “high-performance coordination service
for distributed applications.” Most users do not use ZooKeeper directly; however,
most users are also hard-pressed to deploy a Hadoop-based architecture that
doesn’t rely on ZooKeeper in some way. With its prevalence in the data-center, resource
management within ZooKeeper is paramount to ensure that the various
applications and services relying on ZooKeeper are able to access it in a
timely manner. To this end, one of ZooKeeper’s protection mechanisms is known
as “max client connections” or “
maxClientCnxns”.
maxClientCnxns refers to a configuration property that can
be added to the zoo.cfg configuration file. This property limits the number of
active connections from a host, specified by IP address, to a single ZooKeeper
server. By default, this limit is 60 active connections; one host is not
allowed to have more than 60 active connections open to one ZooKeeper server.
Changes to this property in the zoo.cfg file require a restart of ZooKeeper.
This is a simple way that ZooKeeper prevents clients from performing a denial
of service attack against ZooKeeper (maliciously or unwittingly) as well as
limiting the amount of memory required by these client connections.
The reason this property is so important is that it can
effectively deny all access from a host inside of a cluster to a ZooKeeper
server. This can have a severe performance and stability impacts on a cluster.
For example, if a node running an Apache HBase RegionServer hits the
maxClientCnxns limit, all future requests made by that RegionServer to that
ZooKeeper server would be dropped until the overall number of connections to
the ZooKeeper server are reduced. Perhaps the worst part about this is that
processes other than HBase running on the same node (e.g. YARN containers as a
part of a MapReduce job) could also eat into the allowed connections from the
same host.
On a positive note, it is simple to recognize when this rate
limiting is happening and also simple to determine the problematic clients on
the rate-limited host. First, there is a very clear error message in the
ZooKeeper server log which identifies the host being rate-limited and the
current active connections limit:
“Too many connections from 10.0.0.1 – max is 60”
This error message is stating that a client from the host
with IP address 10.0.0.1 is trying to connect to this ZooKeeper server, but the
limit is 60 connections. As such, the current connection will be dropped. At
this point, we know the host where these connections are coming from, but we
don’t know what applications on that host are making them. We can use a network
analysis tool such as `netstat` to determine the applications on the client host,
in this case 10.0.0.1 (let’s assume our ZooKeeper server is on 10.0.0.5):
netstat -nape | awk ‘{if ($5 == “10.0.0.5:2181”) print $4, $9;}’
This command will list the local address and process
identifier for each connection, only where the remote address is our ZooKeeper
server and the ZooKeeper service port (2181). Similarly, we can further group
this data to give us a count of outgoing connections by process identifier to
the ZooKeeper server.
netstat -nape | awk ‘{if ($5 == “10.0.0.5:2181”) print $9;}’ | sort | uniq –c
This command will report a count of connections to the
ZooKeeper server. This can be extremely helpful in identifying misbehaving
applications causing issues. Additionally, we can use some of the “four letter
word” commands to further give us information about the active connections to a
ZooKeeper server. Using netcat, either of the following could be used:
echo “stat” | nc 10.0.0.5 2181
echo “cons” | nc 10.0.0.5 2181
Each of these commands will output data which contains information about the active connections to the given ZooKeeper server.
To summarize, the maxClientCnxns property in zoo.cfg is used
by the ZooKeeper server to limit incoming connections to the ZooKeeper from a
single host. By default, this limit is 60. When this limit is reached, new
connections to the ZooKeeper server from the given host will be immediately
dropped. This rate-limiting can be observed in the ZooKeeper log and offending
applications can be identified by using network tools like netstat. Changes to
maxClientCnxns must be accompanied with a restart of the ZooKeeper server.
ZooKeeper configuration property documentation
ZooKeeper four letter words documentation
... View more
08-11-2016
03:15 PM
I'm not sure of the state of that repository, but such a feature is included in Apache Phoenix 4.8.0 and will be included in HDP 2.5. I would assume that the integration would handle this natively, but I am not positive.
... View more
08-10-2016
08:14 PM
That documentation does not look correct to me, but maybe I am missing something 🙂 No, there is no way to change your shell profiles via Ambari.
... View more
08-10-2016
07:14 PM
You can set it globally for the shell in something like /etc/profile (or even better, a file in /etc/profile.d/), but.. Why are you setting HBASE_CONF_PATH to be two values? It should just be the value "/etc/hbase/conf" which the script will default to when you do not have HBASE_CONF_DIR or HBASE_CONF_PATH defined already in the environment. /etc/hbase/conf should also already have a copy of core-site.xml and hdfs-site.xml managed by Ambari.
... View more