1 環境準備java
安裝java-1.6(jdk)node
安裝sshweb
1.1 安裝jdkubuntu
(1)下載安裝jdkssh
在/usr/lib下建立java文件夾,輸入命令:分佈式
cd /usr/lib
mkdir java
輸入命令:oop
sudo apt-get install sun-java6-jdk
下載後執行安裝文件測試
(2)配置環境變量ui
輸入命令:spa
sudo gedit /etc/environment
將以下內容加入其中:
JAVA_HOME=/usr/lib/java/jdk1.6.0_45 PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:
/usr/lib/java/jdk1.6.0_45/bin:/usr/lib/java/jdk1.6.0_45:/home/ylf/hadoop/bin:/home/ylf/hadoop/sbin" CLASSPATH=/usr/lib/java/jdk1.6.0_45/lib:/usr/lib/java/jdk1.6.0_45/jre/lib
其中path部分是在你原有的path變量基礎上加入你所安裝的jdk路徑。
執行以下命令使得配置生效:
source /etc/environment
(3)驗證java是否安裝成功
輸入命令:
java -version
1.2 配置ssh免密碼登陸
輸入命令:
sudo apt-get install ssh
配置能夠無密碼登錄本機:
在當前用戶目錄下新建隱藏文件.ssh,輸入命令:
mkdir .ssh
接下來,輸入命令:
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
這個命令會在.ssh文件夾下建立兩個文件id_dsa及id_dsa.pub,這是一對私鑰和公鑰,而後把id_dsa.pub(公鑰)追加到受權的key裏面去,輸入命令:
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
驗證ssh已安裝成功及無密碼登錄本機,輸入命令:
ssh -version
顯示結果:
Bad escape character 'rsion'.
這顯示ssh已經安裝成功。
登錄ssh,輸入命令:
ssh localhost
第一次登錄可能會詢問是否繼續連接,輸入yes便可,之後登錄直接登進去。
顯示結果:
Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-32-generic x86_64) * Documentation: https://help.ubuntu.com/ Last login: Sun Oct 12 13:27:58 2014 from localhost
2.安裝hadoop2.4.0
2.1 下載hadoop2.4.0
從官網上下載hadoop-2.4.0.tar.gz
2.2 解壓hadoop-2.4.0.tar.gz,並重命名爲hadoop
tar xzvf hadoop-2.4.0.tar.gz
mv hadoop-2.4.0 hadoop
2.3 配置環境變量
sudo gedit /etc/environment
在文件中加入:
HADOOP_HOME=/home/ylf/hadoop PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:
/usr/lib/java/jdk1.6.0_45/bin:/usr/lib/java/jdk1.6.0_45:/home/ylf/hadoop/bin:/home/ylf/hadoop/sbin"
其中path爲原有的path變量中加入hadoop的路徑。
執行以下命令,使之生效:
source /etc/environment
2.4單機模式配置
單機模式不用任何配置就能夠直接進行測試。
運行hadoop自帶的wordcount實例,統計一批文本文件中單詞出現的次數
bin/hadoop jar /usr/local/hadoop2.4.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.4.0.jar wordcount input output
其中input已經上傳至hdfs中,上傳命令:
./bin/hdfs dfs -put input /input
2.5 僞分佈式模式
2.5.1 修改配置文件
在當前用戶目錄下建立文件夾hadoop_tmp,輸入命令:
mkdir hadoop_tmp
配置文件都在安裝目錄的etc/hadoop下
修改hadoop-env.sh
將export JAVA_HOME=${JAVA_HOME}改成你本身安裝的jdk路徑:
export JAVA_HOME=/usr/lib/java/jdk1.6.0_45
修改core-site.xml
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> <final>true</final> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/ylf/hadoop_tmp</value> </property> </configuration>
修改hdfs-site.xml:
<configuration> <property> <name>dfs.namenode.name.dir</name> <value>/home/ylf/hadoop/dfs/namenode</value> <final>true</final> </property> <property> <name>dfs.datanode.data.dir</name> <value>/home/ylf/hadoop/dfs/datanode</value> <final>true</final> </property> <property> <name>dfs.http.address</name> <value>localhost:50070</value> <description> The address and the base port where the dfs namenode web ui will listen on.
If the port is 0 then the server will start on a free port. </description> </property> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property> </configuration>
修改mapred-site.xml
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapred.job.tracker</name> <value>hdfs://localhost:9001</value> </property> <property> <name>mapred.system.dir</name> <value>file:/home/ylf/hadoop/mapred/system</value> <final>true</final> </property> <property> <name>mapred.local.dir</name> <value>file:/home/ylf/hadoop/mapred/local</value> <final>true</final> </property> </configuration>
修改yarn-site.xml:
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
<description>shuffle service that needs to be set for Map Reduce to run</description>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>localhost</value>
<description>hostname of Resource Manager</description>
</property>
</configuration>
修改slaves文件
localhost
默認就是localhost,因此不用修改。
啓動僞分佈式模式:
第一次啓動都要格式化下數據文件,命令:
./bin/hdfs namenode -format
啓動hadoop,命令:
./sbin/start-all.sh
查看,命令:
jps
結果:
表示啓動成功。
2.6 web訪問端口
NameNode | 50070 |
ResourceManager | 8088 |
MapReduce JobHistory Server | 19888 |
訪問http://localhost:50070
訪問http://localhost:8088
其中19888端口要啓動JobHistoryServer進程,啓動命令以下:
./sbin/mr-jobhistory-daemon.sh start historyserver
而後訪問http://localhost:19888
到此爲止,hadoop的僞分佈式安裝配置講解完畢。
hadoop基本命令:
1.查看hdfs 文件夾下文件命令
hadoop fs -ls dir
2.從本地上傳至hdfs
hadoop fs -copyFromLocal input/hello.txt /input/hello.txt
3.從hdfs下載至本地
hadoop fs -copyToLocal /input/hello.txt input/hello.copy.txt
4.建立文件夾
hadoop fs -mkdir testDir
5.查看hdfs文件列表
hadoop fs -lsr /testDir