导航:首页 > 程序命令 > 运行hadoopjar命令

运行hadoopjar命令

发布时间:2022-06-15 12:58:35

java调用Hadoop的jar

你把脚本换成其他可以直观查看运行结果的脚本,看看能不能运行;同时不在hadoop/bin目录下执行hadoop jar /usr/local/hadoop-1.2.1/hadoop-examples-1.2.1.jar wordcount input output看看能不能执行

⑵ hadoop如何分发本地的jar文件

一般情况下,我们会使用下面的命令来运行一个hadoop任务:
这个命令实际上是转化成下面的命令来运行的
在RunJar中,会读取abc.jar文件,然后尝试从manifest中提取Main-Class作为mainClass,如果manifest中没有指定,则把abc.jar之后的下一个参数当成mainClass。
接下来,RunJar会在本地创建一个临时目录(下面称为workDir,类似/tmp/hadoop-unjar...),然后把abc.jar解压到这个目录中。然后,把wrokDir、workDir/classes和workDir/lib下的所有文件路径
添加到一个变量中,然后使用URLClassLoader将这个变量指定的所有路径加载到当前线程。
最后,使用反射调用mainClass的main函数,进入用户自己的代码。
当我们的代码调用job.waitForCompletion时,会调用JobClient.AndConfigureFiles,把本地的jar文件拷贝到HDFS上面/tmp/hadoop/mapred/staging/<jobid/job.jar/的目录下。
TaskTracker获取到一个Task之后,会启动一个线程TaskLauncher来处理这个Task。在启动这个Task之前,会调用taskController.initializeJob来初始化Job,把Job相关的内容从HDFS上拷贝到本地(JobLocalizer.localizeJobJarFile负责拷贝jar并解压到本地workDir中)。
后面TaskRunner.getClassPaths把
wrokDir、workDir/classes和workDir/lib下的所有文件路径
添加到一个变量中,然后使用这个变量构造启动JVM的参数,最后启动一个新的JVM来运行Job。
从这个流程可以看出,我们jar中的
根目录,classes目录,和lib下的所有文件
都被添加到了执行环境(另外还有系统自身的环境变量CLASSPATH和Hadoop自身依赖的库)中。
因此,如果我们想要在我们的hadoop中添加一个外部的库,可以有两种方法:
1.把外部的jar解压了,然后将所有的.class与我们自己的代码打包在一起(maven-shade-plugin可以很轻松地帮我们做这件事);
2.创建一个lib目录,把依赖的jar文件放在里面,然后把lib目录和我们的代码打包在一起。
最后,提一下-libjars参数。如果我们使用ToolRunner.run来启动我们的Job,那么可以使用-libjars来指定依赖的外部jar。
不过-libjars有一定的局限性,由于-libjars来指定依赖的外部jar是在ToolRunner.run中使用GenericOptionsParser来加载的,因此在调用ToolRunner.run之前,外部jar还没有加载,不能使用这些类,甚至import(直接或间接)也不行(JVM加载一个类时会先检查这个类所引用的其他类型是否都可以找得到)。如果搞不清楚外部jar在何时可以用,不建议使用-libjars。
当然在Map和Rece阶段时,-libjars来指定依赖的外部jar就完全可以无限制地使用了。Hadoop会自动把-libjars来指定依赖的外部jar上传到HDFS上,每个Job在执行之前,这些jar会自动被拷贝到本地,并设置到classpath中。

⑶ Hadoop集群运行JNI程序

要在Hadoop集群运行上运行JNI程序,首先要在单机上调试程序直到可以正确运行JNI程序,之后移植到Hadoop集群就是水到渠成的事情。
Hadoop运行程序的方式是通过jar包,所以我们需要将所有的class文件打包成jar包。在打包的过程中,无需将动态链接库包含进去。
在集群中运行程序之前,Hadoop会首先将jar包传递到所有的节点,然后启动运行。我们可以在这个阶段将动态链接库作为附件和jar包同时传递到所有的节点。方法就是给jar命令指定-files参数。命令如下:
hadoop
jarSegment.jar
Segment
-files
./bin/lib***.so
input
output
通过该命令,jar包和动态链接库都会传递到所有节点,然后启动maprece任务。

⑷ eclipse下怎么打包java代码成jar到hadoop下运行

(1)首先将好的Hadoop源码解压,将解压后顶级目录和lib中的压缩文件加载到你的工程中(他们包括了hadoop源码和一些需要的第三方源码),然后就可以编写hadoop程序了。
(2)编写好hadoop程序,调试没有错误后,就可以通过(jar -cvf yourname.jar -C bin/ .),将工程中bin目录下编译好的.class文件打包成你想要的.jar压缩文件包。
(3)将yourname.jar压缩包复制到你的hadoop目录下,通过命令hadoop jar yourname.jar yourMainClass /data/inputfile /data/outputfile。如果是在完全分布式的hadoop配置环境下,需要通过hadoop命令在hadoop的hdfs系统中创建文件目录然后将本地的输入数据复制到hdfs系统中,命令有:
hadoop fs -mkdir data:创建一个名问data的文件夹
hadoop fs -ls :查看hdfs文件系统中的文件目录
hadoop fs -FromLocal /data/input /user/data :将本地文件input复制到hdfs系统的/user/data目录下
hadoop fs -ToLocal /user/data/output/ /data/ :将hdfs系统中的output文件夹复制到本地系统中。

⑸ 如何在百度云平台上执行Hadoop MapRece程序

发现网络云平台,可以在线执行hadoop MapRece程序,很欣喜,摸索了一下,可以使用。大概想这才叫做云计算啊,我把计算任务给你,你把计算结果还给我。
首先要有网络账号。
从平台入口进入:。




不仅如此,还可以绑定网盘,从网盘直接复制文件过来。这一切都是免费的!

⑹ hadoop/hama中的jar包调用命令的正确格式是什么样的

#bin/hadoop jar xxx.jar main函数所在的class -参数

⑺ 执行hadoop jar 命令后没反应了,有人帮看看么

hadoop 中运行jar文件,可执行map/rece 效果,你的jar文件确保已经拷贝到hadoop中,

由hadoop能够进行访问?
/home/tina/TestHadoop.jar 这样的目录结构感觉你没有拷贝进hadoop

如果我的回答没帮助到您,请继续追问。
​希望以上信息可以帮到您!

⑻ 如何运行jar包中的hadoop程序

首先我们要打包程序,,打包完毕,我们该如何运行
首先显示一个比较简单的:

上面命令:hadoop jar x.jar 是运行包的一种方式,完成的方式为
hadoop jar x.jar ×××.MainClassName inputPath outputPath
同时解释一下:
x.jar为包的名称,包括路径,直接写包名称,则为默认路径
×××.MainClassName为运行的类名称
inputPath为输入路径
outputPath为输出路径。

⑼ hadoop 怎么分布式运行jar

Hadoop完全分布式配置
环境:CentOs5、hadoop0.20.203、jdk1.6.0_29
namenode:centos1(ip:192.168.1.101)
datanode:centos2(ip:192.168.1.103)、centos3(ip:192.168.1.104)
配置步骤:
(1)配置NameNode和DataNode
修改每台机器的/etc/hosts(包括namenode和datanode)
127.0.0.1 localhost.localdomain localhost
192.168.1.101 centos1
192.168.1.103 centos2
192.168.1.104 centos3
::1 localhost6.localdomain6 localhost6

(2)在所有的机器上建立相同的用户
useradd grid
passwd grid
成功建立grid用户后,输入用户密码就是该用户密码

(3)SSH设置
使用grid用户登录
在所有机器/home/grid下

mkdir .ssh
在namenode上生成密钥对

$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
注意点:
不进行以下步骤SSH免密码登录设置会不成功

.ssh目录要设成700 有执行权限
authorized_keys要设成600 否则会出错
还有ssh 登陆要加入用户名的 比如
ssh root@localhost
这时从centos1向其他机器发起SSH连接,只有第一次登录时需要输入密码,以后则不需要

(4)在所有机器上安装JDK
下载jdk-6u29-linux-i586.bin,安装到/usr/java下,cd到usr/java下
chmod u+x jdk-6u29-linux-i586.bin
./jdk-6u29-linux-i586.bin
接下来要设置java的环境变量输入命令:

gedit /etc/profile

在文件的最后添加以下语句:

JAVA_HOME=/usr/java/jdk1.6.0_29

export JRE_HOME=/usr/java/jdk1.6.0_29/jre

export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

保存退出,然后执行source /etc/profile即可。
输入java -version 命令,出现如下信息就表示配置成功

java version "1.6.0_29"
Java(TM) SE Runtime Environment (build 1.6.0_29-b11)
Java HotSpot(TM) Server VM (build 20.4-b02, mixed mode)
(5)在所有机器上安装配置Hadoop
首先在namenode上配置,配置后在分发到datanode上
在这里,下载hadoop-0.20.203.tar.gz,然后解压到/home/grid/下即可

tar -zxvf hadoop-0.20.203.tar.gz
接下来需要修改hadoop的conf文件夹下的配置信息:
修改hadoop-env.sh,加入如下语句,使得hadoop能够找到java的路径。:
export JAVA_HOME=/usr/java/jdk1.6.0_29
修改core-site.xml,如下:

<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://centos1:9000</value>
</property><property>
<name>hadoop.tmp.dir</name>
<value>/home/grid/tmp</value>
</property>
</configuration>

注意:hadoop.tmp.dir是hadoop文件系统依赖的基础配置,很多路径都依赖它。它默认的位置是在/tmp/{$user}下面,在local和hdfs都会建有相同的目录,但是在/tmp路径下的存储是不安全的,因为linux一次重启,文件就可能被删除。导致namenode启动不起来。

修改hdfs-site.xml,如下
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
修改mapred-site.xml,如下:
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>192.168.1.101:9001</value>
</property>
</configuration>
保险起见这里写centos1对应的IP地址
masters里写入作为namenode节点机器的IP
192.168.1.101
slaves里写入作为datanode节点的机器的IP
192.168.1.103
192.168.1.104
注意点:
修改hadoop-0.20.203.0/bin下的hadoop.
vi hadoop
查找 –jvm . vi 下的命令模式: :/-jvm
将-jvm server改成 –server .
因为JDK1.6已经废除了一个参数-jvm,如果不修改的话,无法启动数据节点。

到此,hadoop的有关配置已经完成,namenode端通过如下命令把配置好的hadoop发送到各个datanode处:
scp -r hadoop-0.20.2 centos2:/home/grid
scp -r hadoop-0.20.2 centos3:/home/grid

阅读全文

与运行hadoopjar命令相关的资料

热点内容
登陆qq服务器地址 浏览:253
声音解压视频教学 浏览:176
androidlistview高亮显示 浏览:575
阿里云服务器电脑界面 浏览:819
单片机goto语句 浏览:357
怎么把文档一并转到qq群文件夹 浏览:326
水经注pdf 浏览:551
android多线程编程实例 浏览:534
苹果和安卓用什么软件可以传软件 浏览:883
服务器上如何设置ip权限 浏览:445
linux好玩游戏 浏览:7
我的世界三种命令方块有什么不同 浏览:905
单片机spi例程 浏览:508
安卓拨号器怎么使用 浏览:609
uc书城是什么app 浏览:935
安卓手机如何打开bin文件cad看图c 浏览:732
单片机ram数据 浏览:598
螺杆制冷压缩机原理 浏览:991
ug加工命令的说明大全 浏览:788
程序员icu吐槽 浏览:259