如何编译hadoop中的libhdfs

如题所述

在不使用eclipse情况使java程序在hadoop 2.2中运行的完整过程。整个过程中其实分为java程序的编译,生成jar包,运行测试。
这三个步骤运用的命令都比较简单,主要的还是如何找到hadoop 2.2提供给java程序用来编译的jar包。具体可以查看:
HADOOP_HOME/share/hadoop/httpfs/tomcat/webapps/webhdfs/WEB-INF/lib目录
下面会通过一个在hadoop中创建一个目录的JAVA例子来进行演示
具体代码如下:

package com.wan.demo;

import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

public class HADemo {

public static void main(String[] args) {
// TODO Auto-generated method stub
mkdir(args[0]);
}

public static void mkdir(String dir){
Configuration configuration=new Configuration();
FileSystem fs;
try {
fs = FileSystem.get(configuration);
fs.mkdirs(new Path(dir));
fs.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

把HADemo.java文件拷贝到linux环境中
配置HADOOP_HOME/bin到环境中,启动集群,进入HADemo.java文件目录中
注:下面的lib目录里面的文件由HADOOP_HOME/share/hadoop/httpfs/tomcat/webapps/ webhdfs/WEB-INF/lib目录中获取,下面做的目的是为了缩减命令长度
1.编译java
# mkdir class
#Javac -classpath .:lib/hadoop-common-2.2.0.jar:lib/hadoop-annotations-2.2.0.jar -d class HADemo.java
2.生成jar包
#jar -cvf hademo.jar -C class/ .
added manifest
adding: com/(in = 0) (out= 0)(stored 0%)
adding: com/wan/(in = 0) (out= 0)(stored 0%)
adding: com/wan/demo/(in = 0) (out= 0)(stored 0%)
adding: com/wan/demo/HADemo.class(in = 844) (out= 520)(deflated 38%)
3.测试运行
#hadoop jar hademo.jar com.wan.demo.HADemo /test
检测:
#hadoop fs -ls /
温馨提示:内容为网友见解,仅供参考
无其他回答

如何快速地编写和运行一个属于自己的MapReduce例子程序
2. 拿到hadoop 运行的class path, 主要为编译所用 运行命令 hadoop classpath 保存打出的结果,本文用的hadoop 版本是Pivotal 公司的Pivotal hadoop, 例子:\/etc\/gphd\/hadoop\/conf:\/usr\/lib\/gphd\/hadoop\/lib\/*:\/usr\/lib\/gphd\/hadoop\/.\/\/*:\/usr\/lib\/gphd\/hadoop-hdfs\/.\/:\/usr\/lib\/gphd\/h...

scribe安装与使用
如果Hadoop自带的libhdfs不可用,可以按照以下步骤编译:在Hadoop根目录下输入`ant compile-c++-libhdfs -Dislibhdfs=true`,并配置HADOOP_HOME的CLASSPATH。安装Scribe的步骤包括运行bootstrap脚本(参见扩展阅读17)。可能遇到的错误及解决方法如下:当Boost不在默认目录时,配置命令如下:`.\/configure –wit...

如何在hadoop-2.6.0上编译运行自己编写的java代码
配置HADOOP_HOME\/bin到环境中,启动集群,进入HADemo.java文件目录中 注:下面的lib目录里面的文件由HADOOP_HOME\/share\/hadoop\/httpfs\/tomcat\/webapps\/ webhdfs\/WEB-INF\/lib目录中获取,下面做的目的是为了缩减命令长度 1.编译java mkdir class Javac -classpath .:lib\/hadoop-common-2.2.0.jar:lib\/...

关于HBase启动问题,出现了错误,貌似是hadoop下的lib和hbase不一致...
你可以用你运行的分布式Hadoop版本jar文件替换HBase lib目录下的Hadoop jar文件,以避免版本不匹配问题。确认替换了集群中所有HBase下的jar文件。Hadoop版本不匹配问题有不同表现,但看起来都像挂掉了。

体系里表明与远程支持场所关系和接口的文件有哪些
hadoop提供了映射java文件系统接口的c语言库---libhdfs。libhdfs可以编写为一个访问HDFS的C语言库,实际上,它可以访问任意的Hadoop文件系统,也可以使用JNI(Java Native Interface)来调用java文件系统的客户端。(4)FUSE FUSE允许文件系统整合为一个Unix文件系统并在用户空间中执行。通过使用Hadoop Fuse-DF...

如何查看Hadoop运行过程中产生日志
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;import org.apache.log4j.pattern.LogEvent;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import com.qin.operadb.WriteMapDB;\/ 测试hadoop的全局共享文件 使用DistributedCached 大数据技术交流群: 37693216 author qindongliang \/...

如何部署hadoop分布式文件系统
1、修改vi \/data\/hadoop\/etc\/hadoop\/core-site.xml 内容为如下:<?xml version="1.0"?> <?xml-stylesheet type="text\/xsl"href=\\'#\\'" Put site-specific property overrides inthisfile. --> <configuration> <property> <name>fs.default.name<\/name> <value>hdfs:\/\/192.168.149.128...

如何在Hadoop上编写MapReduce程序
2. Hadoop 作业构成 2.1 Hadoop作业执行流程 用户配置并将一个Hadoop作业提到Hadoop框架中,Hadoop框架会把这个作业分解成一系列map tasks 和reduce tasks。Hadoop框架负责task分发和执行,结果收集和作业进度监控。下图给出了一个作业从开始执行到结束所经历的阶段和每个阶段被谁控制(用户 or Hadoop框架)...

apache atlas独立部署(hadoop、hive、kafka、hbase、solr、zookeeper...
一、Hadoop 安装设置主机名为 master关闭防火墙设置免密码登录解压Hadoop-2.7.4安装JDK查看Hadoop版本配置Hadoop环境格式化HDFS(确保路径存在)设置环境变量生成SSH密钥并配置免密码登录启动Hadoop服务访问Hadoop集群二、Hive 安装解压Hive配置环境变量验证Hive版本复制MySQL驱动至hive\/lib创建MySQL数据库并执行命令...

MooseFS和Hadoop两个分布式文件系统各有什么优缺点
但是MooseFS也付出了相应地开销:使用HDFS编写程序时直接使用库(如libhdfs)就可以跟Master或者ChunkServer通信,请求传输更为高效,而MooseFS需要通过标准posix接口将请求发送到内核,再通过Fuse将请求截获发送到用户态,然后才能和Master或者ChunkServer通信;3.MooseFS提供了快照功能,HDFS目前还没有看到这个...

相似回答