折騰了兩天多,終於搞明白怎樣從虛擬機中搭建僞分佈式hadoop,並通過windows中的eclipse連接虛擬機中的hadoop,廢話不多說,下面介紹linux安裝過程。
需要環境:虛擬機VMware,CentOS安裝包,jdk-7u25-linux-i586.rpm,hadoop-2.4.0.tar.gz,xshell
首先下載hadoop2.4.0的安裝包,資源很多,這裏不給出下載地址了
安裝虛擬機後安裝CentOS系統,此處不詳細介紹,說一下虛擬機不管用NAT或橋接方式連接網絡都可以,不會產生影響,但是如果擔心後期動態ip會變導致環境問題,可以使用橋接方式設置靜態IP。
安裝後使用xhell進行連接,安裝rzsz命令,(yum -y install lrzsz)
上傳hadoop-2.4.0.tar.gz ,解壓tar -zxvf hadoop-2.4.0.tar.gz
根據自己的需求移動到對應目錄裏面,我這裏放在/usr/local目錄下面,安裝jdk 並且配置jdk和hadoop環境變量,安裝JDK可以參考JDK安裝
配置環境變量:vi /etc/profile 在最後添加:
export JAVA_HOME=/usr/java/jdk1.7.0_25
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export HADOOP_HOME=/usr/local/hadoop-2.4.0
export PATH=$HADOOP_HOME/bin:$PATH
下面介紹僞分佈式下hadoop幾個配置文件的相關配置:
在hadoop-2.4.0目錄下建立如下幾個文件夾:mkdir hdfs ; mkdir hdfs/name ; mkdir hdfs/data ; mkdir tmp ; mkdir mapred ; mkdir mapred/local ; mkdir mapred/system
進入到配置文件文件夾下(hadoop-2.4.0/etc/hadoop),修改hadoop-env.sh中的JAVA_HOME
# The java implementation to use.
export JAVA_HOME=/usr/java/jdk1.7.0_25
修改core-site.xml添加如下內容:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://127.0.0.1:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop-2.4.0/tmp</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop-2.4.0/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop-2.4.0/dfs/data</value>
</property>
</configuration>
修改hdfs-site.xml添加內容如下:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop-2.4.0/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop-2.4.0/dfs/data</value>
</property>
</configuration>
修改mapred-site.xml(默認沒有這個配置文件,可以拷貝改目錄下的mapred-site.xml.template : cp mapred-site.xml.template mapred-site.xml)內容如下:
<configuration>
<property>
<name>mapreduce.jobtracker.address </name>
<value>127.0.0.1:9001</value>
<final>true</final>
</property>
<property>
<name>mapred.system.dir</name>
<value>file:/usr/local/hadoop-2.4.0/mapred/system</value>
<final>true</final>
</property>
<property>
<name>mapred.local.dir</name>
<value>file:/usr/local/hadoop-2.4.0/mapred/local</value>
<final>true</final>
</property>
</configuration>
修改yarn-site.xml內容如下:
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
OK,到此配置文件初步配置完成,接下來需要設置ssh免密碼登陸,執行命令:ssh-keygen -t rsa 一路回車即可 ,然後運行命令:cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
運行命令 ssh localhost 不會使用密碼直接能夠登陸則成功。
首次運行需要進行hdfs格式化:hdfs namenode -format
注意打印信息,如果有warn則需要斟酌修改,視具體情況而定。
進入sbin文件夾,執行:./start-all.sh
運行啓動後,使用jps命令查看是否將服務啓動成功:
輸入命令:jps
打印結果:
4467 DataNode
6515 Jps
4602 SecondaryNameNode
4363 NameNode
4819 NodeManager
4734 ResourceManager
通過瀏覽器訪問:http://ip_ip:8088 http://ip_ip:50070 http://ip_ip:19888查看相關信息
可以看到啓動成功,到目前爲止,linux端hadoop僞分佈式環境搭建成功。