Hadoop筆記五之Hadoop僞分佈安裝

linux 配置

1:ip配置

執行ifconfig命令可以查看ip地址

虛擬機一般是動態分配ip,實際生產環境需要使用靜態ip,在/etc/sysconfig/network-scripts目錄下的ifcfg-eth0文件中修改ip信息,一般這個由專門的網絡管理人員會去修改。另外有可能會有多個網卡eth0,eth1等。

2:關閉防火牆

a:我使用SecureCRT鏈接我的虛擬機,SecureCRT使用SSH鏈接系統端口是22。如果開啓防火牆的話它會禁止使用22端口

c:後期使用java操作一些軟件時也需要關閉防火牆

b:關閉防火牆

使用root用戶登錄

service iptables status 查看防火牆狀態

service iptables start/stop 啓動關閉防火牆

chkconfig iptables off  重新啓動虛擬機時不再默認開啓防火牆,

chkconfig --list|grep iptables 如果全部爲off的話重啓時就不會開啓防火牆,只要有on系統就會開啓防火牆

iptables             0:off 1:off 2:on 3:on 4:on 5:on 6:off

3:修改主機名

我最好修改主機名並建立他與本機ip的對應關係,這樣後期如果ip地址發生變化我們的業務中只需要修改主機名與ip的對應關係即可。

hostname  查看主機名

修改/etc/sysconfig/network文件更改主機名,HOSTNAME=主機名

hostname 主機名   強制生效

4:建立ip主機名映射關係

修改/etc/hosts文件,建立ip與主機名的對應關係,例如:192.168.0.1主機名,執行ping 主機名,看映射是否生效

5:配置java環境變量

A:刪除/usr/local下所有的無用目錄rm -rf *,拷貝jdk-7u79-linux-x64.tar.gz到/usr/local

B:解壓:tar -zxvf jdk-7u79-linux-x64.tar.gz

C:在/etc/profile文件中配置java環境變量

export JAVA_HOME=/usr/local/jdk1.7.0_79

export PATH=.:$JAVA_HOME/bin:$PATH 注意.表示當前目錄

D:source /etc/profile,使剛剛修改環境變量生效

E:最後執行java –version,如下輸出證明成功

[root@shb01 local]# java -version

java version "1.7.0_79"

Java(TM) SE Runtime Environment (build1.7.0_79-b15)

Java HotSpot(TM) 64-Bit Server VM (build24.79-b02, mixed mode)

 

6:SecureCRT連接問題

如果登錄報錯

The server has disconnected with anerror.  Server message reads:

A protocol error occurred. Change ofusername or service not allowed: (shb01,ssh-connection) -> (root,ssh-connection)

需要修改一下配置,選項-> 會話選項 -> 連接 -> SSH2 -> 用戶名(可能沒有配置root,這樣也可以禁用服務器的ROOT登錄了

 

7:windows平臺映射配置

修改C:\Windows\System32\drivers\etc\hosts文件,加入虛擬機ip地址與主機名的映射關係,通過web訪問hadoop時會用到。例如:192.168.79.128 主機名

 

8:環境變量

在/etc/profile/中配置hadoop的目錄便於我們後期使用

Export JAVA_HOME=/usr/local/java_7.9.0

    exportHADOOP_HOME=/usr/local/hadoop-2.6.0

exportPATH=.:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

export PATH=.:$JAVA_HOME/bin:/usr/local/hadoop-2.6.0/bin:/usr/local/hadoop-2.6.0/sbin:$PATH

 

執行source/etc/profile

執行java –version查看jdk是否配置成功

9:ssh

開啓sshd服務

service sshdstatus

service sshd start

 

在啓動hdfs時會提示我們輸入密碼,這樣我們需要配置ssh免登錄

執行如下命令

ssh-keygen -t rsa  產生密鑰,提示時全部回車

ssh-copy-id -i shb01 提示時輸入密碼

ssh  shb01 如果正常看能不能登錄

[root@shb01 hadoop-2.6.0]# ssh shb01

Last login: Wed Aug 10 01:42:12 2016 from 192.168.79.1

[root@shb01 ~]# exit

logout

Connection to shb01 closed.

[root@shb01 hadoop-2.6.0]#

設置完畢後再啓動hdfs後就不需要輸入登錄密碼了

Hdfs僞分佈安裝

1:hadoop目錄結構

a:解壓縮安裝包tar -zxvf hadoop-2.6.0.tar.gz

b:目錄結構

  hadoop程序存放目錄:/usr/local/Hadoop-2.6.0

      etc/hadoop目錄存放的是hadoop的配置文件

bin存放框架組件的管理腳本hdfs,yarn

sbin存放框架本身的命令如start,stop

        lib/native存放操作系統相關的鏈接文件

       share/hadoop存放框架運行需要的jar

   以下目錄需提前建,mkdir–p /usr/local/hadoop_repo/name

  nameNode存儲數據目錄:/usr/local/hadoop_repo/name

  dataNode存儲數據目錄:/usr/local/hadoop_repo/data

  secondaryNameNode存儲目錄:/usr/local/hadoop_repo/namesecondary

   日誌文件目錄:/usr/local/hadoop_repo/logs

   臨時文件目錄:/usr/local/hadoop_repo/tmp

 

2:基本配置文件

   安裝Hadoop主要注意修改以下幾個配置文件,/usr/local/hadoop-2.6.0/etc/hadoop目錄下。

   A:core-site.xml

   <configuration>

    <property>

       <name>fs.defaultFS</name>

       <value>hdfs://shb100:9000</value>

   </property>

   <property>

       <name>hadoop.tmp.dir</name>

       <value>/usr/local/hadoop_repo/tmp</value>   

         </property>

         <!--

   <property>

       <name>fs.trash.interval</name>

       <value>1440</value>

   </property>

         -->

</configuration>

 

B:hdfs-site.xml ,這裏配置namenode,datanode,secondarynamenode,均在一個節點shb100上

<configuration>

    <property>

                   <name>dfs.namenode.name.dir</name>

                   <value>file:///usr/local/hadoop_repo/name</value>

         </property>

         <property>

                   <name>dfs.datanode.data.dir</name>

                   <value>file:///usr/local/hadoop_repo/data</value>

         </property>

         <property>

                   <name>dfs.namenode.checkpoint.dir</name>

                   <value>file:///usr/local/hadoop_repo/namesecondary</value>

         </property>

         <property>

                   <name>dfs.namenode.secondary.http-address</name>

                   <value>shb100:9001</value>

         </property>

         <property>

                   <name>dfs.replication</name>

                   <value>1</value>

         </property>

         <property>

                   <name>dfs.webhdfs.enabled</name>

                   <value>true</value>

         </property>

         <property>

                   <name>dfs.permissions</name>

                   <value>false</value>

         </property>

</configuration>

C:mapred-site.xml

<configuration>

    <property>

                   <name>mapreduce.framework.name</name>

                   <value>yarn</value>

         </property>

         <property>

                   <name>mapreduce.jobhistory.address</name>

                   <value>shb100:10020</value>

         </property>

         <property>

                   <name>mapreduce.jobhistory.webapp.address</name>

                   <value>shb100:19888</value>

         </property>

         <property>

                   <name>yarn.app.mapreduce.am.staging-dir</name>

                   <value>/history</value>

         </property>

         <property>

                   <name>mapreduce.jobhistory.done-dir</name>

                   <value>${yarn.app.mapreduce.am.staging-dir}/history/done</value>

         </property>

         <property>

                   <name>mapreduce.jobhistory.intermediate-done-dir</name>

                   <value>${yarn.app.mapreduce.am.staging-dir}/history/done_intermediate</value>

         </property>

</configuration>

 

D:yarn-site.xml,yarn.resourcemanager.hostname的value改爲我們的主機名,均在shb100上

<configuration>

   <property>

                  <name>yarn.nodemanager.aux-services</name>

                   <value>mapreduce_shuffle</value>

         </property>

         <property>

                   <name>yarn.resourcemanager.hostname</name>

                   <value>shb100</value>

         </property>

         <property>

                   <name>yarn.resourcemanager.address</name>

                   <value>shb100:8032</value>

         </property>

         <property>

                   <name>yarn.resourcemanager.scheduler.address</name>

                   <value>shb100:8030</value>

         </property>

         <property>

                   <name>yarn.resourcemanager.resource-tracker.address</name>

                   <value>shb100:8031</value>

         </property>

         <property>

                   <name>yarn.resourcemanager.admin.address</name>

                   <value>shb100:8033</value>

         </property>

         <property>

                   <name>yarn.resourcemanager.webapp.address</name>

                   <value>shb100:8088</value>

         </property>

         <property>

                   <name>yarn.log-aggregation-enable</name>

                   <value>true</value>

         </property>

</configuration>

 

E:hadoop-env.sh

在文件後面增加,注意不要重複

export JAVA_HOME=/usr/local/jdk1.7.0_79

export HADOOP_LOG_DIR=/usr/local/hadoop_repo/logs

export HADOOP_ROOT_LOGGER=DEBUG,DRFA

F:yarn-env.sh

在文件後面增加

export JAVA_HOME=/usr/local/jdk1.7.0_79

export YARN_LOG_DIR=/usr/local/hadoop_repo/logs

export YARN_ROOT_LOGGER=DEBUG,DRFA

G:slaves,在文件中配置我們的主機名。shb100

H:log4j.properties

   hadoop.log.dir=/usr/local/hadoop_repo/logs

3:hdfs格式化並啓動hdfs

在bin目錄執行hadoopnamenode –format或hdfs namenode -format命令格式化,但是此命令只能執行一次不能多次格式化。如果成功可以在日誌中看到成功的提示。

執行

執行start-dfs.sh啓動hdfs,關閉命令stop-dfs.sh

啓動成功後執行jps查看namenode,datanode,secondarynamenode,resourcemanager,nodemanager是否已經啓動

[root@shb100sbin]# jps

27875 Jps

27365SecondaryNameNode

27123 NameNode

27600NodeManager

27512ResourceManager

27209 DataNode

在logs目錄下可以看到namenode,datanode,secondarynamenode,resourcemanager,nodemanager的啓動日誌

 

4:web訪問

   在瀏覽器地址欄中輸入http://shb01:50070查看是否能夠如下顯示,也可以通過ip訪問。

上面的例子我的主機名是shb100,shb01是之前的截圖但配置方式一樣。


   

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章