Member since
07-17-2018
10
Posts
0
Kudos Received
1
Solution
My Accepted Solutions
Title | Views | Posted |
---|---|---|
2534 | 07-27-2018 01:53 AM |
07-27-2018
01:53 AM
I am using cloudera manager to handle my cluster. I found my problem. It was that I wanted to update a parameter that had already been configured by Cloudera manager team and that is a constant value. Cloudera manager doesn't allow to update some parameter like : io.storefile.bloom.block.size and the others constant parameters you cand find here : https://www.cloudera.com/documentation/other/shared/CDH5-Beta-2-RNs/hbase_jdiff_report-p-cdh4.5-c-cdh5b2/cdh4.5/constant-values.html So my problem is solved. Thank you very much for your help.
... View more
07-23-2018
12:25 PM
Hi, I am trying to implement this paper : ATH: Auto-Tuning HBase’s Configuration via Ensemble Learning (https://ieeexplore.ieee.org/document/7950900/) For this I have to collect a training set. In the section III, It show the structure of the training set. And in the begin au page 5, it explains how to generate the data for the training set. To build the models, we need to construct a training set S.
S is a matrix, with each row being the following vector:
vj = [perfj, cij, . . . , cij, . . . , cnj ], j = 1, . . . , m, (1)
with vj the jth observation, perfj the throughput or latency,
and cij the ith HBase configuration parameter of the jth observation. n is the total number of HBase configuration
parameters, and m is the total number of vectors in matrix S (observations or training examples). I need to generate random value for parameters showed in the table in the page 8. I used API of Cloudera manager. I go through the hbase service to try to update the parameters with python code. But they are some parameters that they aren't int the Hbase service like : "hbase.rs.cacheblocksonwrite"
"hbase.storescanner.parallel.seek.threads"
"hbase.storescanner.parallel.seek.enable"
"hbase.regionserver.hlog.blocksize"
"hbase.client.max.perregion.tasks"
"hbase.client.max.perserver.tasks"
"hbase.ipc.server.callqueue.handler.factor"
"hbase.ipc.server.callqueue.read.ratio"
"hbase.ipc.server.callqueue.scan.ratio"
"io.storefile.bloom.block.size"
"ycsb.client.threads"
"hfile.index.block.max.size"
"hfile.block.bloom.cacheonwrite"
"hfile.block.index.cacheonwrite" Maybe not all of them but a majority of them. So I wonder if it's the fact that my architecture doesn't use this parameters or my code doesn't work. below my code : # Get a list of all clusters
cdh5 = None
for c in api.get_all_clusters():
# print c.name
if c.version == "CDH5":
cdh5 = c
for s in cdh5.get_all_services():
# print s
if s.type == "HBASE":
hbase = s
nn = None
for r in hbase.get_all_services():
print r
if r.type == 'HBASE':
nn = r
print "Role name: %s\nState: %s\nHealth: %s\nHost: %s" % (
nn.name, nn.roleState, nn.healthSummary, nn.hostRef.hostId)
t = r.get_config(view='full')
for key, value in t.iteritems():
print(key)
print(value)
nn.update_config(
{
'io_storefile_bloom_block_size':True
#the others parameters with the value
}
) Thank you I hope i was clear
... View more
07-20-2018
03:25 AM
Thank you I tried the same it work but when I want to do the same for the following parameters I have a error. That say me : unknown parameters. "hbase.rs.cacheblocksonwrite"
"hbase.storescanner.parallel.seek.threads"
"hbase.storescanner.parallel.seek.enable"
"hbase.regionserver.hlog.blocksize"
"hbase.client.max.perregion.tasks"
"hbase.client.max.perserver.tasks"
"hbase.ipc.server.callqueue.handler.factor"
"hbase.ipc.server.callqueue.read.ratio"
"hbase.ipc.server.callqueue.scan.ratio"
"io.storefile.bloom.block.size"
"ycsb.client.threads"
"hfile.index.block.max.size"
"hfile.block.bloom.cacheonwrite"
"hfile.block.index.cacheonwrite" Could you please test it in your cluster ? I think some parameters cannot be change in this way... I am not sure Thank you very much
... View more
07-18-2018
09:46 AM
Hi I am using the API of Cloudera Manager. I am trying to modify an attribute from the Hbase service. It is Hbase_service_config_safety_valve. When a create a new ApiConfig object to update the old one. I use the ApiService class and the update_config to update the attribute. But when I put the dictionnary in the update_config function I have this error : Traceback (most recent call last):
File "rech.py", line 36, in <module>
hbase.update_config(m[0])
File "/usr/local/lib/python2.7/dist-packages/cm_api/endpoints/services.py", line 575, in update_config
resp = self._get_resource_root().put(path, data = json.dumps(data))
File "/usr/lib/python2.7/json/__init__.py", line 244, in dumps
return _default_encoder.encode(obj)
File "/usr/lib/python2.7/json/encoder.py", line 207, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/usr/lib/python2.7/json/encoder.py", line 270, in iterencode
return _iterencode(o, 0)
File "/usr/lib/python2.7/json/encoder.py", line 184, in default
raise TypeError(repr(o) + " is not JSON serializable")
TypeError: <cm_api.endpoints.types.ApiConfig object at 0x7f0287020ed0> is not JSON serializable Below my code : # Get a list of all clusters
cdh5 = None
for c in api.get_all_clusters():
# print c.name
if c.version == "CDH5":
cdh5 = c
for s in cdh5.get_all_services():
# print s
if s.type == "HBASE":
hbase = s
m = hbase.get_config(view='full')
j = ApiConfig(api,name='hbase_service_config_safety_valve',value='<property><name>regionserver.global.memstore.upperLimit</name><value>0.15</value></property>')
m[0]['hbase_service_config_safety_valve'] = j
hbase.update_config(m[0]) Thank you very much
... View more
Labels:
- Labels:
-
Apache HBase
-
Cloudera Manager
07-18-2018
05:45 AM
Can you explain me what I have to use for upload xml for the cluster ? Thank you
... View more
07-18-2018
04:30 AM
I already used the API. My problem is that I generated a hbase-site.xml with new value for severals parameters. Now I want to import it into Cloudera Manager with API. So I am looking for a way to put the xml file into Cloudera Manager without using the Cloudera manager UI. With the Api I succed to retrieve the attributes : "hbase_service_config_safety_valve". But I don't find how can I modify it in my python code. Is there a way to put some xml code directly into Cloudera Manager without GUI ? Thanks
... View more
07-18-2018
04:18 AM
Thanks It is what I wanted to do. And how can I modifiy the hbase_service_config_safety_valve" with the Api. I didn't find setter ou anything else in python. Thank you very much
... View more
07-17-2018
02:10 PM
Thanks for answering I was trying to use cm_api in python. But I didn't find any function to update the hbase-site.xml. I found the way to update some parameters but not in one shot, I had to modifiy the parameters for the master alone, for regionserver alone, and they were some parameters I didn't find them with the Api. But with Advanced Configuration Snippet safety valve from the CM UI, it's more easily because I can update the hbase-site.xml in one shot but manually not automatically unfortunately... I want to update the hbase-site.xml in one shot with a function from an APi or anything else Thank you sir
... View more
07-17-2018
12:15 PM
Hi, I am trying to implement a method to optimize Hbase with machine learning. I have to create a dataset for that I have to change severals time the configuration of Hbase With cloudera manager it is possible via UI but for my data of 250 configuration it's to long to change manually the configuration. How can I modify the configuration of Hbase automatically ? I have a xml file (or json) with the new configuration but I don't find how to upload it to Hbase and Cloudera manager. How can I upload it ? Thanks
... View more
Labels:
- Labels:
-
Apache HBase
-
Cloudera Manager
07-17-2018
12:02 PM
HI I want to do the same but with command line is it possible ? So I want to add some properties in hbase-site.xml but with command line like curl or others. Is it possible with some API or anything else ? Thank you very much
... View more