/ / Nedá sa spustiť prasa jar pomocou príkazu java - java, linux, hadoop, apache-pig

Nepodarilo sa spustiť Pig jar pomocou java príkazu - java, linux, hadoop, apache-pig

Snažím sa zjednodušiť kód ošípaných, ale dáva mi to určité povolenie. Tu je môj ukážkový kód ošípaných

import java.io.IOException;
import org.apache.pig.PigServer;
import org.apache.pig.ExecType;
import org.apache.hadoop.conf.Configuration;
public class PigTest{
public static void main(String[] args) {
try {
Configuration conf = new Configuration();
conf.set("hdp.version","2.3.0.0-2557");
//PigServer pigServer = new PigServer("mapreduce",conf);
PigServer pigServer = new PigServer(ExecType.MAPREDUCE, conf);
runIdQuery(pigServer, "myfile.txt");
}
catch(Exception e) {
}
}
public static void runIdQuery(PigServer pigServer, String inputFile) throws IOException {
pigServer.registerQuery("A = load "" + inputFile + "" using PigStorage(":");");
pigServer.registerQuery("B = foreach A generate $0 as id;");
pigServer.store("B", "idout");
}
}

Svoju triednu cestu som nastavil nižšie

echo $CLASSPATH
.:/usr/hdp/2.3.0.0-2557/hadoop/client/*:/usr/hdp/2.3.0.0-2557/hadoop-hdfs/lib/*:/usr/hdp/2.3.0.0-2557/hadoop-mapreduce/lib/*:/usr/hdp/2.3.0.0-2557/hadoop-yarn/lib/*:/usr/hdp/2.3.0.0-2557/pig/lib/*:/usr/hdp/2.3.0.0-2557/hadoop/conf:/usr/hdp/2.3.0.0-2557/pig/pig-0.15.0.2.3.0.0-2557-core-h2.jar

Keď spustím svoj kód pomocou príkazu java, funguje to dokonale, ale keď som vytvoril jar svojho kódu a pokúšam sa spustiť, dáva mi to chybu pod oprávnením.

 ****java -cp /usr/hdp/2.3.0.0-2557/hadoop/client/*;/usr/hdp/2.3.0.0-2557/hadoop-hdfs/lib/*;/usr/hdp/2.3.0.0-2557/hadoop-mapreduce/lib/*;/usr/hdp/2.3.0.0-2557/hadoop-yarn/lib/*;/usr/hdp/2.3.0.0-2557/pig/lib/*;/usr/hdp/2.3.0.0-2557/hadoop/conf;/usr/hdp/2.3.0.0-2557/pig/pig-0.15.0.2.3.0.0-2557-core-h2.jar -jar PigTest.jar****


Error: Could not find or load main class .usr.hdp.2.3.0.0-2557.hadoop.client.activation.jar
-bash: /usr/hdp/2.3.0.0-2557/hadoop-hdfs/lib/asm-3.2.jar: Permission denied
-bash: /usr/hdp/2.3.0.0-2557/hadoop-mapreduce/lib/aopalliance-1.0.jar: Permission denied
-bash: /usr/hdp/2.3.0.0-2557/hadoop-yarn/lib/activation-1.1.jar: Permission denied
-bash: /usr/hdp/2.3.0.0-2557/pig/lib/accumulo-core-1.5.0.jar: Permission denied
-bash: /usr/hdp/2.3.0.0-2557/hadoop/conf: is a directory
-bash: /usr/hdp/2.3.0.0-2557/pig/pig-0.15.0.2.3.0.0-2557-core-h2.jar: Permission denied

Ako to napravím?

odpovede:

0 pre odpoveď č. 1

Vyskúšajte nasledujúce

  1. Namiesto /usr/hdp/2.3.0.0-2557/hadoop/client/* použitie /usr/hdp/2.3.0.0-2557/hadoop/client/*.jar (Pozri .jar na konci. Nahraďte všetky * za * .jar)
  2. Namiesto stredníka (;) skúste použiť dvojbodku (:). Colon sa používa na oddelenie cesty v systéme Linux
  3. ak krok 1 vyššie nefunguje, potom skúste umiestniť jednotlivé JAR do cesty namiesto * .jar