Hadoop入門-1.配置部署啟動(基於hadoop-2.7.3)
1.準備
1.下載 hadoop-2.5.2.tar.gz 免安裝包到指定的目錄
2.執行命令: tar -zxvf hadoop-2.5.2.tar.gz 解壓目錄
2.配置
1.切換到指定的目錄:
cd $HADOOP_HOME/etc/hadoop
2.對相關的配置檔案進行配置:
hadoop-env.sh
vim hadoop-env.sh
找到:export JAVA_HOME=$JAVA_HOME行,將它註釋掉,用下面的行替代:
export JAVA_HOME=/usr/java/jdk1.7.0_65
這樣做是避免,Hadoop配置檔案中讀不到$JAVA_HOME而報錯。
core-site.xml
<!-- 指定HADOOP所使用的檔案系統schema(URI),HDFS的老大(NameNode)的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://server1:9000</value>
</property>
<!-- 指定hadoop執行時產生檔案的儲存目錄 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop-2.4.1/tmp</value>
</property>
hdfs-site.xml hdfs-default.xml (3)
<!-- 指定HDFS副本的數量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
注:配置到此時,分散式檔案系統已經可以啟動進行讀寫了。
slaves
如果在上面配置的HDFS的副本數不為0 ,則需要在slaves裡面指定好所有的副本主機名
類似: server1
server2
......
mapred-site.xml (mv mapred-site.xml.template mapred-site.xml)
mv mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
<!-- 指定mr執行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
yarn-site.xml
<!-- 指定YARN的老大(ResourceManager)的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>server1</value>
</property>
<!-- reducer獲取資料的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
啟動
1.配置環境變數
vim /etc/proflie
export HADOOP_HOME=/hadoop/hadoop-2.5.2
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
2.格式化
cd $HADOOP_HOME/sbin
執行命令:hdfs namenode -format (或者hadoop namenode -format)
3.啟動指令碼
cd $HADOOP_HOME/sbin
先啟動HDFS
sbin/start-dfs.sh
再啟動YARN
sbin/start-yarn.sh
4.驗證是否啟動成功
使用jps命令驗證
27408 NameNode
28218 Jps
27643 SecondaryNameNode
28066 NodeManager
27803 ResourceManager
27512 DataNode
http://localhost:50070 (HDFS管理介面)
http://localhost:8088 (MR管理介面)
4.配置ssh免登陸
在執行啟動指令碼的時候,系統會提示要輸入密碼驗證,它其實是一個遠端登入啟動指令碼的機制。
通過SSH遠端到你配置的節點上去啟動程序。即便你的節點是在本地,它也是一樣的方式。
因此當節點N多的時候,要N次以上輸入密碼驗證。為了解決這個問題,可以配置SSH免登入,
配置如下:
#生成ssh免登陸金鑰
#進入到我的home目錄
cd ~/.ssh
ssh-keygen -t rsa (四個回車)
執行完這個命令後,會生成兩個檔案id_rsa(私鑰)、id_rsa.pub(公鑰)
將公鑰拷貝到要免密登陸的目標機器上
ssh-copy-id localhost
SSH工作原理和機制圖