日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

64位LINUX下hadoop2.2.0重新编译及安装步骤

發布時間:2025/3/19 linux 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 64位LINUX下hadoop2.2.0重新编译及安装步骤 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


yum -y install ?lzo-devel ?zlib-devel ?gcc autoconf automake libtool gcc-c++ openssl-devel ncurses-devel ? ?


ant maven protocolbuf ?findbugs ? cmake ? ?


1、Protobuf 編譯安裝 ?

tar -zxvf protobuf-2.5.0.tar.gz

cd protobuf-2.5.0 ?

./configure --prefix=/usr/local/protobuf

make

make install ?


2、Ant 安裝 ?

tar -zxvf apache-ant-1.9.2-bin.tar.gz

mv apache-ant-1.9.2/ /usr/local/ant


3、編譯前的準備maven,官方下載地址

wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.1.1/binaries/apache-maven-3.1.1-bin.zip

maven 安裝 ?

tar -zxvf apache-maven-3.0.5-bin.tar.gz

mv apache-maven-3.0.5/ /usr/local/maven ?


4、findbugs 安裝 ?

tar -zxfv findbugs-2.0.2.tar.gz ?

mv findbugs-2.0.2/ /usr/local/findbugs ?


5、cmake 編譯安裝 ?

tar -zvxf cmake-2.8.6.tar.gz

cd cmake-2.8.6

./bootstrap

gmake

make

make install


6、下載對應的64位的JDK

#java 安裝 /usr/local/jdk1.7.0_45



7、配置環境 ?

vi /etc/profile ?

#java ?

export JAVA_HOME=/usr/local/jdk1.7.0_45

export JRE_HOME=/usr/local/jdk1.7.0_45/jre ?

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

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

#maven ?

export MAVEN_HOME=/usr/local/maven

export MAVEN_OPTS="-Xms256m -Xmx512m"

export CLASSPATH=.:$CLASSPATH:$MAVEN_HOME/lib

export PATH=$PATH:$MAVEN_HOME/bin ? ?

#protobuf ?

export PROTOBUF_HOME=/usr/local/protobuf ?

export CLASSPATH=.:$CLASSPATH:$PROTOBUF_HOME/lib

export PATH=$PATH:$PROTOBUF_HOME/bin ?

#ant ?

export ANT_HOME=/usr/local/ant ?

export CLASSPATH=.:$CLASSPATH:$ANT_HOME/lib

export PATH=$PATH:$ANT_HOME/bin ? ?

#findbugs ?

export FINDBUGS_HOME=/usr/local/findbugs ?

export CLASSPATH=.:$CLASSPATH:$FINDBUGS_HOME/lib

export PATH=$PATH:$FINDBUGS_HOME/bin ? ?


source /etc/profile ?



8、如果是你32bit的機器,可以直接下載官方已經編譯好的包,64bit的機子跑編譯好的包跑不了。


由于maven國外服務器可能連不上,先給maven配置一下國內鏡像,在maven目錄下,conf/settings.xml,在<mirrors></mirros>里添加,原本的不要動

<mirror> ?

<id>nexus-osc</id> ?

<mirrorOf>*</mirrorOf> ?

<name>Nexusosc</name> ?

<url>http://maven.oschina.net/content/groups/public/</url> ?

</mirror> ?


同樣,在<profiles></profiles>內新添加

<profile> ?

<id>jdk-1.7</id> ?

<activation> ?

<jdk>1.7</jdk> ?

</activation> ?

<repositories> ?

<repository> ?

<id>nexus</id> ?

<name>local private nexus</name> ?

<url>http://maven.oschina.net/content/groups/public/</url> ?

<releases> ?

<enabled>true</enabled> ?

</releases> ?

<snapshots> ?

<enabled>false</enabled> ?

</snapshots> ?

</repository> ?

</repositories> ?

<pluginRepositories> ?

<pluginRepository> ?

<id>nexus</id> ?

<name>local private nexus</name> ?

<url>http://maven.oschina.net/content/groups/public/</url> ?

<releases> ?

<enabled>true</enabled> ?

</releases> ?

<snapshots> ?

<enabled>false</enabled> ?

</snapshots> ?

</pluginRepository> ?

</pluginRepositories> ?

</profile> ?


9、首先官方下載hadoop源碼

wget http://mirrors.cnnic.cn/apache/hadoop/common/hadoop-2.2.0/hadoop-2.2.0-src.tar.gz ?

編譯clean

cd hadoop2.2.0-src ?

mvn clean install –DskipTests ?



目前的2.2.0 的Source Code 壓縮包解壓出來的code有個bug 需要patch后才能編譯。否則編譯hadoop-auth 會提示錯誤:

vi /hadoop-2.2.0/hadoop-common-project/hadoop-auth/pom.xml ?

<dependency> ?

<groupid>org.mortbay.jetty</groupid>

<artifactid>jetty</artifactid>

<scope>test</scope>

</dependency> ?

在上面代碼后添加下面代碼

<dependency> ?

<groupid>org.mortbay.jetty</groupid>

<artifactid>jetty-util</artifactid>

<scope>test</scope>

</dependency> ?

注:不更改可能報下面錯位

[ERROR] ?Failed ?to ?execute ?goal ?org.apache.maven.plugins:maven-compiler-plugin:2.5.1:testCompile (default-testCompile) on project hadoop-auth: Compilation failure: Compilation failure: ?---------------------------------------------------------------------------------------------- ?


ok,現在可以進行編譯了

mvn clean package -Pdist,native -DskipTests -Dtar ?

慢慢等吧!


[INFO] ------------------------------------------------------------ ?

[INFO] Total time: 11:53.144s ?

[INFO] Finished at: Fri Nov 22 16:58:32 CST 2013 ?

[INFO] Final Memory: 70M/239M ?

[INFO] ------------------------------------------------------------------------ ?

直到看到上面的內容那就說明編譯完成了。


編譯后的路徑在:hadoop-2.2.0-src/hadoop-dist/target/hadoop-2.2.0

[root@localhost bin]# ./hadoop version ?

Hadoop 2.2.0 ?

Subversion Unknown -r Unknown ?

Compiled by root on 2013-11-22T08:47Z ?

Compiled with protoc 2.5.0 ?

From source with checksum 79e53ce7994d1628b240f09af91e1af4 ?

This command was run using /data/hadoop-2.2.0-src/hadoop-dist/target/hadoop-2.2.0/share/hadoop/common/hadoop-common-2.2.0.jar ?

可以看出hadoop的版本


[root@localhost hadoop-2.2.0]# file lib//native/* ?

lib//native/libhadoop.a: ? ? ? ?current ar archive ?

lib//native/libhadooppipes.a: ? current ar archive ?

lib//native/libhadoop.so: ? ? ? symbolic link to `libhadoop.so.1.0.0' ?

lib//native/libhadoop.so.1.0.0: <span style="color:#ff0000;">ELF 64-bit LSB shared object, x86-64, version 1</span> (SYSV), dynamically linked, not stripped ?

lib//native/libhadooputils.a: ? current ar archive ?

lib//native/libhdfs.a: ? ? ? ? ?current ar archive ?

lib//native/libhdfs.so: ? ? ? ? symbolic link to `libhdfs.so.0.0.0' ?

lib//native/libhdfs.so.0.0.0: ? <span style="color:#ff0000;">ELF 64-bit LSB shared object, x86-64, version 1</span> (SYSV), dynamically linked, not stripped ?

注意,如果下載官網的編譯好的包,這里顯示的是32-bit。

hadoop編譯成功,下面可以來部署集群。


10、部署集群準備

兩臺以上機器,修改hostname, ssh免登陸,關閉防火墻等


10.1、創建新用戶

useradd hadoop ?

su hadoop ?

注意以下操作有些需要root權限


10.2、修改主機名

vi /etc/sysconfig/network ?

hostname master ?

注銷一下系統,修改生效


10.3、修改hosts

vi /etc/hosts ?

新增你的主機IP和HOSTNAME ?

192.168.10.10 ?master ?

192.168.10.11 ?slave1 ?


10.4、ssh免登陸

修改/etc/ssh/sshd_config

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile ? ? ?.ssh/authorized_keys

然后service sshd restart ?

現在開始配置無密登錄

[hadoop@master ~]$ cd /home/hadoop/ ?

[hadoop@master ~]$ ssh-keygen -t rsa -P -f ~/.ssh/id_rsa

[hadoop@master ~]$ cd .ssh/ ?

[hadoop@master .ssh]$ cp id_rsa.pub authorized_keys ?

[hadoop@master .ssh]$ chmod 600 authorized_keys ?

[hadoop@master .ssh]$ scp authorized_keys root@192.168.10.11:/home/hadoop/.ssh/

[hadoop@master .ssh]$ ssh slave1

看到已經變成slave1了,說明成功


11、開始集群配置工作

配置之前在要目錄下創建三個目錄,用來放hadooop文件和日志數據

[hadoop@master ~]$mkdir -p dfs/name ?

[hadoop@master ~]$mkdir -p dfs/data ?

[hadoop@master ~]$mkdir -p temp ?

把之前編譯成功的版本移到hadoop目錄下,注意目錄權限問題

下面就開始配置文件


11.1、hadoop-env.sh

找到JAVA_HOME,把路徑改為實際地址


11.2、yarn-env.sh

同6.1


11.3、slave

配置所有slave節點


11.4、core-site.xml

<property>

<name>fs.defaultFS</name>

<value>hdfs://master:9000</value> ? //系統分布式URL ?

</property>

<property>

<name>io.file.buffer.size</name>

<value>131072</value>

</property>

<property>

<name>hadoop.tmp.dir</name>

<value>file:/home/hadoop/temp</value>

</property>

<property>

<name>hadoop.proxyuser.hadoop.hosts</name>

<value>*</value>

</property> ?

<property> ?

<name>hadoop.proxyuser.hadoop.groups</name> ?

<value>*</value> ?

</property> ?

注意fs.defaultFS為2.2.0新的變量,代替舊的:fs.default.name


11.5、hdfs-site.xml

配置namenode、datanode的本地目錄信息

<property> ?

<name>dfs.namenode.secondary.http-address</name> ?

<value>master:9001</value> ?

</property> ?


<property> ?

<name>dfs.namenode.name.dir</name> ?

<value>/home/hadoop/dfs/name</value> ?

</property> ?


<property> ?

<name>dfs.datanode.data.dir</name> ?

<value>/home/hadoop/dfs/data,/mnt/d1,/mnt/d2,/mnt/d3</value>

</property> ?


<span style="white-space:pre"> ?

</span>


<property> ?

<name>dfs.replication</name> ?

<value>3</value> ?

</property> ?


<property> ?

<name>dfs.webhdfs.enabled</name>

<value>true</value> ?

</property>


新的:dfs.namenode.name.dir,舊:dfs.name.dir

新的:dfs.datanode.name.dir,舊:dfs.data.dir

dfs.replication確定 data block的副本數目,hadoop基于rackawareness(機架感知)默認復制3份分block,(同一個rack下兩個,另一個rack下一 份,按照最短距離確定具體所需block, 一般很少采用跨機架數據塊,除非某個機架down了)


11.6、mapred-site.xml

配置其使用 Yarn 框架執行 map-reduce 處理程序

這個地方需要把mapred-site.xml.template復制重新命名


<property> ?

<name>mapreduce.framework.name</name> ?

<value>yarn</value> ?

</property> ?


<property> ?

<name>mapreduce.jobhistory.address</name> ?

<value>master:10020</value> ?

</property> ?


<property> ?

<name>mapreduce.jobhistory.webapp.address</name> ?

<value>master:19888</value> ?

</property> ?


新的計算框架取消了實體上的jobtracker, 故不需要再指定mapreduce.jobtracker.addres,而是要指定一種框架,這里選擇yarn,hadoop2.2.還支持第三方的計算框架。


11.7、yarn-site.xml

配置ResourceManager,NodeManager的通信端口,WEB監控端口等


<property> ?

<name>yarn.nodemanager.aux-services</name> ?

<value>mapreduce_shuffle</value> ?

</property> ?

<property> ?

<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> ?

<value>org.apache.hadoop.mapred.ShuffleHandler</value> ?

</property> ?

<property> ?

<name>yarn.resourcemanager.address</name> ?

<value>master:8032</value> ?

</property> ?

<property> ?

<name>yarn.resourcemanager.scheduler.address</name> ?

<value>master:8030</value> ?

</property> ?

<property> ?

<name>yarn.resourcemanager.resource-tracker.address</name> ?

<value>master:8031</value> ?

</property> ?

<property> ?

<name>yarn.resourcemanager.admin.address</name> ?

<value>master:8033</value> ?

</property> ?

<property> ?

<name>yarn.resourcemanager.webapp.address</name> ?

<value>master:8088</value> ?

</property>


到這里基本配置好了,把所有復制到其他的slave節點。


12、啟動hadoop

這里你可以進行環境變量設置


12.1、格式化namenode

[hadoop@master hadoop]$ cd /home/hadoop/hadoop-2.2.0/bin/ ?

[hadoop@master bin]$ ./hdfs namenode -format ?


12.2、啟動hdfs

[hadoop@master bin]$ cd ../sbin/ ?

[hadoop@master sbin]$ ./start-dfs.sh ?

這時候在master中輸入jps應該看到namenode和secondarynamenode服務啟動,slave中看到datanode服務啟動


12.3、啟動yarn

[hadoop@master sbin]$ ./start-yarn.sh ?

master中應該有ResourceManager服務,slave中應該有nodemanager服務

查看集群狀態: ? ?./bin/hdfs dfsadmin –report

查看文件塊組成: ?./bin/hdfsfsck / -files -blocks

查看各節點狀態: ? http://192.168.10.10:50070

查看resourcemanager上cluster運行狀態: ? ?http:// 192.168.10.11:8088


13、安裝中要注意的事項


13.1、注意版本,機器是32bit還是64位


13.2、注意依賴包的安裝


13.3、寫配置文件注意”空格“,特別是從別的地方copy的時候


13.4、關閉所有節點的防火墻

如果有看到類似"no route to host"這樣的異常,基本就是防火墻沒關


(1) 重啟后永久性生效: ?

開啟:chkconfig iptables on ?

關閉:chkconfig iptables off ?


(2) 即時生效,重啟后失效: ?

開啟:service iptables start ?

關閉:service iptables stop ?


13.5、開啟datanode后自動關閉

基本是因為namenode和datanode的clusterID不一致


13.6 no datanode to stop

刪除/tmp目錄下的

hadoop-daemon.sh代碼,腳本是通過pid文件來停止hadoop服務的,而集群配置是使用的默認配置,pid文件位于/tmp目錄下,對比/tmp目錄下hadoop.pid文件中的進程id和(ps -ax)查出來的進程id,發現兩個進程id不一致,終于找到了問題的根源。趕緊去更新hadoop的配置吧!修改hadoop-env.sh中的:HADOOP_PID_DIR = hadoop安裝路徑


14、運行測試例子

[hadoop@master bin]$ ./yarn jar ../share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar randomwriter /home/hadoop/dfs/input/ ?

這里要注意不要用 -jar,不然會報異常“Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/util/ProgramDriver”

[hadoop@master bin]$ ./yarn jar ../share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount /home/hadoop/dfs/input/ /home/hadoop/dfs/output/ ?

在input下面新建兩個文件

$mkdir /dfs/input

$echo ‘hello,world’ >> input/file1.in

$echo ‘hello,ruby’ ?>> input/file2.in


./bin/hadoop fs -mkdir -p /home/hadoop/dfs/input

./bin/hadoop fs –put /home/hadoop/dfs/input /home/hadoop/test/test_wordcount/in


查看word count的計算結果

$bin/hadoop fs -cat /home/hadoop/test/test_wordcount/out/*

hadoop 1

hello ?1

ruby


轉載于:https://blog.51cto.com/davideylee/1382785

總結

以上是生活随笔為你收集整理的64位LINUX下hadoop2.2.0重新编译及安装步骤的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。