Hi Andreina,

I used you java code and ran it using java command. On console I can see
message as Login Successful but while accessing HDFS I am getting below
error message:

"Failed to specify server's kerberos principal name"

Any suggestion for this?

Thanks and Regards,
Shashi

On Mon, Nov 2, 2015 at 4:36 PM, andreina j <andrein...@huawei.com> wrote:

>
>
> Hi Shashi Vishwakarma ,
>
>
>
> You can follow below steps to perform HDFS operation using java code on a
> secure cluster
>
>
>
> 1.      Copy krb5.conf, hdfs.keytab and conf directory from installed
> cluster
>
> 2.       Create a maven project with dependeny hadoop-client
>
>     <dependency>
>
>     <groupId>org.apache.hadoop</groupId>
>
>    <artifactId>hadoop-client</artifactId>
>
>    <version><version>-SNAPSHOT</version>
>
>    </dependency>
>
>
>
> 3.      Build the maven project, to resolve all the dependencies
>
> 4.      Add conf directory to classpath.
>
> 5.      Use below sample code to perform HDFS operation.
>
>
>
>             public class KerberosTest {
>
>
>
>                public static void main(String[] args) throws IOException {
>
>                  // This should be ideally default. now just for this
> purpose overriding
>
>                  System.setProperty("java.security.krb5.conf",
> "D:\\data\\Desktop\\cluster-test\\krb5.conf");
>
>
>
>                  // Login using keytab if have access to keytab. else
>
>                  UserGroupInformation.loginUserFromKeytab("hdfs @
> HADOOP.COM",
>
>                      "D:\\data\\Desktop\\cluster-test\\conf\\hdfs.keytab");
>
>
>
>                  String dest = "/test/userupload/file";
>
>                  String localFile = "pom.xml";
>
>
>
>                  Configuration conf = new HdfsConfiguration();
>
>                  FileSystem fs = FileSystem.get(conf);
>
>                  FSDataOutputStream out = fs.create(new Path(dest));
>
>                  FileInputStream fIn = new FileInputStream(localFile);
>
>                  IOUtils.copyBytes(fIn, out, 1024);
>
>               }
>
>
>
>             }
>
>          Note: Change the paths mentioned above accordingly
>
>
>
> Regards,
>
> Andreina J.
>
>
>
> *From:* Shashi Vishwakarma [mailto:shashi.vish...@gmail.com]
> *Sent:* 02 November 2015 PM 01:18
>
> *To:* user@hadoop.apache.org
> *Subject:* Re: Utility to push data into HDFS
>
>
>
> Hi Naga and Chris,
>
>
>
> Yes you are right. I don't have hadoop installed on my windows machine and
> i wish to move my files from windows to remote hadoop cluster (on linux
> server).
>
>
>
> And also my cluster is Kerberos enabled. Can you please help here? Let me
> know the steps that should I follow to implement it?
>
>
>
> Thanks and Regards
>
> Shashi
>
>
>
>
>
>
>
> On Mon, Nov 2, 2015 at 7:33 AM, Naganarasimha G R (Naga) <
> garlanaganarasi...@huawei.com> wrote:
>
> Hi Shashi,
>
>
>
> Not sure i got your question right, but if its related to building of
> Hadoop on windows then i think what ever steps mentioned by James and Chris
> would be definitely help.
>
> But is your scenario to remotely(not on one of the nodes of cluster)
> access HDFS through java from either windows or linux machines ?
>
> In that case certain set of jars needs to be in client machine(refer
> hadoop-client/pom.xml) and subset of the server configurations (even if
> full not a problem) is required to access the HDFS and YARN
>
>
>
> @Chris Nauroth,  Are native components (winutils.exe and hadoop.dll),
> required in the remote machine ? AFAIK its not required, correct me if i am
> wrong !
>
>
>
> + Naga
>
>
>
>
> ------------------------------
>
>
>
> *From:* Chris Nauroth [cnaur...@hortonworks.com]
> *Sent:* Monday, November 02, 2015 02:10
> *To:* user@hadoop.apache.org
>
>
> *Subject:* Re: Utility to push data into HDFS
>
>
>
> In addition to the standard Hadoop jars available in an Apache Hadoop
> distro, Windows also requires the native components for Windows:
> winutils.exe and hadoop.dll.  This wiki page has more details on how that
> works:
>
>
>
> https://wiki.apache.org/hadoop/WindowsProblems
>
>
>
> --Chris Nauroth
>
>
>
> *From: *James Bond <bond.b...@gmail.com>
> *Reply-To: *"user@hadoop.apache.org" <user@hadoop.apache.org>
> *Date: *Sunday, November 1, 2015 at 9:35 AM
> *To: *"user@hadoop.apache.org" <user@hadoop.apache.org>
> *Subject: *Re: Utility to push data into HDFS
>
>
>
> I am guessing this should work -
>
>
>
>
> https://stackoverflow.com/questions/9722257/building-jar-that-includes-all-its-dependencies
>
>
>
> On Sun, Nov 1, 2015 at 8:15 PM, Shashi Vishwakarma <
> shashi.vish...@gmail.com> wrote:
>
> Hi Chris,
>
>
>
> Thanks for your reply. I agree WebHDFS is one of the option to access
> hadoop from windows or *nix. I wanted to know if I can write a java code
> will can be executed from windows?
>
>
>
> Ex:  java HDFSPut.java  <<- this java code should have FSShell cammand
> (hadoop fs -ls) written in java.
>
>
>
> In order to execute this , what are list items I should have on windows?
>
> For example hadoop jars etc.
>
>
>
> If you can throw some light on this then it would be great help.
>
>
>
> Thanks
>
> Shashi
>
>
>
>
>
>
>
>
>
>
>
> On Sun, Nov 1, 2015 at 1:39 AM, Chris Nauroth <cnaur...@hortonworks.com>
> wrote:
>
> Hello Shashi,
>
>
>
> Maybe I'm missing some context, but are the Hadoop FsShell commands
> sufficient?
>
>
>
>
> http://hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-common/FileSystemShell.html
>
>
>
> These commands work on both *nix and Windows.
>
>
>
> Another option would be WebHDFS, which just requires an HTTP client on
> your platform of choice.
>
>
>
>
> http://hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-hdfs/WebHDFS.html
>
>
>
> --Chris Nauroth
>
>
>
> *From: *Shashi Vishwakarma <shashi.vish...@gmail.com>
> *Reply-To: *"user@hadoop.apache.org" <user@hadoop.apache.org>
> *Date: *Saturday, October 31, 2015 at 5:46 AM
> *To: *"user@hadoop.apache.org" <user@hadoop.apache.org>
> *Subject: *Utility to push data into HDFS
>
>
>
> Hi
>
> I need build a common utility for unix/windows based system to push data
> into hadoop system. User can run that utility from any platform and should
> be able to push data into HDFS.
>
> Any suggestions ?
>
> Thanks
>
> Shashi
>
>
>
>
>
>
>

Reply via email to