当前位置:首页 » 编程软件 » hadoop64编译

hadoop64编译

发布时间: 2022-07-13 20:20:24

1. hadoop 64位安装版

http://download.csdn.net/detail/q79969786/6985173

2. 怎么编译将32位hadoop为64位

一般是32转64,你要反过来应该也能编译。我有个32转64的,你看看,改改过程。网址:

3. 如何在CentOS6.5下编译64位的Hadoop2.x

hadoop2.x在apache官网直接下载的并没有64位直接能用的版本,如果我们想在64位系统使用,那么就需要重新编译hadoop,否则直接使用32位的hadoop运行在64位的系统上,将会出现一些库不兼容的异常。如下图所示,最直接的一个异常:在这之前,先用一个表格来描述下散仙的编译的环境的状况:

序号 描述 备注

1 centos6.5系统64位 linux环境

2 Apache Ant1.9 ant编译

3 Apache Maven3.2.1 maven打包部署

4 gcc,gcc-c++,make 依赖库

5 protobuf-2.5.0 序列化库

6 JDK1.7 java 环境

7 Hadoop2.2.0源码包 官网下载

8 屌丝工程师一名 主角

9 hadoop交流群376932160 技术交流


下面进入正题,散仙的环境是在centos下,所以大部分安装编译依赖库,都可以很方便的使用yum命令来完成。

1,安装gcc,执行如下的几个yum命令即可

Java代码

  • ./configure

  • make

  • makecheck

  • makeinstall

  • [java]view plain

  • <spanstyle="font-family:Arial;font-size:12px;">./configure

  • make

  • makecheck

  • makeinstall</span>


  • 然后,执行如下命令,进行测试安装成功与否

  • [[email protected]]#protoc

  • Missinginputfile.

  • [[email protected]]#

  • [java]view plain

  • <spanstyle="font-family:Arial;font-size:12px;">[[email protected]]#protoc

  • Missinginputfile.

  • [[email protected]]#</span>



  • 6,从hadoop官网下载hadoop2.2.0的版本的源码的src的包,并查看目录

  • [root@ganglia~]#cdhadoop-2.2.0-src

  • [[email protected]]#ll

  • 总用量108

  • -rw-r--r--.167974users996810月72013BUILDING.txt

  • drwxr-xr-x.267974users409610月72013dev-support

  • drwxr-xr-x.467974users40966月917:05hadoop-assemblies

  • drwxr-xr-x.367974users40966月917:27hadoop-client

  • drwxr-xr-x.967974users40966月917:14hadoop-common-project

  • drwxr-xr-x.367974users40966月917:26hadoop-dist

  • drwxr-xr-x.767974users40966月917:20hadoop-hdfs-project

  • drwxr-xr-x.1167974users40966月917:25hadoop-maprece-project

  • drwxr-xr-x.467974users40966月917:06hadoop-maven-plugins

  • drwxr-xr-x.367974users40966月917:27hadoop-minicluster

  • drwxr-xr-x.467974users40966月917:03hadoop-project

  • drwxr-xr-x.367974users40966月917:05hadoop-project-dist

  • drwxr-xr-x.1267974users40966月917:26hadoop-tools

  • drwxr-xr-x.467974users40966月917:24hadoop-yarn-project

  • -rw-r--r--.167974users1516410月72013LICENSE.txt

  • -rw-r--r--.167974users10110月72013NOTICE.txt

  • -rw-r--r--.167974users1656910月72013pom.xml

  • -rw-r--r--.167974users136610月72013README.txt

  • [[email protected]]#

  • [java]view plain

  • <spanstyle="font-family:Arial;font-size:12px;">[root@ganglia~]#cdhadoop-2.2.0-src

  • [[email protected]]#ll

  • 总用量108

  • -rw-r--r--.167974users996810月72013BUILDING.txt

  • drwxr-xr-x.267974users409610月72013dev-support

  • drwxr-xr-x.467974users40966月917:05hadoop-assemblies

  • drwxr-xr-x.367974users40966月917:27hadoop-client

  • drwxr-xr-x.967974users40966月917:14hadoop-common-project

  • drwxr-xr-x.367974users40966月917:26hadoop-dist

  • drwxr-xr-x.767974users40966月917:20hadoop-hdfs-project

  • drwxr-xr-x.1167974users40966月917:25hadoop-maprece-project

  • drwxr-xr-x.467974users40966月917:06hadoop-maven-plugins

  • drwxr-xr-x.367974users40966月917:27hadoop-minicluster

  • drwxr-xr-x.467974users40966月917:03hadoop-project

  • drwxr-xr-x.367974users40966月917:05hadoop-project-dist

  • drwxr-xr-x.1267974users40966月917:26hadoop-tools

  • drwxr-xr-x.467974users40966月917:24hadoop-yarn-project

  • -rw-r--r--.167974users1516410月72013LICENSE.txt

  • -rw-r--r--.167974users10110月72013NOTICE.txt

  • -rw-r--r--.167974users1656910月72013pom.xml

  • -rw-r--r--.167974users136610月72013README.txt

  • [[email protected]]#</span>



  • 7,修改/root/hadoop-2.2.0-src/hadoop-common-project/hadoop-auth/pom.xml文件,增加,补丁内容,这部分是hadoop2.2.0的bug,如果是其他的2.x的版本,可以视情况而定,内容如下:

  • <dependency>

  • <groupId>org.mockito</groupId>

  • <artifactId>mockito-all</artifactId>

  • <scope>test</scope>

  • </dependency>

  • <!--新增的内容开始-->

  • <dependency>

  • <groupId>org.mortbay.jetty</groupId>

  • <artifactId>jetty-util</artifactId>

  • <scope>test</scope>

  • </dependency>

  • <!--新增的内容结束-->

  • <dependency>

  • <groupId>org.mortbay.jetty</groupId>

  • <artifactId>jetty</artifactId>

  • <scope>test</scope>

  • </dependency>

  • [xml]view plain

  • <spanstyle="font-family:Arial;font-size:12px;"><dependency>

  • <groupId>org.mockito</groupId>

  • <artifactId>mockito-all</artifactId>

  • <scope>test</scope>

  • </dependency>

  • <!--新增的内容开始-->

  • <dependency>

  • <groupId>org.mortbay.jetty</groupId>

  • <artifactId>jetty-util</artifactId>

  • <scope>test</scope>

  • </dependency>

  • <!--新增的内容结束-->

  • <dependency>

  • <groupId>org.mortbay.jetty</groupId>

  • <artifactId>jetty</artifactId>

  • <scope>test</scope>

  • </dependency></span>



  • 8,修改完毕后,回到hadoop-2.2.0-src的跟目录下执行编译打包命令:

  • mvnclean

  • mvnpackage-Pdist,native-DskipTests-Dtar

  • [java]view plain

  • <spanstyle="font-family:Arial;font-size:12px;">mvnclean

  • mvnpackage-Pdist,native-DskipTests-Dtar

  • </span>


  • 然后等待半个小时左右的编译时间,网速快的话,时间可能会更短,编译完成后,输出的打包信息如下:

  • [INFO]

  • [INFO]---maven-resources-plugin:2.2:resources(default-resources)@hadoop-minicluster---

  • [INFO].

  • [INFO]

  • [INFO]---maven-compiler-plugin:2.5.1:compile(default-compile)@hadoop-minicluster---

  • [INFO]Nosourcestocompile

  • [INFO]

  • [INFO]---maven-resources-plugin:2.2:testResources(default-testResources)@hadoop-minicluster---

  • [INFO].

  • [INFO]

  • [INFO]---maven-compiler-plugin:2.5.1:testCompile(default-

  • 4. 如何在CentOS6.5下编译64位的Hadoop2.x

    一、预先安装必要软件

    1、需要的软件:java, svn, autoconf, automake, libtool, ncurses-devel, openssl-devel, gcc, lzo-devel, zlib-devel, znt, maven, protobuf, cmake
    检测系统中是否已安装了某一软件命令:rpm -qa|grep 软件名,如检测系统中是否安装了svn:

    $ rpm -qa|grep svn
    2、如果已安装,则跳过,如果没有安装,用命令:yum install svn进行安装,如:

    $ yum install svn
    如果yum命令安装失败(找不到相应的包),则需手动下载相应的软件包进行安装,比如maven, protobuf这两个个软件;

    二、安装maven

    1、软件包:apache-maven-3.0.5-bin.tar.gz
    不要使用最新的Maven3.1.1,与Maven3.0.x存在兼容性问题,所以老是出现java.lang.NoClassDefFoundError: org/sonatype/aether/graph/DependencyFilter之类的错误。选择3.0.5版本:apache-maven-3.0.5-bin.tar.gz
    将apache-maven-3.0.5-bin.tar.gz移动到/usr目录(软件包所在目录):
    # mv ./apache-maven-3.0.5-bin.tar.gz /usr
    进入/usr目录,解压(/usr目录):
    # tar –zxvf apache-maven-3.0.5-bin.tar.gz ./
    删除解压后的压缩包(/usr目录):
    # rm –rf apache-maven-3.0.5-bin.tar.gz
    将/usr / apache-maven-3.0.5/bin加到环境变量中
    # vi /etc/profile
    在PATH行的最后加上“:/usr/apache-maven-3.0.5/bin”
    2、使配置生效:

    # source /etc/profile
    验证是否安装成功:

    # mvn –version

    三、安装protobuf
    1、软件包:protobuf-2.5.0.tar.gz
    将protobuf-2.5.0.tar.gz移动到/usr目录(软件包所在目录):
    # mv ./ protobuf-2.5.0.tar.gz /usr
    进入/usr目录,解压(/usr目录):

    # tar –zxvf protobuf-2.5.0.tar.gz ./
    删除解压后的压缩包(/usr目录):

    # rm –rf protobuf-2.5.0.tar.gz
    进入/usr/protobuf-2.5.0目录:
    # cd /usr/protobuf-2.5.0
    2、依次执行下列命令:
    # ./configure
    # make
    # make check
    # make install
    检测是否安装成功:
    # protoc --version
    四、下载hadoop-2.2.0源码并编译

    在/usr目录进行
    用svn下载hadoop-2.2.0源码,命令:
    $ svn checkout 'http://svn.apache.org/repos/asf/hadoop/common/tags/release-2.2.0'
    源码下载完成后,在/usr目录下会有一个release-2.2.0目录,进入该目录:
    $ cd /usr/release-2.2.0
    $ ls –la

    编译源码:
    $ mvn package -Pdist,native -DskipTests –Dtar --不生成文档
    $ mvn package -Pdist,native,docs,src -DskipTests –Dtar --生成文档,需要安装findbugs,并设置FINDBUGS_HOME环境变量
    编译的时间比较久,编译过程中会联网下载所需要的包,机子没联网是不会成功编译的。
    编译结束,最后打印的信息如下,每一项均是‘SUCCESS’,则编译成功:

    编译好的代码包在/usr/release-2.2.0/hadoop-dist/target目录下:
    $ cd /usr/release-2.2.0/hadoop-dist/target
    $ ls –la
    因为是在64位系统下编译的,所以编译出来的代码包是64位版本的;可以直接将/usr/release-2.2.0/hadoop-dist/target目录下的hadoop-2.2.0或者hadoop-2.2.0.tar.gz拷贝到其他linux64位平台进行搭建hadoop集群。

    说明:
    1、 机器得连网,如果没联网找可以联网的机器下载,但是编译时还是要下载一些东西,所以,实在不行。最好找相同平台(可以是虚拟机)能上网的机器做下面工作,弄好了再把编译好的代码包拷回来。
    2、 命令操作中,‘#’开头的是在root用户进行,‘$’开头的是在普通用户下进行

    5. 安装hadoop的步骤有哪些

    hadoop2.0已经发布了稳定版本了,增加了很多特性,比如HDFSHA、YARN等。最新的hadoop-2.4.1又增加了YARNHA

    注意:apache提供的hadoop-2.4.1的安装包是在32位操作系统编译的,因为hadoop依赖一些C++的本地库,
    所以如果在64位的操作上安装hadoop-2.4.1就需要重新在64操作系统上重新编译
    (建议第一次安装用32位的系统,我将编译好的64位的也上传到群共享里了,如果有兴趣的可以自己编译一下)

    前期准备就不详细说了,课堂上都介绍了
    1.修改Linux主机名
    2.修改IP
    3.修改主机名和IP的映射关系
    ######注意######如果你们公司是租用的服务器或是使用的云主机(如华为用主机、阿里云主机等)
    /etc/hosts里面要配置的是内网IP地址和主机名的映射关系
    4.关闭防火墙
    5.ssh免登陆
    6.安装JDK,配置环境变量等

    集群规划:
    主机名 IP 安装的软件 运行的进程
    HA181 192.168.1.181 jdk、hadoop NameNode、DFSZKFailoverController(zkfc)
    HA182 192.168.1.182 jdk、hadoop NameNode、DFSZKFailoverController(zkfc)
    HA183 192.168.1.183 jdk、hadoop ResourceManager
    HA184 192.168.1.184 jdk、hadoop ResourceManager
    HA185 192.168.1.185 jdk、hadoop、zookeeper DataNode、NodeManager、JournalNode、QuorumPeerMain
    HA186 192.168.1.186 jdk、hadoop、zookeeper DataNode、NodeManager、JournalNode、QuorumPeerMain
    HA187 192.168.1.187 jdk、hadoop、zookeeper DataNode、NodeManager、JournalNode、QuorumPeerMain

    说明:
    1.在hadoop2.0中通常由两个NameNode组成,一个处于active状态,另一个处于standby状态。ActiveNameNode对外提供服务,而StandbyNameNode则不对外提供服务,仅同步activenamenode的状态,以便能够在它失败时快速进行切换。
    hadoop2.0官方提供了两种HDFSHA的解决方案,一种是NFS,另一种是QJM。这里我们使用简单的QJM。在该方案中,主备NameNode之间通过一组JournalNode同步元数据信息,一条数据只要成功写入多数JournalNode即认为写入成功。通常配置奇数个JournalNode
    这里还配置了一个zookeeper集群,用于ZKFC(DFSZKFailoverController)故障转移,当ActiveNameNode挂掉了,会自动切换StandbyNameNode为standby状态
    2.hadoop-2.2.0中依然存在一个问题,就是ResourceManager只有一个,存在单点故障,hadoop-2.4.1解决了这个问题,有两个ResourceManager,一个是Active,一个是Standby,状态由zookeeper进行协调
    安装步骤:
    1.安装配置zooekeeper集群(在HA185上)
    1.1解压
    tar-zxvfzookeeper-3.4.5.tar.gz-C/app/
    1.2修改配置
    cd/app/zookeeper-3.4.5/conf/
    cpzoo_sample.cfgzoo.cfg
    vimzoo.cfg
    修改:dataDir=/app/zookeeper-3.4.5/tmp
    在最后添加:
    server.1=HA185:2888:3888
    server.2=HA186:2888:3888
    server.3=HA187:2888:3888
    保存退出
    然后创建一个tmp文件夹
    mkdir/app/zookeeper-3.4.5/tmp
    再创建一个空文件
    touch/app/zookeeper-3.4.5/tmp/myid
    最后向该文件写入ID
    echo1>/app/zookeeper-3.4.5/tmp/myid
    1.3将配置好的zookeeper拷贝到其他节点(首先分别在HA186、HA187根目录下创建一个weekend目录:mkdir/weekend)
    scp-r/app/zookeeper-3.4.5/HA186:/app/
    scp-r/app/zookeeper-3.4.5/HA187:/app/

    注意:修改HA186、HA187对应/weekend/zookeeper-3.4.5/tmp/myid内容
    HA186:
    echo2>/app/zookeeper-3.4.5/tmp/myid
    HA187:
    echo3>/app/zookeeper-3.4.5/tmp/myid

    2.安装配置hadoop集群(在HA181上操作)
    2.1解压
    tar-zxvfhadoop-2.4.1.tar.gz-C/weekend/
    2.2配置HDFS(hadoop2.0所有的配置文件都在$HADOOP_HOME/etc/hadoop目录下)
    #将hadoop添加到环境变量中
    vim/etc/profile
    exportJAVA_HOME=/app/jdk1.7.0_79
    exportHADOOP_HOME=/app/hadoop-2.4.1
    exportPATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin

    #hadoop2.0的配置文件全部在$HADOOP_HOME/etc/hadoop下
    cd/home/hadoop/app/hadoop-2.4.1/etc/hadoop

    2.2.1修改hadoop-env.sh
    exportJAVA_HOME=/app/jdk1.7.0_79

    2.2.2修改core-site.xml
    <configuration>
    <!--指定hdfs的nameservice为ns1-->
    <property>
    <name>fs.defaultFS</name>
    <value>hdfs://ns1/</value>
    </property>
    <!--指定hadoop临时目录-->
    <property>
    <name>hadoop.tmp.dir</name>
    <value>/app/hadoop-2.4.1/tmp</value>
    </property>

    <!--指定zookeeper地址-->
    <property>
    <name>ha.zookeeper.quorum</name>
    <value>HA185:2181,HA186:2181,HA187:2181</value>
    </property>
    </configuration>

    2.2.3修改hdfs-site.xml
    <configuration>
    <!--指定hdfs的nameservice为ns1,需要和core-site.xml中的保持一致-->
    <property>
    <name>dfs.nameservices</name>
    <value>ns1</value>
    </property>
    <!--ns1下面有两个NameNode,分别是nn1,nn2-->
    <property>
    <name>dfs.ha.namenodes.ns1</name>
    <value>nn1,nn2</value>
    </property>
    <!--nn1的RPC通信地址-->
    <property>
    <name>dfs.namenode.rpc-address.ns1.nn1</name>
    <value>HA181:9000</value>
    </property>
    <!--nn1的http通信地址-->
    <property>
    <name>dfs.namenode.http-address.ns1.nn1</name>
    <value>HA181:50070</value>
    </property>
    <!--nn2的RPC通信地址-->
    <property>
    <name>dfs.namenode.rpc-address.ns1.nn2</name>
    <value>HA182:9000</value>
    </property>
    <!--nn2的http通信地址-->
    <property>
    <name>dfs.namenode.http-address.ns1.nn2</name>
    <value>HA182:50070</value>
    </property>
    <!--指定NameNode的元数据在JournalNode上的存放位置-->
    <property>
    <name>dfs.namenode.shared.edits.dir</name>
    <value>qjournal://HA185:8485;HA186:8485;HA187:8485/ns1</value>
    </property>
    <!--指定JournalNode在本地磁盘存放数据的位置-->
    <property>
    <name>dfs.journalnode.edits.dir</name>
    <value>/app/hadoop-2.4.1/journaldata</value>
    </property>
    <!--开启NameNode失败自动切换-->
    <property>
    <name>dfs.ha.automatic-failover.enabled</name>
    <value>true</value>
    </property>
    <!--配置失败自动切换实现方式-->
    <property>
    <name>dfs.client.failover.proxy.provider.ns1</name>
    <value>org.apache.hadoop.hdfs.server.namenode.ha.</value>
    </property>
    <!--配置隔离机制方法,多个机制用换行分割,即每个机制暂用一行-->
    <property>
    <name>dfs.ha.fencing.methods</name>
    <value>
    sshfence
    shell(/bin/true)
    </value>
    </property>
    <!--使用sshfence隔离机制时需要ssh免登陆-->
    <property>
    <name>dfs.ha.fencing.ssh.private-key-files</name>
    <value>/home/hadoop/.ssh/id_rsa</value>
    </property>
    <!--配置sshfence隔离机制超时时间-->
    <property>
    <name>dfs.ha.fencing.ssh.connect-timeout</name>
    <value>30000</value>
    </property>
    </configuration>

    2.2.4修改mapred-site.xml
    <configuration>
    <!--指定mr框架为yarn方式-->
    <property>
    <name>maprece.framework.name</name>
    <value>yarn</value>
    </property>
    </configuration>

    2.2.5修改yarn-site.xml
    <configuration>
    <!--开启RM高可用-->
    <property>
    <name>yarn.resourcemanager.ha.enabled</name>
    <value>true</value>
    </property>
    <!--指定RM的clusterid-->
    <property>
    <name>yarn.resourcemanager.cluster-id</name>
    <value>yrc</value>
    </property>
    <!--指定RM的名字-->
    <property>
    <name>yarn.resourcemanager.ha.rm-ids</name>
    <value>rm1,rm2</value>
    </property>
    <!--分别指定RM的地址-->
    <property>
    <name>yarn.resourcemanager.hostname.rm1</name>
    <value>HA183</value>
    </property>
    <property>
    <name>yarn.resourcemanager.hostname.rm2</name>
    <value>HA184</value>
    </property>
    <!--指定zk集群地址-->
    <property>
    <name>yarn.resourcemanager.zk-address</name>
    <value>HA185:2181,HA186:2181,HA187:2181</value>
    </property>
    <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>maprece_shuffle</value>
    </property>
    </configuration>


    2.2.6修改slaves(slaves是指定子节点的位置,因为要在HA181上启动HDFS、在HA183启动yarn,
    所以HA181上的slaves文件指定的是datanode的位置,HA183上的slaves文件指定的是nodemanager的位置)
    HA185
    HA186
    HA187

    2.2.7配置免密码登陆
    #首先要配置HA181到HA182、HA183、HA184、HA185、HA186、HA187的免密码登陆
    #在HA181上生产一对钥匙
    ssh-keygen-trsa
    #将公钥拷贝到其他节点,包括自己
    ssh--idHA181
    ssh--idHA182
    ssh--idHA183
    ssh--idHA184
    ssh--idHA185
    ssh--idHA186
    ssh--idHA187
    #配置HA183到HA184、HA185、HA186、HA187的免密码登陆
    #在HA183上生产一对钥匙
    ssh-keygen-trsa
    #将公钥拷贝到其他节点
    ssh--idHA184
    ssh--idHA185
    ssh--idHA186
    ssh--idHA187
    #注意:两个namenode之间要配置ssh免密码登陆,别忘了配置HA182到HA181的免登陆
    在HA182上生产一对钥匙
    ssh-keygen-trsa
    ssh--id-iHA181

    2.4将配置好的hadoop拷贝到其他节点
    scp-r/app/hadoop-2.5.1/HA182:/app/
    scp-r/app/hadoop-2.5.1/HA183:/app/
    scp-r/app/hadoop-2.5.1/HA184:/app/
    scp-r/app/hadoop-2.5.1/HA185:/app/
    scp-r/app/hadoop-2.5.1/HA186:/app/
    scp-r/app/hadoop-2.5.1/HA187:/app/
    ###注意:严格按照下面的步骤
    2.5启动zookeeper集群(分别在HA185、HA186、tcast07上启动zk)
    cd/app/zookeeper-3.4.5/bin/
    ./zkServer.shstart
    #查看状态:一个leader,两个follower
    ./zkServer.shstatus

    2.6启动journalnode(分别在在HA185、HA186、HA187上执行)
    cd/app/hadoop-2.5.1
    hadoop-daemon.shstartjournalnode
    #运行jps命令检验,HA185、HA186、HA187上多了JournalNode进程
    2.7格式化ZKFC(在HA181上执行即可) hdfszkfc-formatZK
    2.8格式化HDFS
    #在HA181上执行命令:
    hdfsnamenode-format
    #格式化后会在根据core-site.xml中的hadoop.tmp.dir配置生成个文件,这里我配置的是/app/hadoop-2.4.1/tmp,然后将/weekend/hadoop-2.4.1/tmp拷贝到HA182的/weekend/hadoop-2.4.1/下。
    scp-rtmp/HA182:/app/hadoop-2.5.1/
    ##也可以这样,建议hdfsnamenode-bootstrapStandby



    2.9启动HDFS(在HA181上执行)
    sbin/start-dfs.sh

    2.10启动YARN(#####注意#####:是在HA183上执行start-yarn.sh,把namenode和resourcemanager分开是因为性能问题,因为他们都要占用大量资源,所以把他们分开了,他们分开了就要分别在不同的机器上启动)
    sbin/start-yarn.sh


    到此,hadoop-2.4.1配置完毕,可以统计浏览器访问:
    http://192.168.1.181:50070
    NameNode'HA181:9000'(active)
    http://192.168.1.182:50070
    NameNode'HA182:9000'(standby)

    验证HDFSHA
    首先向hdfs上传一个文件
    hadoopfs-put/etc/profile/profile
    hadoopfs-ls/
    然后再kill掉active的NameNode
    kill-9<pidofNN>
    通过浏览器访问:http://192.168.1.182:50070
    NameNode'HA182:9000'(active)
    这个时候HA182上的NameNode变成了active
    在执行命令:
    hadoopfs-ls/
    -rw-r--r--3rootsupergroup19262014-02-0615:36/profile
    刚才上传的文件依然存在!!!
    手动启动那个挂掉的NameNode
    sbin/hadoop-daemon.shstartnamenode
    通过浏览器访问:http://192.168.1.181:50070
    NameNode'HA181:9000'(standby)

    验证YARN:
    运行一下hadoop提供的demo中的WordCount程序:
    hadoopjarshare/hadoop/maprece/hadoop-maprece-examples-2.4.1.jarwordcount/profile/out

    OK,大功告成!!!
    CID-74d21742-3e4b-4df6-a99c-d52f703b49c0



    测试集群工作状态的一些指令:
    bin/hdfsdfsadmin-report 查看hdfs的各节点状态信息


    bin/hdfshaadmin-getServiceStatenn1 获取一个namenode节点的HA状态

    sbin/hadoop-daemon.shstartnamenode单独启动一个namenode进程


    ./hadoop-daemon.shstartzkfc单独启动一个zkfc进程

    6. 如何在hadoop-2.6.0上编译运行自己编写的java代码

    在不使用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 /

    结束!

    7. 如何在CentOS6.5下编译64位的Hadoop2.x

    1,安装gcc,执行如下的几个yum命令即可,
    Java代码
    yum -y install gcc
    yum -y install gcc-c++
    yum install make
    yum install autoconf automake libtool cmake ncurses-devel openssl-devel gcc*

    2,安装JDK,并设置环境变量,完成后测试安装成功否
    Java代码
    [root@ganglia ~]# java -version
    java version "1.5.0"
    gij (GNU libgcj) version 4.4.7 20120313 (Red Hat 4.4.7-4)
    Copyright (C) 2007 Free Software Foundation, Inc.
    This is free software; see the source for ing conditions. There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

    [root@ganglia ~]#

    3, 安装Maven,安装完成后测试安装与否
    Java代码
    [root@ganglia ~]# mvn -v
    Apache Maven 3.2.1 (; 2014-02-15T01:37:52+08:00)
    Maven home: /usr/local/maven
    Java version: 1.7.0_25, vendor: Oracle Corporation
    Java home: /usr/local/jdk1.7.0_25/jre
    Default locale: zh_CN, platform encoding: UTF-8
    OS name: "linux", version: "2.6.32-431.el6.x86_64", arch: "amd64", family: "unix"

    [root@ganglia ~]#

    4, 安装Ant, 安装完成后,依旧测试成功与否
    Java代码
    [root@ganglia ~]# ant -version
    Apache Ant(TM) version 1.9.4 compiled on April 29 2014
    [root@ganglia ~]#

    5,安装protobuf,安装方式,从官网下载tar.gz的包,并上传到linux上解压,然后进入根目录下,执行如下的几个命令:
    Java代码
    ./configure
    make
    make check
    make install
    然后,执行如下命令,进行测试安装成功与否
    Java代码
    [root@ganglia protobuf-2.5.0]# protoc
    Missing input file.
    [root@ganglia protobuf-2.5.0]#

    6,从hadoop官网下载hadoop2.2.0的版本的源码的src的包,并查看目录
    Java代码
    [root@ganglia ~]# cd hadoop-2.2.0-src
    [root@ganglia hadoop-2.2.0-src]# ll
    总用量 108
    -rw-r--r--. 1 67974 users 9968 10月 7 2013 BUILDING.txt
    drwxr-xr-x. 2 67974 users 4096 10月 7 2013 dev-support
    drwxr-xr-x. 4 67974 users 4096 6月 9 17:05 hadoop-assemblies
    drwxr-xr-x. 3 67974 users 4096 6月 9 17:27 hadoop-client
    drwxr-xr-x. 9 67974 users 4096 6月 9 17:14 hadoop-common-project
    drwxr-xr-x. 3 67974 users 4096 6月 9 17:26 hadoop-dist
    drwxr-xr-x. 7 67974 users 4096 6月 9 17:20 hadoop-hdfs-project
    drwxr-xr-x. 11 67974 users 4096 6月 9 17:25 hadoop-maprece-project
    drwxr-xr-x. 4 67974 users 4096 6月 9 17:06 hadoop-maven-plugins
    drwxr-xr-x. 3 67974 users 4096 6月 9 17:27 hadoop-minicluster
    drwxr-xr-x. 4 67974 users 4096 6月 9 17:03 hadoop-project
    drwxr-xr-x. 3 67974 users 4096 6月 9 17:05 hadoop-project-dist
    drwxr-xr-x. 12 67974 users 4096 6月 9 17:26 hadoop-tools
    drwxr-xr-x. 4 67974 users 4096 6月 9 17:24 hadoop-yarn-project
    -rw-r--r--. 1 67974 users 15164 10月 7 2013 LICENSE.txt
    -rw-r--r--. 1 67974 users 101 10月 7 2013 NOTICE.txt
    -rw-r--r--. 1 67974 users 16569 10月 7 2013 pom.xml
    -rw-r--r--. 1 67974 users 1366 10月 7 2013 README.txt
    [root@ganglia hadoop-2.2.0-src]#

    7,修改/root/hadoop-2.2.0-src/hadoop-common-project/hadoop-auth/pom.xml文件,增加,补丁内容,这部分是hadoop2.2.0的bug,如果是其他的2.x的版本,可以视情况而定,内容如下:
    Xml代码
    <dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-all</artifactId>
    <scope>test</scope>
    </dependency>
    <!--新增的内容开始 -->
    <dependency>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>jetty-util</artifactId>
    <scope>test</scope>
    </dependency>
    <!--新增的内容结束 -->
    <dependency>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>jetty</artifactId>
    <scope>test</scope>
    </dependency>

    8,修改完毕后,回到hadoop-2.2.0-src的跟目录下执行编译打包命令:
    Java代码
    mvn clean
    mvn package -Pdist,native -DskipTests -Dtar
    然后等待半个小时左右的编译时间,网速快的话,时间可能会更短,编译完成 编译好的hadoop包,
    Java代码
    [root@ganglia target]# pwd
    /root/hadoop-2.2.0-src/hadoop-dist/target
    [root@ganglia target]# ll

    总用量 282348

    编译完成后的本地库,位于如下位置,并查看本地库支持位数:
    至此,我们的编译已经,成功完成,然后,我们就可以使用在target目录下,编译生成的hadoop新的tar.gz包,来部署我们的hadoop集群。

    8. 关于hadoop中的动态链接库区分32位和64位吗

    这个好像没有命令能查到位数。 官方提供的编译好的都是32位的hadoop。64位的需要自己编译,或者下载其他人编译好的。

    9. hadoop在window10上怎么编译

    前言 Windows下运行Hadoop,通常有两种方式:一种是用VM方式安装一个Linux操作系统,这样基本可以实现全Linux环境的Hadoop运行;另一种是通过Cygwin模拟Linux环境。后者的好处是使用比较方便,安装过程也简单,本篇文章是介绍第二种方式Cygwin模.

    热点内容
    怎么在微信发文件夹 发布:2025-02-08 10:09:45 浏览:790
    cryengine源码 发布:2025-02-08 09:50:58 浏览:392
    aardio可以反编译吗 发布:2025-02-08 09:50:53 浏览:482
    公司营业执照密码是什么 发布:2025-02-08 09:47:56 浏览:854
    体验脚本 发布:2025-02-08 09:46:15 浏览:690
    医学生需要什么配置的笔记本 发布:2025-02-08 09:45:34 浏览:771
    骚扰电话数据库 发布:2025-02-08 09:45:34 浏览:179
    u盘文件加密器 发布:2025-02-08 09:40:35 浏览:769
    plc数据存储app 发布:2025-02-08 09:37:17 浏览:708
    服务器的峰值高低有什么区别 发布:2025-02-08 09:35:46 浏览:689