大數據 hadoop 環境搭建

1、背景

Hadoop是一個由Apache基金會所開發的分佈式系統基礎架構。html

用戶能夠在不瞭解分佈式底層細節的狀況下,開發分佈式程序。充分利用集羣的威力進行高速運算和存儲。 Hadoop實現了一個分佈式文件系統(Hadoop Distributed File System),簡稱HDFS。HDFS有高容錯性的特色,而且設計用來部署在低廉的(low-cost)硬件上;並且它提供高吞吐量(high throughput)來訪問應用程序的數據,適合那些有着超大數據集(large data set)的應用程序。HDFS放寬了(relax)POSIX的要求,能夠以流的形式訪問(streaming access)文件系統中的數據。java

Hadoop的框架最核心的設計就是:HDFS和MapReduce。HDFS爲海量的數據提供了存儲,則MapReduce爲海量的數據提供了計算。node

Apache hadoop官方網址http://hadoop.apache.org/linux

官方提供的包有兩種:web

一:source包,也就是源碼包要求自已編譯安裝的包apache

二:binary包,32位編譯後的包,能夠直接使用的包。vim

注意:官方只提供32位環境編譯的包,只能運行在32位機器上.生產環境通常是64位操做系統,要求自已編譯源碼包進行安裝。windows

另外下載全部版本網址:http://archive.apache.org/dist/hadoop/瀏覽器

其中http://archive.apache.org/dist這部分是apache開源的全部項目地址,而http://archive.apache.org/dist/hadoop/ 是hadoop項目的地址。服務器

Cloudera

使用下載最多的版本,穩定,有商業支持,在Apache的基礎上打上了一些patch。推薦使用。

 

2、環境搭建

一、linux環境準備

環境:Windows10 , VMware Workstation12, CentOS6

配置VMWare虛擬軟件網卡,保證Windows機器能和虛擬機linux正常通訊

 

點擊VMware快捷方式,右鍵打開文件所在位置 -> 雙擊vmnetcfg.exe -> VMnet1 host-only ->修改subnet ip 設置網段:192.168.101.0 子網掩碼:255.255.255.0 -> apply -> ok

回到windows --> 打開網絡和共享中心 -> 更改適配器設置 -> 右鍵VMnet1 -> 屬性 -> 雙擊IPv4 -> 設置windows的IP:192.168.0.100 子網掩碼:255.255.255.0 -> 點擊肯定

在虛擬軟件上 --My Computer -> 選中虛擬機 -> 右鍵 -> settings -> network adapter -> host only -> ok

修改主機名

vim /etc/sysconfig/network

 

NETWORKING=yes

HOSTNAME=hadoop01

修改配置文件

vim /etc/sysconfig/network-scripts/ifcfg-eth0

說明:若是ifconfig時,顯示的網卡驅動名字不是默認的eth0,以下圖

則能夠經過修改該機器下的文件etc/udev/rules.d/70-persistent-net.rules的內容便可解決

   即把下面的Name爲ETH1的配置信息刪除便可。

修改主機名和IP的映射關係

  vim /etc/hosts

       192.168.0.2    hadoop01

關閉防火牆

#關閉防火牆

              service iptables stop

#關閉防火牆開機啓動

              chkconfig iptables off

重啓

接着在windows系統下C:\Windows\System32\drivers\etc,修改文件權限後修改該文件,增長 本身的主機名和IP,接着在dos界面測試,ping 配置好的虛擬機 主機名,鏈接成功即結束。

----上述是單個主機的配置,集羣則是按照上述的方法給每一個主機進行配置或是直接copy虛擬機,須要注意的則是 主機名和IP不一樣,每一個虛擬機中都要有所有的主機名和IP的映射關係。

二、JDK環境準備

經過VMware Tools 或者 FileZilla 將 windows下的 jdk-7u79-linux-i586.tar.gz copy到 linux系統中

解壓jdk,並把java添加到環境變量中(文件 /etc/profile)

在終端中,輸入命令 jave -version 便可知道是否成功

三、Hadoop環境準備

經過VMware Tools 或者 FileZilla 將 windows下的 hadoop-2.5.0-cdh5.3.6.tar.gz copy到 linux系統中

解壓jdk,並把hadoop添加到環境變量中(文件 /etc/profile)

 

配置hadoop文件,配置完畢以後,遠程拷貝到其餘節點便可。(須要ssh免密碼登陸)

配置(在hadoop目錄下查找文件),配置目錄在官方文檔

   * hdfs

             * hadoop-env.sh

             * core-site.xml

             * hdfs-site.xml

             * slaves

   * yarn

             * yarn-env.sh

             * yarn-site.xml

             * slaves

   * mapredue

             * mapred-env.sh

             * mapred-site.xml

 hadoop-env.sh

 在  # The java implementation to use. 下

export JAVA_HOME=/opt/modules/jdk1.7.0_79

core-site.xml

最下方 添加

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://cdh1:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/app/hadoop-2.5.0-cdh5.3.6/data/tmp</value>
</property>
<property>
<name>fs.trash.interval</name>
<value>420</value>
</property>
</configuration>

hdfs-site.xml

最下方 添加

<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>cdh3:50090</value>
</property>
</configuration>

slaves

cdh1
cdh2
cdh3

yarn-env.sh

在 # some Java parameters 下

export JAVA_HOME=/opt/modules/jdk1.7.0_79

 yarn-site.xml

最下方 添加

<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>cdh2</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>420</value>
</property>
</configuration>

mapred-env.sh

註釋區下方 添加

export JAVA_HOME=/opt/modules/jdk1.7.0_79

mapred-site.xml

最下方 添加

<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>cdh1:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>cdh1:19888</value>
</property>
</configuration>

四、配置ssh免密碼登陸以及集羣時間同步

ssh免密碼登陸

每臺服務器都生成公鑰,合併到authorized_keys後,分發到集羣內各節點 。

[ root@cdh1 .ssh]# cd /root

[ root@cdh1 .ssh]# cd .ssh

[ root@cdh1 .ssh]# ssh-keygen -t rsa

[ root@cdh1 .ssh]# ssh-copy-id cdh1

[ root@cdh1 .ssh]# ssh-copy-id cdh2

[ root@cdh1 .ssh]# ssh-copy-id cdh3

接着就能夠拷貝配置文件到遠程節點中了

[ root@cdh1 app]# scp -r  hadoop-2.5.0-cdh5.3.6/   root@cdh2:/opt/app/

[ root@cdh1 app]# scp -r  hadoop-2.5.0-cdh5.3.6/   root@cdh3:/ opt/app/

時間同步

[ root@cdh1 ]# rpm -qa|grep ntp

[ root@cdh1 ]# vi /etc/ntp.conf

打開是這樣的,而後咱們要修改--

[ root@cdh1 ]# vi /etc/sysconfig/ntpd

     Drop root to id 'ntp:ntp' by default.

     SYNC_HWCLOCK=yes

     OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid -g"

[ root@cdh1 ]# service ntpd status

[ root@cdh1 ]# service ntpd start

[ root@cdh1 ]# chkconfig ntpd on

[ root@cdh2 ]# crontab -e

   0-59/10 * * * * /usr/sbin/ntpdate cdh1

[ root@cdh2 ]# /usr/sbin/ntpdate cdh1

五、集羣測試與應用

格式化namenode(是對namenode進行初始化)

[ root@cdh1 hadoop-2.5.0-cdh5.3.6]# hdfs namenode -format

啓動hadoop

先啓動HDFS

[ root@cdh1 hadoop-2.5.0-cdh5.3.6]# sbin/start-dfs.sh

再啓動YARN –-注意不是同一臺主機

[ root@cdh1 hadoop-2.5.0-cdh5.3.6]# sbin/start-yarn.sh

驗證是否啓動成功

jps或者瀏覽器查看(cdh1 上 https://IP:50070  HDFS管理界面,cdh2上 https://IP:8088 MR管理界面)

cdh1 

NodeManager

NameNode

DataNode

cdh2

NodeManager

DataNode

ResourceManager

cdh3

NodeManager

SecondaryNameNode

DataNode

>>>>>>>>>>>>>>>>>>>>到此配置完成

相關文章
相關標籤/搜索