centos6.5配置Hadoop環境,執行wordcount例子
- 安裝vmware12,centos6.5(還是6.5好,穩定流暢,7介面好看但是虛擬機器裡面卡死了),刪除自帶openjdk下載安裝jdk1.7
- 配置環境變數 vim /etc/profile->最後加上下面這段
export JAVA_HOME=/usr/java/jdk1.7.0_79
exportCLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
執行source/etc/profile使之生效
- 安裝hadoop,下載下載
hadoop-2.x.y.tar.gz這樣型別的,
- 執行tar -zxf ~/下載/hadoop-2.6.0.tar.gz -C /usr/local 釋放hadoop到本地,修改一下名字mv hadoop-2.6.0 hadoop
- 配置環境變數,/etc/profile下面加上這兩行
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
- 修改/usr/local/hadoop/etc/hadoop/下的 core-site.xml和hdfs-site.xml
core-site.xml:
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
</configuration>
- 執行./bin/hdfs namenode -format進行 NameNode的格式化
成功的話,會看到“successfully formatted”和“Exitting with status 0”的提示,若為“Exitting with status 1”則是出錯。
- 接著開啟 NaneNode 和 DataNode 守護程序:執行sbin/start-dfs.sh 開啟守護程序
- 2.x版本之後上傳命令不一樣了:hadoop fs -mkdir input改為hdfs dfs -mkdir -p
- input目錄建立完成之後,開始上傳本地目錄:
上傳失敗顯示:mkdir: Cannot create directory /input. Name node is insafe mode.
通過執行bin/hadoop dfsadmin -safemode leave 來關閉safe mode
- 上傳檔案報錯:WARN hdfs.DFSClient: DataStreamer Exception,原因是防火牆未關閉,執行service iptables stop關閉防火牆
- 若要停止hadoop程序,./sbin/stop_all.sh(注意:要先啟動namenode然後再啟動其他,否則也會報上面的錯)
- hadoop fs -mkdir /input建立input資料夾
- hadoop fs -put 檔案 /input(如:hadoop fs -put 1 /input是將當前目錄的檔案1上傳至hdfs中的/input目錄下)
- hadoop jar hadoop-mapreduce-examples-2.5.1.jar wordcount /input/1 /input/output/1 執行wordcount程式
- hadoop fs -cat /input/output/1檢視生成的檔案