hadoop-hdfs-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Vinayakumar B <vinayakum...@apache.org>
Subject Re: Eclipse debug HDFS server side code
Date Tue, 19 Apr 2016 18:37:25 GMT
Usually namenode console logs will be in .out file.

-vinay
On Apr 20, 2016 12:03 AM, "Kun Ren" <ren.hdfs@gmail.com> wrote:

> Hi Vinay,
>
> Thanks a lot for your quick reply.
>
> My current configuration is: I run the pseudo-distributed mode in my one
> Linux machine.
> Yes, I changed the code in eclipse first, and then re-compiled the code,
> and then restart HDFS using the new binary, and re-debug,  but still can
> not see any output?  When you said "the console of remote process", do you
> mean the console of the terminal that I run the command?
>
> If I want to change some code, Could you please explain a little more
> about how to debug/run my new modified code? Thanks so much.
>
>
>
> On Tue, Apr 19, 2016 at 2:17 PM, Vinayakumar B <vinayakumarb@apache.org>
> wrote:
>
>>
>> -Vinay
>>
>> ---------- Forwarded message ----------
>> From: Vinayakumar B <vinayakumarb@apache.org>
>> Date: Tue, Apr 19, 2016 at 11:47 PM
>> Subject: Re: Eclipse debug HDFS server side code
>> To: Kun Ren <ren.hdfs@gmail.com>
>>
>>
>> 1. Since you are debugging remote code, you can't change the code
>> dynamically during debugging. If you want to change, put the compiled code
>> in remote process, and restart, reconnect and debug again.
>> 2. All the console messages will be printed on the console of remote
>> process, not in eclipse.
>> 3. Though you cannot change the code, but you can change/inspect the
>> value of value of an variable in 'display' window.
>>
>> You can explore more related to these.
>>
>> -Vinay
>>
>> On Tue, Apr 19, 2016 at 11:42 PM, Kun Ren <ren.hdfs@gmail.com> wrote:
>>
>>> Hi Vinay,
>>>
>>> Thanks a lot, it works:)
>>>
>>> I have another question:
>>> 1. When I add the following lines into the public boolean mkdirs(String
>>> src, FsPermission masked, boolean createParent)  in the
>>> NameNodeRpcServer.java,
>>>
>>>       LOG.warn("NameNodeRpcServer.java:mkdirs, log level=warn");
>>>       System.out.println("In NameNodeRpcServer.java:mkdirs, before do
>>> actual work");
>>>
>>> But I can not see any output either from my terminal or Eclipse console
>>> when I step-by-step debug this function, do you know why?
>>>
>>> 2.  When I debug the client side code, for example FsShell, the default
>>> log level is INFO, I changed the level to DEBUG using the
>>> http://localhost:50070/logLevel, however, it still can not print out
>>> LOG.debug(), but I can see LOG.info(),  I don't know why it can not print
>>> out debug information even I set the log level to DEBUG.
>>>
>>>
>>> Thanks a lot for your help,
>>>
>>>
>>>
>>>
>>>
>>> On Tue, Apr 19, 2016 at 12:21 PM, Vinayakumar B <vinayakumarb@apache.org
>>> > wrote:
>>>
>>>> Hi Kun Ren,
>>>>
>>>> You can follow the below steps.
>>>> 1. configure HADOOP_NAMENODE_OPTS="-Xdebug
>>>> -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=3988" in
>>>> hadoop-env.sh
>>>> 2. Start Namenode
>>>> 3. Now Namenode will start debug port in 3988.
>>>> 4. Configure Remote debug application to connect to
>>>> <namenode_host>:3988 in eclipse
>>>> 5. Now add a breakpoint in NameNodeRpcServer.java's any method you want
>>>> to debug. NameNodeRpcServer.java is the gateway between NameNode and IPC
>>>> Server Layer.
>>>> 6. Now you can do step-by-step execution to observe the detailed
>>>> executions.
>>>>
>>>> Happy Debugging ;)
>>>>
>>>> -Vinay
>>>>
>>>> On Tue, Apr 19, 2016 at 8:46 PM, Kun Ren <ren.hdfs@gmail.com> wrote:
>>>>
>>>>> Hi All,
>>>>>
>>>>> Currently I used eclipse to compile/debug the source code, and I
>>>>> configured the "remote Java application" to debug the source code in
>>>>> eclipse, for example, I can debug the  client side code when I run the
>>>>> command "./bin/hdfs dfs -mkdir test", it goes through "FsShell--->
>>>>> DistributedFileSystem---->DFSClient ....->send request to the server
side.
>>>>> Then it finish debugging, but I can not see how the server side handle
the
>>>>> request.
>>>>>
>>>>>
>>>>> However, I want to debug and see how the server side(HDFS) handle the
>>>>> request? Do you know how I can do this?  Thanks so much. Also when I
try to
>>>>> add some debug information(such as print out something), but I can not
see
>>>>> anything printed out in eclipse, I don't know why. Thanks again.
>>>>>
>>>>> Best,
>>>>> Kun
>>>>>
>>>>
>>>>
>>>
>>
>>
>

Mime
View raw message