hadoop筆記一:環境搭建

1、Linux環境配置

1.這裏準備三臺虛擬機用來搭建hadoop集羣。java

10.118.213.211          secms-tomcat211
10.118.213.212          secms-tomcat212
10.118.213.216          secms-tomcat216node

其中211做爲master。vim

2.安裝JDK,這裏版本爲1.8。tomcat

vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_151
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$PATH:$JAVA_HOME/bin

3.配置hosts文件服務器

vim /etc/hosts
192.168.1.111   master01
192.168.1.112   slaveone02
192.168.1.113   slaveone03

4.創建hadoop帳號ssh

useradd hadoop  建立用戶hadoop
passwd hadoop  給已建立的用戶設置密碼

5.設置ssh免密碼登陸oop

經過hadoop帳號登錄到secms-tomcat211上,在/home/hadoop目錄下執行命令:測試

ssh-keygen -t rsa

屢次回車以後在/home/hadoop/.ssh目錄下產生id_rsa和id_rsa.pub文件。在其餘主機上面使用一樣方式產生祕鑰文件。spa

在secms-tomcat211上面使用以下命令3d

cat id_rsa.pub >> authorized_keys

將id_rsa.pub公鑰內容拷貝到authorized_keys文件中。

登陸其餘主機,將其餘主機的公鑰文件內容都拷貝到secms-tomcat211主機上的authorized_keys文件中。

命令以下:

ssh-copy-id -i secms-tomcat211

查看secms-tomcat211主機上的authorized_keys文件內容

cat authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAwioob4cnpLc+OyqE3i4gX718HNf80c7gQcA+Kpmta4Rk/n/kbmYT83h4XoeMVMBZ9h5/t5uvmetF+/dMIa7DJKz0cTXvwa4XYH0rV7vnL+Kpx57pWbiLNGI1SogG6sp85xlTZ8Se8Fxr3V77to6VoonU5aUa6nWY4SPhCf7iBcSFnnEwC0H98UQpRmajZyYZrenLrlHtGkA1X5fEcTiRGeQsPzkHDQ6Vjkc24HDfLH1ojDLIh+M4CcFiixxyEeTxBLuRHM0DQqPT0oIeT066bnzmPEXLjfHueiTQJqg9lpFxOP+1GUtBHhvgzszRjscH0S9EiRl1ZgBl7tRFZoDKIw== hadoop@secms-tomcat211
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAs/YEWUC5/TIIHEMvD3LlpQXAiBPhX3LIsjl4lKKuLduyzhhiRy93T5htCToldoXgeIzDD8T0/eOg9ATm/MJ2FJ6lS56RpI5eCuq/QKxz0b+ocKsOfnaYEXsx6V4O1x5dgU/5h+yeNR+hLJjyTm5Frh8LKUJYj0kx+WgL37Yv/0WTf9wtdF8htjIu5hupSqXyi7eK/wRqyKzNChG78YMKXCmjJyMML+s1BnOLwcU/rYIiICdDJi8g44C3H8qQMCEQFfVySOvWFHYW2MCpIARC2jaemabYRkgInekNu+EYgKo9HtKbbMVCU9X+tPcxw+NWx/TAtHVbWghIuO2rJJW+Tw== hadoop@secms-tomcat212
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEArsOs0oMen1oUPz6cSZfV79EaMBIJr3P3R6Ju2ooYNFO3qx212Zz1kCtcmIsBs/qLksU1mtak35o4hdR4H4KBWLZ2E6jBj09rDapt0Z6vJsCkTtR+YC/+olrybaGNkRJn5WlzIh+MSZY+6MTlzX/YHrnjJH6D0LV+vALi4MrxtOflBPG+xJTCQ3df0eEIaYFw9xYZDjhsttzJHl6N7KyQf1qYWIEwaN8CmKYhPD1NwP/5xKnRTuEVwiQN5PXkzAw9hgdvkKRUOsDfePxJrkJVpIzktS84IeiwxcefEanqLOmoB+lSCpaJpXfzs7Zew7girFxUE/ORpO64bTRyr2LsNQ== hadoop@secms-tomcat216

受權authorized_keys文件

chmod 600 authorized_keys

將authorized_keys拷貝到secms-tomcat212和secms-tomcat216上面。

scp /home/hadoop/.ssh/authorized_keys secms-tomcat212:/home/hadoop/.ssh/
scp /home/hadoop/.ssh/authorized_keys secms-tomcat216:/home/hadoop/.ssh/

至此,免密碼登陸已經設定完成,注意第一次ssh登陸時須要輸入密碼,再次訪問時便可免密碼登陸。

2、hadoop安裝

1.下載hadoop壓縮包hadoop-2.7.5.tar.gz,拷貝到/home/hadoop/目錄下進行解壓。

2.配置hadoop環境變量

export HADOOP_HOME=/home/hadoop/hadoop-2.7.5
export JAVA_HOME=/usr/java/jdk1.8.0_151
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin

3.建立文件目錄

給Master上面hdfs的NameNode、DataNode及臨時文件。並使用scp命令將新建的文件夾目錄拷貝到其餘主機上面。

/home/hadoop/hdfs/data
/home/hadoop/hdfs/name
/home/hadoop/hdfs/tmp

4.配置slaves文件

slaves文件中指定Datanode的節點

secms-tomcat212
secms-tomcat216

5.配置core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml

core-site.xml

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://secms-tomcat211:8020</value>//這裏配置主節點
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/home/hadoop/hdfs/tmp</value>//運行產生的臨時數據文件存放位置
    </property>
</configuration>

hdfs-site.xml

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>2</value>//備份2分
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/home/hadoop/hdfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/home/hadoop/hdfs/data</value>
    </property>
</configuration>

mapred-site.xml

<configuration>
	<property>
        <name>mapreduce.framework.name</name> //mapreduce使用yarn來調度
        <value>yarn</value>
    </property>
</configuration>

yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>secms-tomcat211</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

將配置文件拷貝到其餘主機上面

//拷貝到secms-tomcat216
scp core-site.xml hadoop@secms-tomcat212:/home/hadoop/hadoop-2.7.5/etc/hadoop/
scp hdfs-site.xml hadoop@secms-tomcat212:/home/hadoop/hadoop-2.7.5/etc/hadoop/
scp mapred-site.xml hadoop@secms-tomcat212:/home/hadoop/hadoop-2.7.5/etc/hadoop/
scp yarn-site.xml hadoop@secms-tomcat212:/home/hadoop/hadoop-2.7.5/etc/hadoop/

//拷貝到secms-tomcat216
scp core-site.xml hadoop@secms-tomcat216:/home/hadoop/hadoop-2.7.5/etc/hadoop/
scp hdfs-site.xml hadoop@secms-tomcat216:/home/hadoop/hadoop-2.7.5/etc/hadoop/
scp mapred-site.xml hadoop@secms-tomcat216:/home/hadoop/hadoop-2.7.5/etc/hadoop/
scp yarn-site.xml  hadoop@secms-tomcat216:/home/hadoop/hadoop-2.7.5/etc/hadoop/

6.修改hadoop-env.sh中jdk路徑

export JAVA_HOME=/usr/java/jdk1.8.0_151

7.關閉主機上面的防火牆

service iptables stop

8.格式化namenode

在secms-tomcat211上面執行

bin/hdfs namenode -format

提示(成功的話,會看到 「successfully formatted」 和 「Exitting with status 0」 的提示,若爲 「Exitting with status 1」 則是出錯)。

9.啓動NameNode 和 DataNode進程

在master節點執行啓動命令:

sbin/start-dfs.sh

執行jps查看啓動狀況

29121 SecondaryNameNode
28914 NameNode
30681 Jps

分別在secms-tomcat2十二、secms-tomcat216執行jps查看啓動狀況

6474 DataNode
8250 Jps

hdfs監控界面:http://10.118.213.211:50070/

10.啓動ResourceManager 和 NodeManager 進程

ResourceManager管理總資源分配
NodeManager管理該臺節點資源

在master上面執行命令:

sbin/start-yarn.sh
sbin/mr-jobhistory-daemon.sh start historyserver  # 開啓歷史服務器,才能在Web中查看任務運行

yarn界面:http://10.118.213.211:8088

注:關閉yarn時執行命令

sbin/stop-yarn.sh
sbin/mr-jobhistory-daemon.sh stop historyserver

若是不想啓動 YARN,務必把配置文件 mapred-site.xml 重命名,改爲 mapred-site.xml.template,
須要用時改回來就行。不然在該配置文件存在,而未開啓 YARN 的狀況下,
運行程序會提示 「Retrying connect to server: 0.0.0.0/0.0.0.0:8032」 的錯誤,
這也是爲什麼該配置文件初始文件名爲 mapred-site.xml.template。

3、測試

1.測試文件

新建測試文件vim words
hello a
world b
hello c
jiafeng b
sean a

2.上傳文件到hdfs中

//上傳命令              //文件路徑       //hdfs中文件路徑
bin/hadoop fs -put /home/hadoop/words /words

3.運行測試文件

//程序所在jar包								//統計詞頻例子  //數據路徑
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.5.jar wordcount /words /words_out (輸出路徑)

4.查看結果

bin/hadoop fs -ls /
bin/hadoop fs -ls /words_out
bin/hadoop fs -cat /words_out/part-r-00000

結果顯示

a    2 b    2 c    1 hello    2 jiafeng    1 sean    1 world    1

相關文章
相關標籤/搜索