hadoop的單機配置


hadoop單機配置

准備工作

利用vim /etc/sysconfig/network命令修改主機名稱。

Ssh security shell

遠程登錄

登錄遠程服務器

$ ssh user@host

如果本地用戶名與遠程用戶名一致,登錄時可以省略用戶名。

$ ssh host

提示信息

The authenticity of host 'host (12.18.429.21)' can't be established.

  RSA key fingerprint is 98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d.

Are you sure you want to continue connecting (yes/no)?

說明

這段話的意思是,無法確認host主機的真實性,只知道它的公鑰指紋,問你還想繼續連接嗎?

所謂"公鑰指紋",是指公鑰長度較長(這里采用RSA算法,長達1024位),很難比對,所以對其進行MD5計算,將它變成一個128位的指紋。上例中是98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d,再進行比較,就容易多了。

很自然的一個問題就是,用戶怎么知道遠程主機的公鑰指紋應該是多少?回答是沒有好辦法,遠程主機必須在自己的網站上貼出公鑰指紋,以便用戶自行核對。

假定經過風險衡量以后,用戶決定接受這個遠程主機的公鑰。

同意接受遠程主機公鑰

Are you sure you want to continue connecting (yes/no)? yes

系統提示認可

Warning: Permanently added 'host,12.18.429.21' (RSA) to the list of known hosts.

輸入密碼

Password: (enter password)

說明

當完成以上幾步以后,就可以登錄到遠程服務器端了。當遠程主機的公鑰被接受以后,它就會被保存在文件$HOME/.ssh/known_hosts之中。下次再連接這台主機,系統就會認出它的公鑰已經保存在本地了,從而跳過警告部分,直接提示輸入密碼。這樣有一個缺點,就是每一次登錄的時候都要輸入密碼,這樣的操作是比較繁瑣的。

公鑰登錄

 

步驟

1、 機器A發送自己的公鑰到機器B這個時候機器B了機器A公鑰

2、 機器B發送一個隨機的字符串向機器A

3、 機器A利用自己的私鑰把字符串加密

4、 機器A加密后的字符串再次發送給機器B

5、 機器B利用公鑰解密字符串,如果和原來的一樣,則OK。

實現

1、 生成自己的公鑰和私鑰

$ ssh-keygen

2、 把生成的公鑰copy遠程機器上

$ ssh-copy-id user@host

3、 遠程主機的authorized_keys文件

在遠程主機上生成了一個authorized_keys文件,保存公鑰的。

4、當再次訪問的時候就不需要輸入密碼了。

jdk安裝

上傳jdk

 

/home創建一個文件夾app

jdk解壓app

調用tar –zxvf 文件的目錄    的命令把jdk解壓縮在app目錄下

命令解釋:

tar –zxvf  文件的路徑

  f:指定文件的名稱

  z:gz結尾的文件就是用gzip壓縮的結果。與gzip相對的就是gunzip,這個參數的作用就是用來調用gzip

  X:為解開的意思

  Z:詳細報告處理文件的信息

轉到jdkbin目錄下,輸出java命令

[root@localhost bin]# ./java

Usage: java [-options] class [args...]

           (to execute a class)

   or  java [-options] -jar jarfile [args...]

           (to execute a jar file)

where options include:

    -d32          use a 32-bit data model if available

    -d64          use a 64-bit data model if available

    -server       to select the "server" VM

                  The default VM is server.

 

    -cp <class search path of directories and zip/jar files>

    -classpath <class search path of directories and zip/jar files>

                  A : separated list of directories, JAR archives,

                  and ZIP archives to search for class files.

當離開bin這個目錄,輸出java命令

[root@localhost bin]# cd ..

[root@localhost jdk1.7.0_45]# java

bash: java: command not found

[root@localhost jdk1.7.0_45]#

 

上述的內容很簡單:不識別java這個命令

設置環境變量

export JAVA_HOME=/home/app/jdk1.7.0_45/

export PATH=$PATH:$JAVA_HOME/bin

把這兩行配置放入到/etc/profile以后,要做source /etc/profile這樣一個命令。

這樣就設置了環境變量。

Echo命令

[root@localhost /]# echo $JAVA_HOME

/home/app/jdk1.7.0_45/

 

可以利用該命令看環境變量。

默認的配置文件

hadoop-hdfs.jar中,有一個配置文件

Hadoop-default.xml文件

hadoop-common.jar中,有一個配置文件

core-default.xml文件

修改hadoop-env.sh

主要是修改java_home的路徑,在hadoop-env.sh的第27行。

export JAVA_HOME=${JAVA_HOME}修改成具體的路徑

[root@localhost hadoop]# vim hadoop-env.sh

export JAVA_HOME=${JAVA_HOME}àexport JAVA_HOME=/home/app/jdk1.7.0_45/

 

[root@localhost hadoop]# source hadoop-env.sh

 

如果比較難找,利用: set nu命令可以顯示行數

修改core-site.xml

[root@localhost hadoop]# vim core-site.xml

 

原來的內容:

<configuration>

</configuration>

現在的內容:

<configuration>

        <property>

                <name>fs.defaultFS</name>  namenode的名字

                <value>hdfs://zd01:9000</value>  namenode的地址

        </property>

        <property>

                <name>hadoop.tmp.dir</name>  文件存儲的名稱

                <value>/home/app/hadoop-2.6.0/tmp</value>   文件存儲的地址

        </property>

文件存儲路徑

data節點的路徑

 

name節點的路徑

 

 

修改hdfs-site.xml

原來的內容

<configuration>

</configuration>

現在的內容:

<configuration>

        <property>

                <name>dfs.replication</name>  //指的是hdfs的副本的數量,包括自己。

                <value>3</value>

        </property>

</configuration>

修改mapred-site.xml

說明:在/etc/hadoop的目錄下,只有一個mapred-site.xml.template文件,所以必須改名

[root@localhost hadoop]# mv mapred-site.xml.template mapred-site.xml

mapred-site.xml文件中

原來的文件

<configuration>

</configuration>

現在的文件

<configuration>

        <property>  //指明mapreduce運行在yarn

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

                <value>yarn</value>

        </property>

</configuration>

修改yarn-site.xml

原來的值:

<configuration>

 

<!-- Site specific YARN configuration properties -->

 

</configuration>

現在的值:

<configuration>

        <property>

//指定resourcemanager的地址

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

                <value>zd01</value>

        </property>

        <property>

//reduce獲取數據的方式

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

                <value>mapreduce_shuffle</value>

        </property>

</configuration>

修改slaves

存放的是datanode節點的名稱

配置hadoop的環境變量

export HADOOP_HOME=/home/app/hadoop-2.6.0/

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

格式化namenode

操作

hdfs namenode format(Hadoop namenode format  以前的方式)

在格式化的時候,會有這樣的輸出:

Storage directory /tmp/hadoop-root/dfs/name has been successfully formatted

作用

1、 清空namenode目錄下的所有的文件,上圖中的tmp/dfs/name的所有的內容就是要清空的內容

2、 創建一些文件,例如:fsimage,edits文件

啟動hadoop

在/home/app/hadoop-2.6.0/sbin目錄下

[root@localhost sbin]# start-all.sh


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM