Great to hear you sorted things out. Looking forward to the pull request!

On Mon, Nov 9, 2015 at 4:50 PM, Stephan Ewen <se...@apache.org> wrote:
> Super nice to hear :-)
>
>
> On Mon, Nov 9, 2015 at 4:48 PM, Niels Basjes <ni...@basjes.nl> wrote:
>>
>> Apparently I just had to wait a bit longer for the first run.
>> Now I'm able to package the project in about 7 minutes.
>>
>> Current status: I am now able to access HBase from within Flink on a
>> Kerberos secured cluster.
>> Cleaning up the patch so I can submit it in a few days.
>>
>> On Sat, Nov 7, 2015 at 10:01 PM, Stephan Ewen <se...@apache.org> wrote:
>>>
>>> The single shading step on my machine (SSD, 10 GB RAM) takes about 45
>>> seconds. HDD may be significantly longer, but should really not be more than
>>> 10 minutes.
>>>
>>> Is your maven build always stuck in that stage (flink-dist) showing a
>>> long list of dependencies (saying including org.x.y, including com.foo.bar,
>>> ...) ?
>>>
>>>
>>> On Sat, Nov 7, 2015 at 9:57 PM, Sachin Goel <sachingoel0...@gmail.com>
>>> wrote:
>>>>
>>>> Usually, if all the dependencies are being downloaded, i.e., on the
>>>> first build, it'll likely take 30-40 minutes. Subsequent builds might take
>>>> 10 minutes approx. [I have the same PC configuration.]
>>>>
>>>> -- Sachin Goel
>>>> Computer Science, IIT Delhi
>>>> m. +91-9871457685
>>>>
>>>> On Sun, Nov 8, 2015 at 2:05 AM, Niels Basjes <ni...@basjes.nl> wrote:
>>>>>
>>>>> How long should this take if you have HDD and about 8GB of RAM?
>>>>> Is that 10 minutes? 20?
>>>>>
>>>>> Niels
>>>>>
>>>>> On Sat, Nov 7, 2015 at 2:51 PM, Stephan Ewen <se...@apache.org> wrote:
>>>>>>
>>>>>> Hi Niels!
>>>>>>
>>>>>> Usually, you simply build the binaries by invoking "mvn -DskipTests
>>>>>> clean package" in the root flink directory. The resulting program should 
>>>>>> be
>>>>>> in the "build-target" directory.
>>>>>>
>>>>>> If the program gets stuck, let us know where and what the last message
>>>>>> on the command line is.
>>>>>>
>>>>>> Please be aware that the final step of building the "flink-dist"
>>>>>> project may take a while, especially on systems with hard disks (as 
>>>>>> opposed
>>>>>> to SSDs) and a comparatively low amount of memory. The reason is that the
>>>>>> building of the final JAR file is quite expensive, because the system
>>>>>> re-packages certain libraries in order to avoid conflicts between 
>>>>>> different
>>>>>> versions.
>>>>>>
>>>>>> Stephan
>>>>>>
>>>>>>
>>>>>> On Sat, Nov 7, 2015 at 2:40 PM, Niels Basjes <ni...@basj.es> wrote:
>>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> Excellent.
>>>>>>> What you can help me with are the commands to build the binary
>>>>>>> distribution from source.
>>>>>>> I tried it last Thursday and the build seemed to get stuck at some
>>>>>>> point (at the end of/just after building the dist module).
>>>>>>> I haven't been able to figure out why yet.
>>>>>>>
>>>>>>> Niels
>>>>>>>
>>>>>>> On 5 Nov 2015 14:57, "Maximilian Michels" <m...@apache.org> wrote:
>>>>>>>>
>>>>>>>> Thank you for looking into the problem, Niels. Let us know if you
>>>>>>>> need anything. We would be happy to merge a pull request once you have
>>>>>>>> verified the fix.
>>>>>>>>
>>>>>>>> On Thu, Nov 5, 2015 at 1:38 PM, Niels Basjes <ni...@basjes.nl>
>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>> I created https://issues.apache.org/jira/browse/FLINK-2977
>>>>>>>>>
>>>>>>>>> On Thu, Nov 5, 2015 at 12:25 PM, Robert Metzger
>>>>>>>>> <rmetz...@apache.org> wrote:
>>>>>>>>>>
>>>>>>>>>> Hi Niels,
>>>>>>>>>> thank you for analyzing the issue so properly. I agree with you.
>>>>>>>>>> It seems that HDFS and HBase are using their own tokes which we need 
>>>>>>>>>> to
>>>>>>>>>> transfer from the client to the YARN containers. We should be able 
>>>>>>>>>> to port
>>>>>>>>>> the fix from Spark (which they got from Storm) into our YARN client.
>>>>>>>>>> I think we would add this in
>>>>>>>>>> org.apache.flink.yarn.Utils#setTokensFor().
>>>>>>>>>>
>>>>>>>>>> Do you want to implement and verify the fix yourself? If you are
>>>>>>>>>> to busy at the moment, we can also discuss how we share the work (I'm
>>>>>>>>>> implementing it, you test the fix)
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Robert
>>>>>>>>>>
>>>>>>>>>> On Tue, Nov 3, 2015 at 5:26 PM, Niels Basjes <ni...@basjes.nl>
>>>>>>>>>> wrote:
>>>>>>>>>>>
>>>>>>>>>>> Update on the status so far.... I suspect I found a problem in a
>>>>>>>>>>> secure setup.
>>>>>>>>>>>
>>>>>>>>>>> I have created a very simple Flink topology consisting of a
>>>>>>>>>>> streaming Source (the outputs the timestamp a few times per second) 
>>>>>>>>>>> and a
>>>>>>>>>>> Sink (that puts that timestamp into a single record in HBase).
>>>>>>>>>>> Running this on a non-secure Yarn cluster works fine.
>>>>>>>>>>>
>>>>>>>>>>> To run it on a secured Yarn cluster my main routine now looks
>>>>>>>>>>> like this:
>>>>>>>>>>>
>>>>>>>>>>> public static void main(String[] args) throws Exception {
>>>>>>>>>>>     System.setProperty("java.security.krb5.conf",
>>>>>>>>>>> "/etc/krb5.conf");
>>>>>>>>>>>
>>>>>>>>>>> UserGroupInformation.loginUserFromKeytab("nbas...@xxxxxx.net",
>>>>>>>>>>> "/home/nbasjes/.krb/nbasjes.keytab");
>>>>>>>>>>>
>>>>>>>>>>>     final StreamExecutionEnvironment env =
>>>>>>>>>>> StreamExecutionEnvironment.getExecutionEnvironment();
>>>>>>>>>>>     env.setParallelism(1);
>>>>>>>>>>>
>>>>>>>>>>>     DataStream<String> stream = env.addSource(new
>>>>>>>>>>> TimerTicksSource());
>>>>>>>>>>>     stream.addSink(new SetHBaseRowSink());
>>>>>>>>>>>     env.execute("Long running Flink application");
>>>>>>>>>>> }
>>>>>>>>>>>
>>>>>>>>>>> When I run this
>>>>>>>>>>>      flink run -m yarn-cluster -yn 1 -yjm 1024 -ytm 4096
>>>>>>>>>>> ./kerberos-1.0-SNAPSHOT.jar
>>>>>>>>>>>
>>>>>>>>>>> I see after the startup messages:
>>>>>>>>>>>
>>>>>>>>>>> 17:13:24,466 INFO
>>>>>>>>>>> org.apache.hadoop.security.UserGroupInformation               - 
>>>>>>>>>>> Login
>>>>>>>>>>> successful for user nbas...@xxxxxx.net using keytab file
>>>>>>>>>>> /home/nbasjes/.krb/nbasjes.keytab
>>>>>>>>>>> 11/03/2015 17:13:25 Job execution switched to status RUNNING.
>>>>>>>>>>> 11/03/2015 17:13:25 Custom Source -> Stream Sink(1/1) switched to
>>>>>>>>>>> SCHEDULED
>>>>>>>>>>> 11/03/2015 17:13:25 Custom Source -> Stream Sink(1/1) switched to
>>>>>>>>>>> DEPLOYING
>>>>>>>>>>> 11/03/2015 17:13:25 Custom Source -> Stream Sink(1/1) switched to
>>>>>>>>>>> RUNNING
>>>>>>>>>>>
>>>>>>>>>>> Which looks good.
>>>>>>>>>>>
>>>>>>>>>>> However ... no data goes into HBase.
>>>>>>>>>>> After some digging I found this error in the task managers log:
>>>>>>>>>>>
>>>>>>>>>>> 17:13:42,677 WARN  org.apache.hadoop.hbase.ipc.RpcClient
>>>>>>>>>>> - Exception encountered while connecting to the server :
>>>>>>>>>>> javax.security.sasl.SaslException: GSS initiate failed [Caused by
>>>>>>>>>>> GSSException: No valid credentials provided (Mechanism level: 
>>>>>>>>>>> Failed to find
>>>>>>>>>>> any Kerberos tgt)]
>>>>>>>>>>> 17:13:42,677 FATAL org.apache.hadoop.hbase.ipc.RpcClient
>>>>>>>>>>> - SASL authentication failed. The most likely cause is missing or 
>>>>>>>>>>> invalid
>>>>>>>>>>> credentials. Consider 'kinit'.
>>>>>>>>>>> javax.security.sasl.SaslException: GSS initiate failed [Caused by
>>>>>>>>>>> GSSException: No valid credentials provided (Mechanism level: 
>>>>>>>>>>> Failed to find
>>>>>>>>>>> any Kerberos tgt)]
>>>>>>>>>>>     at
>>>>>>>>>>> com.sun.security.sasl.gsskerb.GssKrb5Client.evaluateChallenge(GssKrb5Client.java:212)
>>>>>>>>>>>     at
>>>>>>>>>>> org.apache.hadoop.hbase.security.HBaseSaslRpcClient.saslConnect(HBaseSaslRpcClient.java:177)
>>>>>>>>>>>     at
>>>>>>>>>>> org.apache.hadoop.hbase.ipc.RpcClient$Connection.setupSaslConnection(RpcClient.java:815)
>>>>>>>>>>>     at
>>>>>>>>>>> org.apache.hadoop.hbase.ipc.RpcClient$Connection.access$800(RpcClient.java:349)
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> First starting a yarn-session and then loading my job gives the
>>>>>>>>>>> same error.
>>>>>>>>>>>
>>>>>>>>>>> My best guess at this point is that Flink needs the same fix as
>>>>>>>>>>> described here:
>>>>>>>>>>>
>>>>>>>>>>> https://issues.apache.org/jira/browse/SPARK-6918   (
>>>>>>>>>>> https://github.com/apache/spark/pull/5586 )
>>>>>>>>>>>
>>>>>>>>>>> What do you guys think?
>>>>>>>>>>>
>>>>>>>>>>> Niels Basjes
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Tue, Oct 27, 2015 at 6:12 PM, Maximilian Michels
>>>>>>>>>>> <m...@apache.org> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>> Hi Niels,
>>>>>>>>>>>>
>>>>>>>>>>>> You're welcome. Some more information on how this would be
>>>>>>>>>>>> configured:
>>>>>>>>>>>>
>>>>>>>>>>>> In the kdc.conf, there are two variables:
>>>>>>>>>>>>
>>>>>>>>>>>>         max_life = 2h 0m 0s
>>>>>>>>>>>>         max_renewable_life = 7d 0h 0m 0s
>>>>>>>>>>>>
>>>>>>>>>>>> max_life is the maximum life of the current ticket. However, it
>>>>>>>>>>>> may be renewed up to a time span of max_renewable_life from the 
>>>>>>>>>>>> first ticket
>>>>>>>>>>>> issue on. This means that from the first ticket issue, new tickets 
>>>>>>>>>>>> may be
>>>>>>>>>>>> requested for one week. Each renewed ticket has a life time of 
>>>>>>>>>>>> max_life (2
>>>>>>>>>>>> hours in this case).
>>>>>>>>>>>>
>>>>>>>>>>>> Please let us know about any difficulties with long-running
>>>>>>>>>>>> streaming application and Kerberos.
>>>>>>>>>>>>
>>>>>>>>>>>> Best regards,
>>>>>>>>>>>> Max
>>>>>>>>>>>>
>>>>>>>>>>>> On Tue, Oct 27, 2015 at 2:46 PM, Niels Basjes <ni...@basjes.nl>
>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>
>>>>>>>>>>>>> Thanks for your feedback.
>>>>>>>>>>>>> So I guess I'll have to talk to the security guys about having
>>>>>>>>>>>>> special
>>>>>>>>>>>>> kerberos ticket expiry times for these types of jobs.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Niels Basjes
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Fri, Oct 23, 2015 at 11:45 AM, Maximilian Michels
>>>>>>>>>>>>> <m...@apache.org> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Hi Niels,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Thank you for your question. Flink relies entirely on the
>>>>>>>>>>>>>> Kerberos
>>>>>>>>>>>>>> support of Hadoop. So your question could also be rephrased to
>>>>>>>>>>>>>> "Does
>>>>>>>>>>>>>> Hadoop support long-term authentication using Kerberos?". And
>>>>>>>>>>>>>> the
>>>>>>>>>>>>>> answer is: Yes!
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> While Hadoop uses Kerberos tickets to authenticate users with
>>>>>>>>>>>>>> services
>>>>>>>>>>>>>> initially, the authentication process continues differently
>>>>>>>>>>>>>> afterwards. Instead of saving the ticket to authenticate on a
>>>>>>>>>>>>>> later
>>>>>>>>>>>>>> access, Hadoop creates its own security tockens
>>>>>>>>>>>>>> (DelegationToken) that
>>>>>>>>>>>>>> it passes around. These are authenticated to Kerberos
>>>>>>>>>>>>>> periodically. To
>>>>>>>>>>>>>> my knowledge, the tokens have a life span identical to the
>>>>>>>>>>>>>> Kerberos
>>>>>>>>>>>>>> ticket maximum life span. So be sure to set the maximum life
>>>>>>>>>>>>>> span very
>>>>>>>>>>>>>> high for long streaming jobs. The renewal time, on the other
>>>>>>>>>>>>>> hand, is
>>>>>>>>>>>>>> not important because Hadoop abstracts this away using its own
>>>>>>>>>>>>>> security tockens.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> I'm afraid there is not Kerberos how-to yet. If you are on
>>>>>>>>>>>>>> Yarn, then
>>>>>>>>>>>>>> it is sufficient to authenticate the client with Kerberos. On
>>>>>>>>>>>>>> a Flink
>>>>>>>>>>>>>> standalone cluster you need to ensure that, initially, all
>>>>>>>>>>>>>> nodes are
>>>>>>>>>>>>>> authenticated with Kerberos using the kinit tool.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Feel free to ask if you have more questions and let us know
>>>>>>>>>>>>>> about any
>>>>>>>>>>>>>> difficulties.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Best regards,
>>>>>>>>>>>>>> Max
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Thu, Oct 22, 2015 at 2:06 PM, Niels Basjes
>>>>>>>>>>>>>> <ni...@basjes.nl> wrote:
>>>>>>>>>>>>>> > Hi,
>>>>>>>>>>>>>> >
>>>>>>>>>>>>>> > I want to write a long running (i.e. never stop it)
>>>>>>>>>>>>>> > streaming flink
>>>>>>>>>>>>>> > application on a kerberos secured Hadoop/Yarn cluster. My
>>>>>>>>>>>>>> > application needs
>>>>>>>>>>>>>> > to do things with files on HDFS and HBase tables on that
>>>>>>>>>>>>>> > cluster so having
>>>>>>>>>>>>>> > the correct kerberos tickets is very important. The stream
>>>>>>>>>>>>>> > is to be ingested
>>>>>>>>>>>>>> > from Kafka.
>>>>>>>>>>>>>> >
>>>>>>>>>>>>>> > One of the things with Kerberos is that the tickets expire
>>>>>>>>>>>>>> > after a
>>>>>>>>>>>>>> > predetermined time. My knowledge about kerberos is very
>>>>>>>>>>>>>> > limited so I hope
>>>>>>>>>>>>>> > you guys can help me.
>>>>>>>>>>>>>> >
>>>>>>>>>>>>>> > My question is actually quite simple: Is there an howto
>>>>>>>>>>>>>> > somewhere on how to
>>>>>>>>>>>>>> > correctly run a long running flink application with kerberos
>>>>>>>>>>>>>> > that includes a
>>>>>>>>>>>>>> > solution for the kerberos ticket timeout  ?
>>>>>>>>>>>>>> >
>>>>>>>>>>>>>> > Thanks
>>>>>>>>>>>>>> >
>>>>>>>>>>>>>> > Niels Basjes
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> --
>>>>>>>>>>>>> Best regards / Met vriendelijke groeten,
>>>>>>>>>>>>>
>>>>>>>>>>>>> Niels Basjes
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> Best regards / Met vriendelijke groeten,
>>>>>>>>>>>
>>>>>>>>>>> Niels Basjes
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Best regards / Met vriendelijke groeten,
>>>>>>>>>
>>>>>>>>> Niels Basjes
>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Best regards / Met vriendelijke groeten,
>>>>>
>>>>> Niels Basjes
>>>>
>>>>
>>>
>>
>>
>>
>> --
>> Best regards / Met vriendelijke groeten,
>>
>> Niels Basjes
>
>

Reply via email to