本文所使用的Linux發行版本為:CentOS Linux release 7.4.1708 (Core)
hadoop單機版安裝
准備工作
創建用戶
useradd -m hadoop
passwd hadoop
下載安裝包
1.jdk
到官方下載頁面http://www.oracle.com/technetwork/java/javase/downloads/index.html,下載jdk,我下載的版本為jdk-8u151-linux-x64.tar.gz。
2.hadoop安裝包
到hadoop官網下載hadoop的二進制包,我使用的版本為:hadoop-2.7.5.tar.gz。
將jdk和hadoop的包上傳到linux上,路徑為:/home/hadoop。
hadoop安裝及配置
安裝
以hadoop用戶登錄,分別解壓jdk和hadoop的包。
tar -zxvf jdk-8u151-linux-x64.tar.gz
tar -zxvf hadoop-2.7.5.tar.gz
重命名hadoop的目錄
mv hadoop-2.7.5/ hadoop/
hadoop運行環境配置
進入到hadoop的目錄/home/hadoop/hadoop
vi etc/hadoop/hadoop-env.sh
設置jdk的路徑
# The java implementation to use.
export JAVA_HOME=/home/hadoop/jdk1.8.0_151
使用hadoop進行單詞統計
創建輸入文件目錄及測試文件
mkdir input4test
vi input4test/1.txt
hadoop is an open-source software
vi input4test/2.txt
I want to learn hadoop
執行單詞統計操作
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.5.jar wordcount ./input4test ./output4test
查看統計結果
cat output4test/part-r-00000
I 1
an 1
hadoop 2
is 1
learn 1
open-source 1
software 1
to 1
want 1
hdfs相關配置及操作
配置hdfs
進入到hadoop的目錄/home/hadoop/hadoop
修改配置文件etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
修改配置文件etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
設置免密碼登錄
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 0600 ~/.ssh/authorized_keys
hdfs格式化及啟動
- hdfs格式化
bin/hdfs namenode -format
- hdfs啟動
sbin/start-dfs.sh
- 查看hdfs狀態
在瀏覽器中輸入http://IP:50070,可以查看hdfs的狀態。如果50070端口沒有打開,輸入下面命令打開50070端口。
iptables -I INPUT -p tcp --dport 50070 -j ACCEPT
hdfs基本操作
查看文件和文件夾
bin/hadoop dfs -ls -R /
該命令表示以遞歸方式查看根目錄下的所有文件和文件夾。
創建目錄
bin/hadoop dfs -mkdir /input
該命令表示在根目錄下創建input目錄。
上傳文件到hdfs
bin/hadoop hdfs -put input4test/1.txt /input/
bin/hadoop hdfs -put input4test/2.txt /input/
該命令表示將本地input4test/1.txt和2.txt文件上傳到hdfs中的/input目錄下。
查看文件內容
bin/hadoop dfs -cat /input/1.txt
通過YARN調度
配置YARN
修改配置文件etc/hadoop/mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
修改配置文件etc/hadoop/yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
</configuration>
啟動YARN
sbin/start-yarn.sh
查看YARN狀態
在瀏覽器中輸入http://IP:8088,可以查看YARN的狀態。如果8088端口沒有打開,輸入下面命令打開8088端口。
iptables -I INPUT -p tcp --dport 8088 -j ACCEPT
再次執行單詞統計操作
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.5.jar wordcount /input /output
本次執行的輸入和輸出目錄,都是hdfs的目錄。
查看統計結果
bin/hadoop dfs -cat /output/part-r-00000
和之前的結果一樣。
I 1
an 1
hadoop 2
is 1
learn 1
open-source 1
software 1
to 1
want 1