成功安装hadoop集群

之前学习了一段时间的hadoop,最近想总结一下自己的成果,便用写博客的方式去复习。hadoop入门难就难在搭建集群。初学的开发人员大可不必去研究hadoop安装,可以先往后面学习。所以这里总结hadoop安装步骤供初学者拷贝。

1:hadoop和jdk下载

为了保证之后不出任何因为版本问题,请使用本人选用版本。我选择的jdk1.7和hadoop2.7.2。所以:

首先下载安装包jdk-7u71-linux-i586.tar.gz。

如果不会下载jdk历史版本,请百度搜索“如何下载jdk历史版本”。下载jdk1.7是因为1.7版本以上jdk支持hadoop,选择32位是因为,我之前使用64位后,hadoop安装出现很多错误,spark安装也会出现错误

其次下载安装包hadoop-2.7.2.tar.gz。

进入http://apache.fayea.com/hadoop/common/,点击下载hadoop2.7.2。

2:VMware下安装centOS

下载centOS,我选择的版本是CentOS-6.4-i386-bin-DVD1.iso。

(以上所有工具不会下载者,请加我的百度云好友:鹏少1996)
打开VMware,点击文件->创建虚拟机->下一步->下一步->(找到你的CentOS映像文件后)下一步->输入全名,用户名,密码,确认,这里最好全部用hadoop便于记忆->将虚拟机名称改为hadoop_01,选择一个位置,最好新建一个位置,便于管理如下图。

后面全部默认点击下一步。

后面操作系统便开始安装了。。。。。

如果遇到提示需要按f12,就按f12,进入如下界面,就只要等待即可


出现如下界面点击other,输入root,密码是hadoop


在VMware上点击编辑后点击虚拟网络编辑器






选择图中划线部分,将划线部分设置和我一样,然后点击“NAT设置”-->然后将网关设为192.168.117.2.


进入CentOS,右击屏幕右上角的电脑图标,然后选择Edit Connection






选择IPV4 Settings后选择Method为Manual。
点击add,将address设为192.168.117.41,netmask设为255.255.255.0,gateway设为192.168.117.2,DNSserver设为192.168.117.2。然后关机。

关机后,点击hadoop _01这台虚拟机的网络适配器,选择自定义(U):特定虚拟网络:VMnet8(Net模式)

再次开机


3安装jdk和hadoop

1)安装jdk
1 用鼠标将Windows准备好的jdk安装包直接以拖拉方式拖进hadoop_01的桌面,

2 在hadoop _01桌面右击然后左击open in terminal

3 在终端输入ll,会看见刚刚拖进来的jdk安装包

4 输入cd /root,到达根目录,输入mkdir apps

5 输入cd desktop,到达桌面,输入tar -zxvf jdk-7u71-linux-i586.tar.gz -C /root/apps 解压安装包到/roor/apps

6 输入cd /root/app,输入ll,你会看到解压后的jdk目录,输入mv (现在的jdk目录名)  jdk,将目录名重命名为jdk

7 配置环境变量 :输入vi /etc/profile,进入vim编辑器,按下键盘上的 “i”就可以在这个文件中插入数据,按 键盘上的向下方向键到达文件最低部

    输入

export JAVA_HOME=/root/apps/jdk

export HADOOP_HOME=/root/apps/hadoop

export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

 按下键盘上的esc键,输入 :wq就可以保存并退出编辑(如果想了解vim编辑,可以百度一下)

(为了方便已经将hadoop的环境变量提前配置好)

8输入source /etc/profile 使配置生效, 输入java -version查看是否配置成功。

2)安装hadoop
1 同样的方法将hadoop安装包拖到hadoop_01的桌面。
2 输入cd /root/desktop 到桌面目录,输入tar -zxvf  hadoop-2.7.2.tar.gz -C /root/apps 解压安装包到/roor/apps
3 输入 cd /root/apps ,输入ll会看到hadoop目录  输入  mv    hadoop-2.7.2 hadoop 重命名这个目录
4 cd hadoop/etc/hadoop, 这里是hadoop的配置文件目录,ll 会看见很多配置文件
5接下来修改配置文件即可:
a : vi hadoop-env.sh
将export JAVA_HOME={$JAVA_HOME}改为export JAVA_HOME=/root/apps/jdk (如果这一行前面有"#",将 “#”去掉,因为"#"代表注释 )
b :vi core-site.xml
在<configuration>
</configuration>
中间插入
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop_01:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/root/apps/hadoop/tmp/</value>
</property>

b :vi hdfs-site.xml  同上面一样,配置后如下
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>

c :mv  mapred-site.xml.template   mapred-site.xml 然后vi mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

d:  vi yarn-site.xml

<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop
_ 01</value>
</property>


<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>

vi slaves
将localhost 改为:
hadoop _01
hadoop _02
hadoop _03

到目前为止,hadoop就已经配置好了。

4搭建hadoop集群

1 修改主机名:
vi /etc/sysconfig/network   
将HOSTNAME=localhost.localdomain改为 HOSTNAME=hadoop_01

2修改网络映射:
vi /etc/hosts
在末尾插入:
192.168.117.41 hdp-ha-01
192.168.117.42 hdp-ha-02
192.168.117.43 hdp-ha-03
192.168.117.44 hdp-ha-04
192.168.117.45 hdp-ha-05
192.168.117.46 hdp-ha-06
192.168.117.47 hdp-ha-07

3关闭图形界面:
vi /etc/inittab
将 id:5:initdefault:改为 id:3:initdefault:

4关闭防火墙
service iptables stop

5关机:
halt

7克隆虚拟出hadoop_02和hadoop_03

在Vmware软件上右击hadoop _01 选择 管理- >克隆->下一步->下一步->选择创建完整克隆,下一步->将虚拟机名称改为hadoop_02->完成

同理克隆出一个hadoop _03

8 因为hadoop _02和hadoop_03克隆来的,所以 ,还要修改他们的主机名,和ip:
克隆完成后打开三台虚拟机

9在hadoop_02开机后输入:setup->Network configuration->Device configuration->eth0(eth0)...
将name和Device都改为eth1,将Ip改为192.168.117.42
然后->OK->Save->Save&Quit->quit

10:重启网络
service network restart
11:vi /etc/sysconfig/network

将HOSTNAME=hadoop_01改为HOSTNAME=hadoop_02

12:重启虚拟机:
reboot
13:同9到12将hadoop_03的,ip改为192.168.117.43主机名改为hadoop_03。

14:等hadoop_02和hadoop_03重启完成后,在hadoop _01上配置到三台主机的免密登录

在hadoop_01上输入ssh-keygen后一直默认回车,结束选择后,输入
ssh-copy-id hadoop_01->输入Y->输入密码hadoop
ssh-copy-id hadoop_02->输入Y->输入密码hadoop
ssh-copy-id hadoop_03->输入Y->输入密码hadoop

5完成hadoop集群

1:格式化hdfs
输入hdfs namenode -format

运行成功后

2:输入start-all.sh,就可以启动hdfs和yarn了

谢谢大家












Hadoop集群安装的详细说明文档, 實作七: Hadoop 叢集安裝 前言 您手邊有兩台電腦,假設剛剛操作的電腦為"主機一" ,另一台則為"主機二" 。則稍後的環境如下 • 管理Data的身份 管理Job的身份 "主機一" namenode + datanode jobtracker + tasktracker "主機二" datanode tasktracker 這個實做會架設運作在叢集環境上的Hadoop,因此若是你的電腦還存在著 之前的實做一的環境,請先作step 0,以移除掉之前的設定。 • 確認您"主機一"的 hostname 與 "主機二" 的 hostname,並將下面指令 有 主機一與主機二 的地方作正確的取代 • 維持好習慣,請幫你待會要操作的主機設root密碼 • ~$ sudo passwd 清除所有在實做一作過的環境 在 "主機一" (有操作過 實做一 的電腦)上操作 • ~$ cd ~ ~$ /opt/hadoop/bin/stop-all.sh ~$ rm -rf /tmp/hadoop-hadooper* ~$ sudo rm -rf /opt/hadoop ~$ rm -rf ~/.ssh step 0. 設定機器的ip & hostname 資訊 step 1. 設定兩台機器登入免密碼 請注意我們實驗環境已經把 /etc/ssh/ssh_config裡的StrictHostKeyChecking改成no,下面的指令可以檢查,如果你的設定 不同的話,請修改此檔會比較順。 • $ cat /etc/ssh/ssh_config |grep StrictHostKeyChecking StrictHostKeyChecking no 在"主機一" 上操作 • 接著將key產生並複製到其他node上 • ~$ ssh-keygen -t rsa -f ~/.ssh/id_rsa -P "" ~$ cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys ~$ scp -r ~/.ssh 主機二:~/ 測試看看是否登入免密碼 • ~$ ssh 主機二 ~$ ssh 主機一 ~$ exit ~$ exit ~$ 完成後請登入確認不用輸入密碼,(第一次登入需按 yes ,第二次就可以直接登入到系統),以免日後輸入密碼不隻手軟而 已.... • step 2. 安裝java 為兩台電腦安裝java • "主機一" & "主機二" 都要操作以下指令 ◦ ~$ sudo apt-get purge java-gcj-compat ~$ sudo apt-get install sun-java6-bin sun-java6-jdk sun-java6-jre ~$ ssh 主機二 前言 清除所有在實做一作過的環境 step 0. 設定機器的ip & hostname 資訊 step 1. 設定兩台機器登入免密碼 step 2. 安裝java step 3. 下載安裝Hadoop到"主機一" step 4. 設定 hadoop-env.sh step 5. 設定 hadoop-site.xml step 6. 設定masters及slaves step 7. Hadoop_Home內的資料複製到其他主機上 step 8. 格式化HDFS step 9. 啟動Hadoop step 10. 停止hadoop 練習 页码,1/5 Hadoop_Lab7_018 – Cloud Computing 2011-03-25 http://trac.nchc.org.tw/cloud/wiki/Hadoop_Lab7_018 ~$ sudo apt-get purge java-gcj-compat ~$ sudo apt-get install sun-java6-bin sun-java6-jdk sun-java6-jre ~$ exit step 3. 下載安裝Hadoop到"主機一" 先在"主機一" 上安裝,其他node的安裝等設定好之後在一起作 • ~$ cd /opt /opt$ sudo wget http://ftp.twaren.net/Unix/Web/apache/hadoop/core/hadoop-0.18.3/hadoop-0.18.3.t /opt$ sudo tar zxvf hadoop-0.18.3.tar.gz /opt$ sudo mv hadoop-0.18.3/ hadoop /opt$ sudo chown -R hadooper:hadooper hadoop step 4. 設定 hadoop-env.sh "主機一" 上用gedit 編輯 conf/hadoop-env.sh • /opt$ cd hadoop/ /opt/hadoop$ gedit conf/hadoop-env.sh 將以下資訊貼入 conf/hadoop-env.sh 檔內 export JAVA_HOME=/usr/lib/jvm/java-6-sun export HADOOP_HOME=/opt/hadoop export HADOOP_CONF_DIR=/opt/hadoop/conf export HADOOP_LOG_DIR=/tmp/hadoop/logs export HADOOP_PID_DIR=/tmp/hadoop/pids 注意,在此實做中,我們多設定了HADOOP_PID_DIR及HADOOP_LOG_DIR的參數,並且把值寫入到我們hadooper的家目 錄中,此舉並非完全必要,但一個目的是介紹更多hadoop-env.sh內的參數,另一目的為讓log,pid等常變資料與hadoop家目 錄分離 • step 5. 設定 hadoop-site.xml 第二個設定檔是 hadoop-site.xml,由於官方所提供的範例並無法直接執行,因此我們參考線上文件,做了以下的修改。 • /opt/hadoop# gedit conf/hadoop-site.xml 將以下資料取代掉原本的內容 fs.default.name hdfs://主機一:9000/ mapred.job.tracker 主機一:9001 hadoop.tmp.dir /tmp/hadoop/hadoop-${user.name} 注意! 我們多加了一個參數hadoop.tmp.dir,讓預設的中介資料存放在/tmp/hadoop/ 而不是/tmp/ 下,更多內容可以看 conf/hadoop-default.xml • 注意!fs.default.name = hdfs://主機一:9000/ ;而mapred.job.tracker = 主機一:9001,看出差異了嗎!一個有指 hdfs://,一個沒有,重要!易混淆。 • step 6. 設定masters及slaves 接著我們要編輯哪個主機當namenode, 若有其他主機則為datanodes • 編輯 conf/slaves ◦ 页码,2/5 Hadoop_Lab7_018 – Cloud Computing 2011-03-25 http://trac.nchc.org.tw/cloud/wiki/Hadoop_Lab7_018 /opt/hadoop$ gedit conf/slaves 原本內容只有localhost一行,請刪除此行並換上"主機一" 及"主機二" 的ip 主機一 主機二 step 7. Hadoop_Home內的資料複製到其他主機上 在"主機一" 上對遠端"主機二" 作開資料夾/opt/hadoop及權限設定 • /opt/hadoop$ ssh 主機二 "sudo mkdir /opt/hadoop" /opt/hadoop$ ssh 主機二 "sudo chown -R hadooper:hadooper /opt/hadoop" 複製"主機一" 的hadoop資料夾到"主機二" 上 • /opt/hadoop$ scp -r /opt/hadoop/* 主機二:/opt/hadoop/ step 8. 格式化HDFS 以上我們已經安裝及設定好 Hadoop 的叢集環境,接著讓我們來啟動 Hadoop ,首先還是先格式化hdfs,在"主機一" 上操作 • /opt/hadoop$ bin/hadoop namenode -format 執行畫面如: 09/03/23 20:19:47 INFO dfs.NameNode: STARTUP_MSG: /************************************************************ STARTUP_MSG: Starting NameNode STARTUP_MSG: host = 主機一 STARTUP_MSG: args = [-format] STARTUP_MSG: version = 0.18.3 STARTUP_MSG: build = https://svn.apache.org/repos/asf/hadoop/core/branches/branch-0.18 -r 736 ************************************************************/ 09/03/23 20:19:47 INFO fs.FSNamesystem: fsOwner=hadooper,hadooper 09/03/23 20:19:47 INFO fs.FSNamesystem: supergroup=supergroup 09/03/23 20:19:47 INFO fs.FSNamesystem: isPermissionEnabled=true 09/03/23 20:19:47 INFO dfs.Storage: Image file of size 82 saved in 0 seconds. 09/03/23 20:19:47 INFO dfs.Storage: Storage directory /tmp/hadoop/hadoop-hadooper/dfs/name has b 09/03/23 20:19:47 INFO dfs.NameNode: SHUTDOWN_MSG: /************************************************************ SHUTDOWN_MSG: Shutting down NameNode at 主機一 ************************************************************/ step 9. 啟動Hadoop bin/start-dfs.sh腳本會參照namenode上${HADOOP_CONF_DIR}/slaves文件的內容,在所有列出的slave上啟動 datanode。 • 在"主機一" 上,執行下面的命令啟動HDFS: • /opt/hadoop$ bin/start-dfs.sh http://主機一:50070/ - Hadoop DFS 狀態 • 页码,3/5 Hadoop_Lab7_018 – Cloud Computing 2011-03-25 http://trac.nchc.org.tw/cloud/wiki/Hadoop_Lab7_018 • ps: 然而JobTracker還沒啟動,因此 http://主機一:50030/ 網頁無法顯示 • bin/start-mapred.sh腳本會參照jobtracker上${HADOOP_CONF_DIR}/slaves文件的內容,在所有列出的slave上啟動 tasktracker。 • 在"主機一"執行下面的命令啟動Map/Reduce: • /opt/hadoop$ /opt/hadoop/bin/start-mapred.sh 啟動之後, jobtracker也正常運作囉! • http://主機一:50030/ - Hadoop 管理介面 • 页码,4/5 Hadoop_Lab7_018 – Cloud Computing 2011-03-25 http://trac.nchc.org.tw/cloud/wiki/Hadoop_Lab7_018 • step 10. 停止hadoop 在"主機一" 上,執行下面的命令停止HDFS: • /opt/hadoop$ bin/stop-dfs.sh bin/stop-dfs.sh腳本會參照namenode上${HADOOP_CONF_DIR}/slaves文件的內容,在所有列出的slave上停止 namenode ◦ 在"主機一" 上,執行下面的命令停止Map/Reduce: • /opt/hadoop$ bin/stop-mapred.sh bin/stop-mapred.sh腳本會參照jobtracker上${HADOOP_CONF_DIR}/slaves文件的內容,在所有列出的slave上停 止tasktracker。 ◦ 練習 看 conf/hadoop-default.xml 的更多內容 • 和別人組隊,組成4台node的cluster,其中"主機一" 只當 namenode ,"主機二" 只當 jobtracker,而node3, node4 兩台 電腦則身兼 datanode及tasktracker的工作。 • 页码,5/5 Hadoop_Lab7_018 – Cloud Computing 2011-03-25 http://trac.nchc.org.tw/cloud/wiki/Hadoop_Lab7_018
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值