當前位置:首頁 » 編程軟體 » 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 08:38:15 瀏覽:675
    怎麼用電腦和朋友遠程伺服器連接 發布:2025-02-08 08:29:52 瀏覽:232
    如何播放咪咕視頻的緩存電影 發布:2025-02-08 08:28:17 瀏覽:568
    台式電腦修改密碼在哪裡修改 發布:2025-02-08 08:25:18 瀏覽:297
    linux編譯opencv 發布:2025-02-08 08:14:29 瀏覽:712
    解除先制的密碼是多少 發布:2025-02-08 08:10:13 瀏覽:861
    c語言程序設計豆瓣 發布:2025-02-08 08:08:06 瀏覽:526
    學校伺服器如何進入密碼界面 發布:2025-02-08 08:05:45 瀏覽:821
    UE4源碼編譯要多久 發布:2025-02-08 07:52:50 瀏覽:233
    java架構師做什麼 發布:2025-02-08 07:38:32 瀏覽:774