Hadoop單機版和全分布式(叢集)安裝_linux shell

來源:互聯網
上載者:User

Hadoop,分布式的大資料存放區和計算, 免費開源!有Linux基礎的同學安裝起來比較順風順水,寫幾個設定檔就可以啟動了,本人菜鳥,所以寫的比較詳細。為了方便,本人使用三台的虛擬機器系統是Ubuntu-12。設定虛擬機器的網路連接使用橋接方式,這樣在一個區域網路方便調試。單機和叢集安裝相差不多,先說單機然後補充叢集的幾點配置。

第一步,先安裝工具軟體
編輯器:vim

複製代碼 代碼如下:

sudo apt-get install vim

ssh伺服器: openssh,先安裝ssh是為了使用遠程終端工具(putty或xshell等),這樣管理虛擬機器就方便多了。
複製代碼 代碼如下:

sudo apt-get install openssh-server

第二步,一些基本設定
最好給虛擬機器設定固定IP

複製代碼 代碼如下:

sudo vim /etc/network/interfaces
加入以下內容:
iface eth0 inet static
address 192.168.0.211
gateway 192.168.0.222
netmask 255.255.255.0

修改機器名,我這裡指定的名字是:hadoopmaster ,以後用它做namenode
複製代碼 代碼如下:

sudo vim /etc/hostname

修改hosts,方便應對IP變更,也方便記憶和識別
複製代碼 代碼如下:

sudo vim /etc/hosts
加入內容:
192.168.0.211   hadoopmaster

第三步,添加一個專門為hadoop使用的使用者

複製代碼 代碼如下:

sudo addgroup hadoop
sudo adduser -ingroup hadoop hadoop

設定hadoop使用者的sudo許可權
複製代碼 代碼如下:

sudo vim /etc/sudoers

在 root ALL=(ALL:ALL)
下面加一行 hadoop ALL=(ALL:ALL)
切換到hadoop使用者 su hadoop

第四步,解壓安裝JDK,HADOOP,PIG(順便把PIG也安裝了)

複製代碼 代碼如下:

sudo tar zxvf ./jdk-7-linux-i586.tar.gz  -C /usr/local/jvm/
sudo tar zxvf ./hadoop-1.0.4.tar.gz -C /usr/local/hadoop
sudo tar zxvf ./pig-0.11.1.tar.gz -C /usr/local/pig

修改解壓後的目錄名並且最終路徑為:
複製代碼 代碼如下:

jvm: /usr/local/jvm/jdk7
hadoop: /usr/local/hadoop/hadoop (注意:hadoop所有節點的安裝路徑必須相同)
pig: /usr/local/pig

設定目錄所屬使用者
複製代碼 代碼如下:

sudo chown -R hadoop:hadoop jdk7
sudo chown -R hadoop:hadoop hadoop
sudo chown -R hadoop:hadoop pig

設定環境變數, 編輯~/.bashrc 或 ~/.profile 檔案加入
複製代碼 代碼如下:

export JAVA_HOME=/usr/local/jvm/jdk7
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
export HADOOP_INSTALL=/usr/local/hadoop/hadoop
export PATH=${HADOOP_INSTALL}/bin:$PATH
source ~/.profile 生效

第五步,.ssh無密碼登入本機,也就是說ssh到本機不要求輸入密碼

複製代碼 代碼如下:

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

如果不起作用請修改許可權:
複製代碼 代碼如下:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys 

authorized_keys相當於白名單,id_rsa.pub是公開金鑰,凡是在authorized_keys有要求者機器的公開金鑰時ssh伺服器直接允許存取,無需密碼!

第六步,Hadoop必要設定
所有設定檔案在hadoop/conf目錄下
1、hadoop-env.sh 找到 #export JAVA_HOME 去掉注釋#,並設定實際jdk路徑
2、core-site.xml

複製代碼 代碼如下:

<property>
<name>fs.default.name</name>
<value>hdfs://hadoopmaster:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>

3、mapred-site.xml
複製代碼 代碼如下:

<property>
<name>mapred.job.tracker</name>
<value>hadoopmaster:9001</value>
</property>

4、hdfs-site.xml
複製代碼 代碼如下:

<property>
<name>dfs.name.dir</name>
<value>/usr/local/hadoop/datalog1,/usr/local/hadoop/datalog2</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/usr/local/hadoop/data1,/usr/local/hadoop/data2</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>

5、檔案masters 和 檔案slaves, 單機寫 localhost 即可

第七步,啟動Hadoop
格式化Hadoop的HDFS檔案系統

複製代碼 代碼如下:

hadoop namenode -format

執行Hadoop啟動指令碼,如果是叢集的話在master上執行,其他slave節點Hadoop會通過ssh執行:
複製代碼 代碼如下:

start-all.sh

執行命令 jps 如果顯示有: Namenode,SecondaryNameNode,TaskTracker,DataNode,JobTracker等五個進程表示啟動成功了!

第八步,叢集的配置
所有其他單機的安裝跟上面相同,下面只增加叢集的額外配置!
最好先配置好一台單機,其他的可以通過scp直接複製,路徑也最好相同包括java!
本例的主機列表(設定hosts):


設定ssh,讓master能夠不要密碼登入到其他slaves上,主要用來啟動slaves

複製代碼 代碼如下:

複製hadoopmaster下id_rsa.pub到子結點:
scp ./ssh/id_rsa.pub hadoopnode1:/home/hadoop/.ssh/id_master
scp ./ssh/id_rsa.pub hadoopnode2:/home/hadoop/.ssh/id_master

分別在子結點~/.ssh/目錄下執行:
cat ./id_master >> authorized_keys


masters檔案,添加作為secondarynamenode或namenode的主機名稱,一行一個。
叢集寫master名如:hadoopmaster
slaves檔案,添加作為slave的主機名稱,一行一個。
叢集寫子結點名:如 hadoopnode1、hadoopnode2

Hadoop管理
hadoop啟動後會啟動一個任務管理服務和一個檔案系統管理服務,是兩個基於JETTY的WEB服務,所以可線上通過WEB的方式查看運行情況。
任務管理服務運行在50030連接埠,如 http://127.0.0.1:50030檔案系統管理服務運行在50070連接埠。

參數說明:
1、dfs.name.dir:是NameNode持久儲存名字空間及交易記錄的本地檔案系統路徑。 當這個值是一個逗號分割的目錄列表時,nametable資料將會被複製到所有目錄中做冗餘備份。
2、dfs.data.dir:是DataNode存放塊資料的本地檔案系統路徑,逗號分割的列表。 當這個值是逗號分割的目錄列表時,資料將被儲存在所有目錄下,通常分布在不同裝置上。
3、dfs.replication:是資料需要備份的數量,預設是3,如果此數大於叢集的機器數會出錯。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.