基礎環境
sshd配置
目錄:/root/.ssh
整個配置就四個shell
1. 每臺機器操作一次
ssh-keygen -t rsa
生成ssh密鑰,生成的文件如下:
id_rsa
id_rsa.pub
.pub爲公鑰,沒有.pub爲私鑰
2. 每臺機器操作一次
cp id_rsa.pub authorized_keys
authorized_keys不能錯,保留的規定
3. 給每個機器拷一次,分發。
scp id_rsa.pub hadoop262:/root/.ssh/hadoop261.pub
拷貝本機公鑰到hadoop262機器的/root/.ssh目錄下,新文件名hadoop261.pub
4. 加入其它機器的公鑰到本機,就可以不輸入密碼了
cat hadoop261.pub >> authorized_keys
有多少加多少,我的是除id_rsa.pub文件外,其它的xxxxx.pub都是其它機器,全加上;
注意事項:
/etc/hosts的主機映射,對本機的映射,/etc/sysconfig/network裏的本機hostname,只要不衝突,一般不會有問題,怕就怕繞暈了自己,衝突了
我的shell腳本:
/etc/hosts --> 配置
# masterhadoop localhost
192.168.121.218 hadoop261
# salve1hadoop
192.168.121.228 hadoop262
# salve2hadoop
192.168.121.238 hadoop263
127.0.0.1 localhost localhost.localdomain hadoop261
/etc/sysconfig/network --> 配置
NETWORKING=yes
HOSTNAME=hadoop261
GATEWAY=192.168.121.1
ftp 配置
我這裏主要是要上傳工具方便,並不是要做專業的 ftp服務器,所以我只使用root用戶登陸上傳,root用戶只需要把ftp屏蔽的用戶列表去掉root,打開防火牆,關閉selinux即可.
在以下文件一般第一行就是root 使用#註釋掉 其它的不用管。
vim/etc/vsftpd/user_list
vim/etc/vsftpd/ftpusers
運行setup
關閉防火牆,如圖:
用箭頭下翻,回車(enter)確認,進去把*去掉,示不運行了。接着選擇[系統服務] ,一般是最後,把vsftpd前面勾選,如圖:
*示運行,沒有*示未運行,在這個窗體順便把iptables也反選,一般iptables是有*的;
vsftpd勾選可以讓他隨系統啓動
接着關閉selinux:
暫時關閉:
setenforce 0
永遠關閉:
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
getenforce可以獲取當前selinux的狀態:
Disabled狀態爲已經永久關閉
Permissive爲暫時關閉狀態
如果IP配置正確,現在啓動或重啓vsftpd就可以用了,默認vsftpd是不啓動的.
service vsftpd restart 重啓
service vsftpd start 啓動
環境規劃
特別提醒:
在安裝前首先規劃一下主機名,IP,hadoop目錄,java目錄。
解壓文件移動文件(重命名)
java_home
/home/jdk1.7
hadoop home /home/hadoop_app/hadoop-2.6.0
環境變量配置
重複執行在所有機器上
重複vim /etc/profile
exportJAVA_HOME=/home/jdk1.7
exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JRE_HOME/lib/tools.jar:$CLASSPATH
exportPATH=$JAVA_HOME/bin:$PATH
# hadoop
exportHADOOP_HOME=/home/hadoop/hadoop-2.6.0
exportPATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
重複hostname:
vim /etc/hosts
重複執行在所有機器上
# masterhadoop
192.168.121.218 hadoop261
# salve1 hadoop
192.168.121.228 hadoop262
# salve2 hadoop
192.168.121.238 hadoop263
127.0.0.1 localhost localhost.localdomain hadoop262
#::1 localhostlocalhost.localdomain localhost6 localhost6.localdomain6
/etc/sysconfig/network
NETWORKING=yes
HOSTNAME=hadoop262
GATEWAY=192.168.121.1
hadoop配置
core-site.xml
<?xmlversion="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/tmp</value>
<description>Abasefor other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.121.218:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>4096</value>
</property>
</configuration>
hdfs-site.xml
<?xmlversion="1.0" encoding="UTF-8"?>
<?xml-stylesheettype="text/xsl" href="configuration.xsl"?>
<!--
Licensedunder the Apache License, Version 2.0 (the "License");
you maynot use this file except in compliance with the License.
You mayobtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unlessrequired by applicable law or agreed to in writing, software
distributedunder the License is distributed on an "AS IS" BASIS,
WITHOUTWARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See theLicense for the specific language governing permissions and
limitationsunder the License. See accompanying LICENSE file.
-->
<!--Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///home/hadoop_app/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///home/hadoop_app/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<!--
<property>
<name>dfs.nameservices</name>
<value>hadoop-cluster1</value>
</property>
-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>192.168.121.218:50090</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
mapred-site.xml
<?xmlversion="1.0"?>
<?xml-stylesheettype="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<final>true</final>
</property>
<property>
<name>mapreduce.jobtracker.http.address</name>
<value>192.168.121.218:50030</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>192.168.121.218:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>192.168.121.218:19888</value>
</property>
<property>
<name>mapred.job.tracker</name>
<value>http://192.168.121.218:9001</value>
</property>
</configuration>
yarn-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop261</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>192.168.121.218:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>192.168.121.218:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>192.168.121.218:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>192.168.121.218:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>192.168.121.218:8088</value>
</property>
vi hadoop-env.sh 和 yarn-env.sh
在開頭添加如下環境變量,我試過不加報找不到JAVA_HOME的錯
export JAVA_HOME=/home/java/jdk1.7
# Thejava implementation to use.
exportJAVA_HOME=${JAVA_HOME}
其實環境變量已經可以讀了,我還是加上去了
單機完成, 重複執行在所有機器上
可以使用hadoop dfsadmin -report查看一下有沒有報錯
修改slaves
# hadoop261
hadoop262
hadoop263
這裏可以看到,挺簡單,集不集羣,只在於slaves。
省事的配置方法:
在一臺機器上配置完成後,把java和hadoop整體目錄拷到其它機器上按原目錄組織,再加上環境變量即可。
格式化文件系統:
hadoopnamenode -format
如果不格輸入hadoop dfsadmin -report報如下錯:
report:Call From hadoop261/192.168.121.218 to hadoop261:9000 failed on connectionexception: java.net.ConnectException: 拒絕連接; For moredetails see: http://wiki.apache.org/hadoop/ConnectionRefused
驗證安裝:
啓動:
sbin/start-all.sh
啓動完成後輸入:
[root@hadoop261sbin]# jps
56745Jps
56320SecondaryNameNode
56465ResourceManager
56129NameNode
在本機瀏覽輸入地址:
http://192.168.121.218:8088/cluster
結果如圖:
輸入地址:http://192.168.121.218:50070/
Datanode Information
這裏試過使用64 位rhel 6,啓動有問題,又換回64位的hadoop2.6重新整。
第一次使用的hostname配置地址,也報了錯,就全改成IP了
明天繼續wordcount,如有興趣可以進QQ羣208881891進行討論