Hello Hari, can you give me some insight as to how I can put the ip
addresses or rack numbers of datanodes in the choose target method.

Warm regards,
Shuubham

On Fri, Apr 19, 2019 at 10:05 PM Hariharan <hariharan...@gmail.com> wrote:

> Favoured nodes is a per-file property that you can set at the time of
> creation. Note that future rebalancing may not respect this. You can read
> more about it here -
> https://github.com/apache/hadoop/blob/a55d6bba71c81c1c4e9d8cd11f55c78f10a548b0/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/DFSClient.java#L1171
>
> If there is a fixed relation b/w your files and the datanode they need to
> be on, then as Hilmi suggested you are better off writing a custom policy
> that extends the default one. You would need to extend the chooseTarget
> method to apply your logic there.
>
> ~ Hari
>
> On Fri, Apr 19, 2019 at 12:44 PM Shuubham Ojha <shuubhamo...@gmail.com>
> wrote:
>
>> Hi Hilmi, thanks for your response. I have already done the following:
>> 1. Defined the rack topology in a script and added that to core-site.xml.
>> I think this ensures that the hadoop on namenode knows the ip addresses of
>> datanodes and corresponding rack numbers.
>> 2. I have gone through the default block placement policy code multiple
>> times and I can see that a parameter called favored nodes has been used. I
>> believe this parameter is of interest to me.
>>
>> The trouble is that I have a set of nodes with known ip addresses but I
>> cant see any specific ip addresses being used in the placement policy code.
>> I specifically want to know how to tell my hadoop code to place a
>> particular block of data on a particular datanode given it's ip address. I
>> think this problem can be resolved by setting the given datanode as favored
>> node for the time when the data block of interest is being dequeued to be
>> sent to datanodes but I can't how that should be done.
>>
>> Warm regards,
>> Shuubham Ojha
>>
>> On Fri, Apr 19, 2019 at 4:12 AM Hilmi Egemen Ciritoğlu <
>> hilmi.egemen.cirito...@gmail.com> wrote:
>>
>>> Hi Shuubham,
>>>
>>> You can simply create your own block placement class by extending
>>> BlockPlacementPolicy.
>>>  As a starting point, you may want to have a look at Block Placement
>>> Default Policy Source Code
>>> <https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockPlacementPolicyDefault.java>
>>> .
>>>
>>> Regards,
>>> H. Egemen Ciritoglu
>>>
>>> On Thu, 18 Apr 2019 at 22:34, Shuubham Ojha <shuubhamo...@gmail.com>
>>> wrote:
>>>
>>>> Can anyone give me some idea as to how I can write my own block
>>>> placement strategy in hadoop 3.
>>>>
>>>>
>>>> Shuubham Ojha
>>>>
>>>

Reply via email to