當前位置:首頁 » 存儲配置 » hadoop怎麼安裝配置

hadoop怎麼安裝配置

發布時間: 2023-06-04 08:24:05

1. 如何在linux下安裝hadoop

如何在linux下安裝hadoop

建議使用自動化部署吧。 這個還是不太難做到哦。 能否看一下my網名呢?幫助搞定一下

一、前期准備:
下載hadoop: :hadoop.apache./core/releases.
:hadoop.apache./mon/releases.
:apache./dyn/closer.cgi/hadoop/core/
:labs.xiaonei./apache-mirror/hadoop/core/hadoop-0.20.1/hadoop-0.20.1.tar.gz
:labs.xiaonei./apache-mirror/hadoop/
二、硬體環境
共有3台機器,均使用的CentOS,java使用的是jdk1.6.0。
三、安裝JAVA6
sudo apt-get install sun-java6-jdk
/etc/environment
開啟之後加入:#中間是以英文的冒號隔開,記得windows中是以英文的分號做為宏沒分隔的
CLASSPATH=.:/usr/local/java/lib
JAVA_HOME=/usr/local/java
三、配置host表
[root@hadoop ~]# vi /etc/hosts
127.0.0.1 localhost
192.168.13.100 namenode
192.168.13.108 datanode1
192.168.13.110 datanode2
[root@test ~]# vi /etc/hosts
127.0.0.1 localhost
192.168.13.100 namenode
192.168.13.108 datanode1
[root@test2 ~]# vi /etc/host
127.0.0.1 localhost
192.168.13.100 namenode
192.168.13.110 datanode2
新增使用者和使用者組
addgroup hadoop
adser hadoop
usermod -a -G hadoop hadoop
passwd hadoop
配置ssh:
服務端:
su hadoop
ssh-keygen -t rsa
cp id_rsa.pub authorized_keys
客戶端
chmod 700 /home/hadoop
chmod 755 /home/hadoop/.ssh
su hadoop
cd /home
mkdir .ssh
服務端:
chmod 644 /home/hadoop/.ssh/authorized_keys
scp authorized_keys datanode1:/home/hadoop/.ssh/
scp authorized_keys datanode2:/home/hadoop/.ssh/
ssh datanode1
ssh datanode2
如果ssh配置好了就會蔽和納出現以下提示棚纖資訊
The authenticity of host [dbrg-2] can't be established.
Key fingerpr is 1024 5f:a0:0b:65:d3:82:df:ab:44:62:6d:98:9c:fe:e9:52.
Are you sure you want to continue connecting (yes/no)?
OpenSSH告訴你它不知道這台主機但是你不用擔心這個問題你是第次登入這台主機鍵入「yes」這將把
這台主機「識別標記」加到「~/.ssh/know_hosts」檔案中第 2次訪問這台主機時候就不會再顯示這條提示信
不過別忘了測試本機sshdbrg-1

mkdir /home/hadoop/HadoopInstall
tar -zxvf hadoop-0.20.1.tar.gz -C /home/hadoop/HadoopInstall/
cd /home/hadoop/HadoopInstall/
ln -s hadoop-0.20.1 hadoop
export JAVA_HOME=/usr/local/java
export CLASSPATH=.:/usr/local/java/lib
export HADOOP_HOME=/home/hadoop/HadoopInstall/hadoop
export HADOOP_CONF_DIR=/home/hadoop/hadoop-conf
export PATH=$HADOOP_HOME/bin:$PATH
cd $HADOOP_HOME/conf/
mkdir /home/hadoop/hadoop-conf
cp hadoop-env.sh core-site.xml hdfs-site.xml mapred-site.xml masters slaves /home/hadoop/hadoop-conf
vi $HADOOP_HOME/hadoop-conf/hadoop-env.sh
# The java implementation to use. Required. --修改成你自己jdk安裝的目錄
export JAVA_HOME=/usr/local/java

export HADOOP_CLASSPATH=.:/usr/local/java/lib
# The maximum amount of heap to use, in MB. Default is 1000.--根據你的記憶體大小調整
export HADOOP_HEAPSIZE=200
vi /home/hadoop/.bashrc
export JAVA_HOME=/usr/local/java
export CLASSPATH=.:/usr/local/java/lib
export HADOOP_HOME=/home/hadoop/HadoopInstall/hadoop
export HADOOP_CONF_DIR=/home/hadoop/hadoop-conf
export PATH=$HADOOP_HOME/bin:$PATH
配置
namenode
#vi $HADOOP_CONF_DIR/slaves
192.168.13.108
192.168.13.110
#vi $HADOOP_CONF_DIR/core-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type=text/xsl href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs:192.168.13.100:9000</value>
</property>
</configuration>
#vi $HADOOP_CONF_DIR/hdfs-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type=text/xsl href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
<description>Default block replication.
The actual number of replications can be specified when the file is created.
The default is used if replication is not specified in create time.
</description>
</property>
</configuration>
#vi $HADOOP_CONF_DIR/mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type=text/xsl href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
<property>
<name>mapred.job.tracker</name>
<value>192.168.13.100:11000</value>
</property>
</configuration>
~
在slave上的配置檔案如下(hdfs-site.xml不需要配置):
[root@test12 conf]# cat core-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type=text/xsl href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs:namenode:9000</value>
</property>
</configuration>
[root@test12 conf]# cat mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type=text/xsl href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>namenode:11000</value>
</property>
</configuration>
啟動
export PATH=$HADOOP_HOME/bin:$PATH
hadoop namenode -format
start-all.sh
停止s-all.sh
在hdfs上建立danchentest資料夾,上傳檔案到此目錄下
$HADOOP_HOME/bin/hadoop fs -mkdir danchentest
$HADOOP_HOME/bin/hadoop fs -put $HADOOP_HOME/README.txt danchentest
cd $HADOOP_HOME
hadoop jar hadoop-0.20.1-examples.jar wordcount /user/hadoop/danchentest/README.txt output1
09/12/21 18:31:44 INFO input.FileInputFormat: Total input paths to process : 1
09/12/21 18:31:45 INFO mapred.JobClient: Running job: job_200912211824_0002
09/12/21 18:31:46 INFO mapred.JobClient: map 0% rece 0%
09/12/21 18:31:53 INFO mapred.JobClient: map 100% rece 0%
09/12/21 18:32:05 INFO mapred.JobClient: map 100% rece 100%
09/12/21 18:32:07 INFO mapred.JobClient: Job plete: job_200912211824_0002
09/12/21 18:32:07 INFO mapred.JobClient: Counters: 17
09/12/21 18:32:07 INFO mapred.JobClient: Job Counters
09/12/21 18:32:07 INFO mapred.JobClient: Launched rece tasks=1
檢視輸出結果檔案,這個檔案在hdfs上
[root@test11 hadoop]# hadoop fs -ls output1
Found 2 items
drwxr-xr-x - root supergroup 0 2009-09-30 16:01 /user/root/output1/_logs
-rw-r--r-- 3 root supergroup 1306 2009-09-30 16:01 /user/root/output1/part-r-00000
[root@test11 hadoop]# hadoop fs -cat output1/part-r-00000
(BIS), 1
(ECCN) 1
檢視hdfs執行狀態,可以通過web介面來訪問:192.168.13.100:50070/dfshealth.jsp;檢視map-rece資訊,
可以通過web介面來訪問:192.168.13.100:50030/jobtracker.jsp;下面是直接命令列看到的結果。
出現08/01/25 16:31:40 INFO ipc.Client: Retrying connect to server: foo.bar./1.1.1.1:53567. Already tried 1 time(s).
的原因是沒有格式化:hadoop namenode -format

如何在windows下安裝hadoop

建議你在windows上安裝linux的虛擬機器,然後在linux上安裝hadoop

1、安裝Cygwin
下載cygwin的setup.exe,雙擊執行:

選擇從Inter安裝:
設定安裝目錄:

設定安裝包目錄:

設定「Inter Connection」的方式,選擇「Direct Connection」:

選擇一個下載站點:
「下一步」之後,可能會彈出下圖的「Setup Alert」對話方塊,直接「確定」即可
在「Select Packages」對話方塊中,必須保證「Net Category」下的「OpenSSL」被安裝:

如果還打算在eclipse 上編譯Hadoop,則還必須安裝「Base Category」下的「sed」:

「Devel Category」下的subversion 建議安裝:

下載並安裝:

當下載完後,會自動進入到「setup」的對話方塊:

在上圖所示的對話方塊中,選中「Create icon on Desk」,以方便直接從桌面上啟動
Cygwin,然後點選「完成」按鈕。至此,Cgywin 已經安裝完成。
2、配置環境變數
需要配置的環境變數包括PATH 和JAVA_HOME:將JDK 的bin 目錄、Cygwin 的bin 目錄
以及Cygwin 的usrin( *** in)目錄都新增到PATH 環境變數中;JAVA_HOME 指向JRE 安裝目錄。
3、windows系統上執行hadoop叢集,偽分散式模式安裝步驟:
①啟動cygwin,解壓hadoop安裝包。通過cygdrive(位於Cygwin根目錄中)可以直接對映到windows下的各個邏輯磁碟分割槽。例如hadoop安裝包放在分割槽D:下,則解壓的命令為$ tar -zxvf /cygdrive/d/hadoop-0.20.2.tar.gz,解壓後可使用ls命令檢視,如下圖:
預設的解壓目錄為使用者根目錄,即D:cygwinhomelsq(使用者帳戶)。
②編輯conf/hadoop-env.sh檔案,將JAVA_HOME變數設定為java的安裝目錄。例如java安裝在目錄C:Program Filesjavajdk1.6.0_13,如果路徑沒空格,直接配置即可。存在空格,需將Program Files縮寫成Progra_1,如下圖:
③依次編輯conf目錄下的core-site.xml、mapred-site.xml和hdfs-site.xml檔案,如下圖:
④安裝配置SSH
點選桌面上的Cygwin圖示,啟動Cygwin,執行ssh-host-config命令,然後按下圖上的選擇輸入:

當提示Do you want to use a different name?輸入yes,這步是配置安裝的sshd服務,以哪個使用者登入,預設是cyg_server這個使用者,這里就不事先新建cyg_server這個使用者,用當前本機的超管本地使用者:chenx,後續根據提示,2次輸入這個賬戶的密碼

出現Host configuration finished. Have fun! 一般安裝順利完成。如下圖:

輸入命令$ start sshd,啟動SSH,如下圖:

註:sshd服務安裝完之後,不會預設啟動,如果啟動報登入失敗,不能啟動,可在服務屬性-Log On視窗手工修改,在前述的過程之中,cygwin不會校驗密碼是否正確,應該只是校驗了2次的輸入是否一致,然後再手工啟動。不知道為什麼,sshd服務如果選擇local system的登入方式,後續會有問題,所以sshd服務最好設定成當前的登入使用者。

⑤配置ssh登入
執行ssh-keygen命令生成金鑰檔案
輸入如下命令:
cd ~/.ssh
ls -l
cat id_rsa.pub >> authorized_keys
完成上述操作後,執行exit命令先退出Cygwin視窗,如果不執行這一步操作,下面的操作可能會遇到錯誤。接下來,重新執行Cygwin,執行ssh localhost命令,在第一次執行ssh localhost時,會有「are you sure you want to continue connection<yes/no>?」提示,輸入yes,然後回車即可。當出現下圖提示,即順利完成該步:

⑥hadoop執行
格式化namenode
開啟cygwin視窗,輸入如下命令:
cd hadoop-0.20.2
mkdir logs
bin/hadoop namenode –format

啟動Hadoop
在Cygwin 中,進入hadoop 的bin 目錄,
執行./start-all.sh 啟動hadoop;
可以執行./hadoop fs -ls /命令,檢視hadoop 的根目錄;
可以執行jps 檢視相關程序;
如下圖:(如果顯示和下圖類似,一般hadoop安裝/啟動成功)

如何在hadoop 環境下安裝hive

不行。 安裝 vm 下載:去官網下 VMware-player-5.0.1-894247.zip 安裝和配置ubanto 下載:去官網下 ubuntu-12.10-desk-i386.iso 開啟vm,載入ubanto iso檔案,進行安裝更新 進入ubanto,如果是第一個進入,則需要設定root的密碼

如何在ubantu環境下安裝hadoop

上apache的hadoop頁下編譯好的包,解壓,配一些檔案就行了 很容易 網上教程很多

如何在 Linux 下安裝 PyCharm

PyCharm 是由 Jetbrains 公司開發的一個跨平台編輯器。如果你之前是在 Windows 環境下進行開發,那麼你會立刻認出 Jetbrains 公司,它就是那個開發了 Resharper 的公司。 這篇文章將討論如何在 Linux 系統上獲取、安裝和執行 PyCharm 。

如何在linux下安裝opencv

新建一個perl,名為bar.pl
內容如下:
#!/usr/bin/perl
while (<>){
chomp;
s/([^-]+) - .*/1/g;
system "apt-get install ".$_;
}
然後apt-cache search opencv | perl bar.pl

2. 如何配置Hadoop環境

資源下載

1、JDK下載:下載鏈接
2、hadoop:下載鏈接
3、下載完成後驗證一下下載,將計算的MD5值與官網的進行對比已驗證安裝包的准確性:

md5sum ./hadoop-2.6.*.tar.gz | tr "a-z" "A-Z" # 計算md5值,並轉化為大寫,方便比較1

一、創建Hadoop用戶

創建hadoop用戶,並分配以用戶名為家目錄/home/hadoop,並將其加入到sudo用戶組,創建好用戶之後,以hadoop用戶登錄:

sudo useradd -m hadoop -s /bin/bash sudo adser hadoop sudo
sudo passwd hadoop # 設置hadoop用戶密碼123

二、安裝JDK、Hadoop及配置環境變數

安裝,解壓JDK到/usr/lib/java/路徑下,Hadoop到/usr/local/etc/hadoop/路徑下:

tar zxf ./hadoop-2.6.*.tar.gz
mv ./hadoop-2.6.* /usr/local/etc/hadoop # 將 /usr/local/etc/hadoop作為Hadoop的安裝路徑12

解壓完成之後,可驗證hadoop的可用性:

cd /usr/local/etc/hadoop
./bin/hadoop version # 查看hadoop的版本信息12

若在此處,會出現類似以下的錯誤信息,則很有可能是該安裝包有問題。

Error: Could not find or load main class org.apache.hadoop.util.VersionInfo1

配置環境,編輯「/etc/profile」文件,在其後添加如下信息:

export HADOOP_HOME=/usr/local/etc/hadoopexport JAVA_HOME=/usr/lib/java/jdk1.8.0_45export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexport PATH=$PATH:${JAVA_HOME}/bin:${JRE_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin12345

使配置的變數生效:

source /etc/profile1

三、測試一下

在此我們可以運行一個簡單的官方Demo:

cd `echo $HADOOP_HOME` # 到hadoop安裝路徑
mkdir ./input
cp ./etc/hadoop/*.xml ./input
hadoop jar ./share/hadoop/maprece/hadoop-maprece-examples-*.jar grep ./input ./output 'dfs[a-z.]+'1234

輸出的結果應該會是:

1 dfsadmin 1

  • 這里有一點需要注意,該Example程序運行時不能已存在output目錄,否則或將無法執行!

  • 四、Hadoop的偽分布式環境搭建

    什麼是偽分布式?Hadoop 偽分布式模式是在一台機器上模擬Hadoop分布式,單機上的分布式並不是真正的分布式,而是使用線程模擬的分布式。分布式和偽分布式這兩種配置也很相似,唯一不同的地方是偽分布式是在一台機器上配置,也就是名位元組點(namenode)和數據節點(datanode)均是同一台機器。

    需要配置的文件有core-site.xml和hdfs-site.xml這兩個文件他們都位於${HADOOP_HOME}/etc/hadoop/文件夾下。
    其中core-site.xml:

  • 1 <?xml version="1.0" encoding="UTF-8"?>

  • 2 <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

  • 3 <!--

  • 4 Licensed ...

  • -->

  • 18

  • 19 <configuration>

  • 20 <property>

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

  • 22 <value>file:/home/hadoop/tmp</value>

  • 23 <description>Abase for other temporary directories.</description>

  • 24 </property>

  • 25 <property>

  • 26 <name>fs.default.name</name>

  • 27 <value>hdfs://master:9000</value>

  • 28 </property>

  • 29 </configuration> 1234567891011121314151617

  • 文件hdfs-site.xml的配置如下:

  • 1 <?xml version="1.0" encoding="UTF-8"?>

  • 2 <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

  • 3 <!--

  • 4 Licensed ...

  • -->

  • 18

  • 19 <configuration>

  • 20 <property>

  • 21 <name>dfs.replication</name>

  • 22 <value>1</value>

  • 23 </property>

  • 24 <property>

  • 25 <name>dfs.namenode.name.dir</name>

  • 26 <value>file:/home/hadoop/tmp/dfs/name</value>

  • 27 </property>

  • 28 <property>

  • 29 <name>dfs.datanode.data.dir</name>

  • 30 <value>file:/home/hadoop/tmp/dfs/data</value>

  • 31 </property>

  • 32 </configuration>

  • 配置完成後,執行格式化命令,使HDFS將制定的目錄進行格式化:

  • hdfs namenode -format1

  • 若格式化成功,在臨近輸出的結尾部分可看到如下信息:

    如果發現並沒有出現如上信息,則使用刷新節點命令進行刷新:

  • hdfs dfsadmin -refreshNodes1

  • 八、HDFS集群實例測試

    依然是之前的那個示例,首先,創建一個數據源文件夾,並添加數據:

  • hdfs dfs -mkdir /input

  • hdfs dfs -put /usr/local/etc/hadoop/etc/hadoop/*.xml /input12

  • 運行maprece示例:

  • hadoop jar /usr/local/etc/hadoop/share/hadoop/maprece/hadoop-maprece-examples-*.jar grep /input /output 'dfs[a-z.]+'1

  • holding…

3. 使用root用戶完成相關配置,安裝hadoop需要配置前置環境

可以使用 root 用戶來完成 Hadoop 的相關配置和安裝,但在此之前,需要確保系統安裝了一些必要的前置環境和軟體。以下是配置 Hadoop 環境的基本步驟:

安裝 Java 運行環境(JRE)或 Java 開發工具包(JDK)。Hadoop 是使用 Java 語言開發的,因此需要安裝 Java 運行環境才能運行。

配置 Java 環境變數。在 Linux 系統中,可以使用 export 命令設置 PATH 和或明戚 JAVA_HOME 環境變數,以便系統能夠識別 Java 運行環境。

下載 Hadoop 的最新版本,例如 Apache Hadoop 2.9.2。

解壓 Hadoop 壓縮包,並將其槐枯放置在某個有讀寫許可權的目錄下。

配置 Hadoop 的環境變數衫陵,以便系統可以找到 Hadoop 的二進制文件。在 Linux 系統中,可以在 .bashrc 文件中添加以下語句:

Copy code
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
配置 Hadoop 的相關文件,如 core-site.xml, hdfs-site.xml, mapred-site.xml, yarn-site.xml,這些文件記錄了 Hadoop 的基本配置信息,例如 NameNode 的地址、DataNode 的地址等等。

格式化 Hadoop 的文件系統。在 Hadoop 安裝目錄中運行以下命令:

Copy code
$HADOOP_HOME/bin/hdfs namenode -format
完成以上步驟後,Hadoop 環境就可以正常運行了,您可以使用 Hadoop 開發應用程序或處理大數據了。需要注意的是,Hadoop 配置和部署比較復雜,需要一定的經驗和技能,建議在操作前先了解相關資料或請有經驗的人進行指導。

4. HADOOP安裝(安裝詳情私)-

2.1 准備

克隆三台虛擬機:hadoop102 hadoop103 hadoop104,

修改克隆虛擬機的靜態 IP:vim /etc/sysconfig/network-scripts/ifcfgens33

修改主機名稱 vim /etc/hostname

配置 Linux 克隆機主機名稱映射 hosts 文件:vim /etc/hosts

reboot

安裝 JDK 前,一定確保提前刪除了虛擬機自帶的 JDK

解壓、配置 JDK 環境變數,測試:java -version

Hadoop 下載地址:https://archive.apache.org/dist/hadoop/common/hadoop-3.1.3/

解壓、將 Hadoop 添加到環境變數

2.2 Hadoop 重要目錄

bin 目錄:存放對 Hadoop 相關服務(hdfs,yarn,mapred)進行操作的腳本

etc 目錄:Hadoop 的配置文件目錄,存放 Hadoop 的配置文件

lib 目錄:存放 Hadoop 的本地庫(對數據進行壓縮解壓縮功能)

sbin 目錄:存放啟動或停止 Hadoop 相關服務的腳本

share 目錄:存放 Hadoop 的依賴 jar 包、文檔、和官方案例

2.3 Hadoop運行模式

Hadoop 運行模式包括:本地模式、偽分布式模式以及完全分布式模式

本地模式:單機運行,只是用來演示一下官方案例。生產環境不用。

偽分布式模式:也是單機運行,但是具備 Hadoop 集群的所有功能,一台伺服器模 擬一個分布式的環境。個別缺錢的公司用來測試,生產環境不用。

完全分布式模式:多台伺服器組成分布式環境。生產環境使用。

完全分布式運行模式(開發重點) 分析:1)准備 3 台客戶機(關閉防火牆、靜態 IP、主機名稱) 2)安裝 JDK 3)配置環境變數 4)安裝 Hadoop 5)配置環境變數 6)配置集群 7)單點啟動 8)配置 ssh 9)群起並測試集群

編寫集群分發腳本 xsync

scp安全拷貝語法:

scp -r $pdir/$fname $user@$host:$pdir/$fname

命令 遞歸 要拷貝的文件路徑/名稱 目的地用戶@主機:目的地路徑/名稱

rsync 遠程同步工具語法:

rsync -av $pdir/$fname $user@$host:$pdir/$fname

命令 選項參數 要拷貝的文件路徑/名稱 目的地用戶@主機:目的地路徑/名稱

rsync 和 scp 區別:用 rsync 做文件的復制要比 scp 的速度快,rsync 只對差異文件做更 新。scp 是把所有文件都復制過去。

rsync 主要用於備份和鏡像。具有速度快、避免復制相同內容和支持符號鏈接的優點。

SSH 無密登錄配置

命令:ssh-keygen -t rsa

然後敲(三個回車),就會生成兩個文件 id_rsa(私鑰)、id_rsa.pub(公鑰)

將公鑰拷貝到要免密登錄的目標機器上:ssh--id hadoop102

2.4 集群安裝

注意

NameNode 和 SecondaryNameNode 不要安裝在同一台伺服器

ResourceManager 也很消耗內存,不要和 NameNode、SecondaryNameNode 配置在 同一台機器上。

Hadoop 配置文件分兩類:默認配置文件和自定義配置文件,只有用戶想修改某一默認 配置值時,才需要修改自定義配置文件,更改相應屬性值

自定義配置文件:core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml 四個配置文件存放在 $HADOOP_HOME/etc/hadoop 這個路徑

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進程

熱點內容
junit源碼下載 發布:2024-03-29 18:00:10 瀏覽:525
本田雅閣壓縮機不工作 發布:2024-03-29 17:59:13 瀏覽:600
溯源碼可以偽造嗎 發布:2024-03-29 17:54:45 瀏覽:56
北京編程傳 發布:2024-03-29 17:54:44 瀏覽:435
編程畫曲線 發布:2024-03-29 17:48:59 瀏覽:59
簡單存儲服務s3 發布:2024-03-29 17:48:46 瀏覽:336
安卓手機的usb功能在哪裡設置 發布:2024-03-29 17:46:27 瀏覽:758
配置文件ini如何寫 發布:2024-03-29 17:31:05 瀏覽:997
如何更改微信密碼修改 發布:2024-03-29 17:24:49 瀏覽:588
探影哪個配置性價比最高 發布:2024-03-29 17:24:08 瀏覽:485