Hadoop-2.5.0搭建(僞分佈和真分佈)

一直在做應用系統方面的工作,最近開始折騰分佈式架構,會玩Hadoop是首要任務。

下面就來說說我部署Hadoop的過程,和碰到的很多坎。

開始選擇的是Hadoop-2.4.0,僞分佈基本上沒什麼問題了。中間因爲項目變動原因,搞其他的去了~~

過了幾個月,再來折騰Hadoop,這次發現hadoop都已經出到2.5.0了,於是趕緊換了。

 

下載Hadoop-2.5.0,一般我會選擇在apache dist上下載,因爲是linux上裝的,所以選擇tar.gz的發行版。copy一下鏈接地址,在終端wget url(下載鏈接地址)。如果不是root用戶,還需要在前面加sudo。下在/usr/local/soft中,tar xvf apache-hadoop-2.5.0.tar.gz,解壓下載的tar.gz。會看到一個名爲hadoop-2.5.0的文件夾。

 

下面就需要對Hadoop進行設置了。

 

首先vim /etc/profile,增加

 

HADOOP_PREFIX=/usr/local/soft/hadoop-2.5.0
YARN_CONF_DIR=/usr/local/soft/hadoop-2.5.0

 

 

PATH最後面增加$HADOOP_PREFIX/bin  這裏要注意,和前面的屬性要用:隔開

在下面

 

export HADOOP_PREFIX
export YARN_CONF_DIR
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_PREFIX/lib/native  (對64位的服務器來說,這個會很重要,後面會講到)
export HADOOP_OPTS="-Djava.library.path=$HADOOP_PREFIX/lib"

 

 

保存(ESC,:wq)

 

哦,別忘了source /etc/profile,這是讓修改過的profile馬上生效。

以上講的,都是假設你已經正確配置了jdk了,如果你是裝了jdk1.8.0_x的話,還是有點小悲劇。

 

然後進入hadoop下面的etc/hadoop/(不是系統的etc,是hadoop下面的),ls,看到很多配置文件。

先vim hadoop-env.sh

 

export JAVA_HOME=/usr/local/soft/jdk1.7.0_67  保存退出

 

 

vim yarn-env.sh 

 

export JAVA_HOME=/usr/local/soft/jdk1.7.0_67  保存退出

 

 

vim core-site.xml

 

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

 

vim hdfs-site.xml

 

<configuration>
<property>
  <name>dfs.namenode.name.dir</name>
  <value>file:/home/hadoop/dfs/name</value>
</property>
<property>
  <name>dfs.namenode.data.dir</name>
  <value>file:/home/hadoop/dfs/data</value>
</property>
<property>
  <name>dfs.replication</name>
  <value>1</value>
</property>
</configuration>

 

 

 

好了,現在可以啓動看看了

先格式化,這個很重要。

 

hadoop namenode -format

 這句話基本上就是把目前你的hadoop系統確定一下結構,我們的hadoop系統中,一般是一個namenode+多個datanode。

 

namenode相當於顧客房間表,datanode相當於具體的房間。

 

然後啓動hadoop吧。

到hadoop的根目錄,

sbin/start-dfs.sh

 然後再啓動yarn,因爲2.5.0的版本,早就已經是以yarn這種更好的架構來運行了。

 

 

sbin/start-yarn.sh

 然後查看一下開啓的進程

 

 

JPS

 顯示:

 

 

6315 DataNode
6620 ResourceManager
11141 Jps
6459 SecondaryNameNode
6204 NameNode

 說明hadoop已經啓動成功。

 

打開http://localhost:50070,可看到hadoop的管理界面,導航欄的最後一項還可以查看hadoop裏面的文件。

我們來試着傳個文件,到/home下面,新建一個文件,vim test.txt,隨便寫些東西。保存。

然後把這個文件上傳。

 

hadoop fs -put test.txt /test.txt

 在瀏覽器的後臺刷新看看有沒有test.txt。

 

你可以先給hadoop建立目錄

 

hadoop fs -mkdir /wenjianjia

 上面的上傳文件也可以變成這樣:

 

 

hadoop fs -put test.txt /wenjianjia/test.txt

 其他的操作,大家自己去試吧。

 

 

下面講講碰到的一些問題。

首先,就是那個非常棘手的系統兼容問題,這個問題網上的文章很多,我這裏就只歸納一下了。

主要的原因是,我們目前手頭上的服務器,基本上都是64位的,而hadoop的髮型包裏面的lib文件確實32位的。所以,爲了更好的兼容(有些時候不僅僅是兼容的問題,而是直接出現衝突),我們需要自己來編譯hadoop的髮型包。

在下一篇中講吧。

 --------------------------------------------------------------------------------------------------   

這是看到的一篇關於SSH無密碼登錄的文章,之前用scp,時好時壞,但是用 ssh-copy-id之後,一切都好多了。原文地址:http://bbs.csdn.net/topics/370109654

 --------------------------------------------------------------------------------------------------

使用下例中ssky-keygen和ssh-copy-id,僅需通過3個步驟的簡單設置而無需輸入密碼就能登錄遠程Linux主機。 

 

ssh-keygen 創建公鑰和密鑰。 
ssh-copy-id 把本地主機的公鑰複製到遠程主機的authorized_keys文件上。
ssh-copy-id 也會給遠程主機的用戶主目錄(home)和~/.ssh, 和~/.ssh/authorized_keys設置合適的權限 。

步驟1: 用 ssh-key-gen 在本地主機上創建公鑰和密鑰

ligh@local-host$ ssh-keygen -t  rsa
Enter file in which to save the key (/home/jsmith/.ssh/id_rsa):[Enter key] 
Enter passphrase (empty for no passphrase): [Press enter key]
Enter same passphrase again: [Pess enter key]
Your identification has been saved in /home/jsmith/.ssh/id_rsa.
Your public key has been saved in /home/jsmith/.ssh/id_rsa.pub. 
The key fingerprint is: 33:b3:fe:af:95:95:18:11:31:d5:de:96:2f:f2:35:f9 
ligh@local-host
 

步驟2: 用 ssh-copy-id 把公鑰複製到遠程主機上
ligh@local-host$ ssh-copy-id -i ~/.ssh/id_rsa.pub  [email protected]
ligh@remote-host‘s password:
Now try logging into the machine, with ―ssh ?remote-host‘‖, and check in: 
.ssh/authorized_keys to make sure we haven‘t added extra keys that you weren‘t expecting.
[注: ssh-copy-id 把密鑰追加到遠程主機的 .ssh/authorized_key 上.]

步驟3: 直接登錄遠程主機

ligh@local-host$ ssh remote-host 
Last login: Sun Nov 16 17:22:33 2008 from 192.168.1.2 
[注: SSH 不會詢問密碼.] 
ligh@remote-host$ 
 
[注: 你現在已經登錄到了遠程主機上

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章