Hadoop偽分佈模式部署
Hadoop偽分佈模式部署
一、配置環境
閱讀下文之前,筆者預設Linux主機已安裝 java jdk
1.在/usr/local/src下解壓縮hadoop(假設hadoop壓縮包放在該目錄)
在/usr/local下建立軟連線
ln -sv ./src/hadoop-3.0.3/ ./hadoop
2.修改環境變數
vi /etc/profile
JAVA_HOME=/usr/local/java/jdk1.8.0_161 CLASSPATH=.:$JAVA_HOME/lib.tools.jar PATH=$JAVA_HOME/bin:$PATH export JAVA_HOME CLASSPATH PATH
在PATH行之前增加一行內容
HADOOP_HOME=/usr/local/src/hadoop-3.0.3
修改PATH行,內容如下:
PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
儲存退出
3.重新載入環境變數
source /etc/profile
驗證是否生效
echo $HADOOP_HOME
4.在/root下目錄建立hadoop目錄,再進入hadoop目錄建立data目錄
cd /root
mkdir hadoop
cd hadoop
mkdir data
二、cd /usr/local/hadoop/etc/hadoop,配置檔案(4個.xml結尾和一個.sh結尾檔案需要配置
1.配置hdfs-site.xml
vi hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
2.配置core-site.xml
vi core-site.xml
<property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000/input</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/root/hadoop/data</value> </property>
3.配置mapred-site.xml
vi mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
4.配置yarn-site.xml
vi yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
退出yarn-site.xml,執行命令1 hadoop classpath >>/usr/local/hadoop/etc/hadoop/yarn-site.xml追加內容,
再次編輯yarn-site.xml,增加下面內容,(注:標籤中的內容為命令1追加到yarn-site.xml的內容)
<property>
<name>yarn.application.classpath</name>
<value>/usr/local/src/hadoop-3.0.3/etc/hadoop:/usr/local/src/hadoop-3.0.3/share/hadoop/common/lib/*:/usr/local/src/hadoop-3.0.3/share/hadoop/common/*:/usr/local/src/hadoop-3.0.3/share/hadoop/hdfs:/usr/local/src/hadoop-3.0.3/share/hadoop/hdfs/lib/*:/usr/local/src/hadoop-3.0.3/share/hadoop/hdfs/*:/usr/local/src/hadoop-3.0.3/share/hadoop/mapreduce/lib/*:/usr/local/src/hadoop-3.0.3/share/hadoop/mapreduce/*:/usr/local/src/hadoop-3.0.3/share/hadoop/yarn:/usr/local/src/hadoop-3.0.3/share/hadoop/yarn/lib/*:/usr/local/src/hadoop-3.0.3/share/hadoop/yarn/*</value>
</property>
5.配置hadoop環境變數
vi hadoop-env.sh
export JAVA_HOME=/usr/local/java/jdk1.8.0_161
三、cd /usr/local/hadoop/sbin,配置檔案(4個.sh結尾檔案需要配置)
vi start-dfs.sh
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
vi stop-dfs.sh
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
vi start-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
vi stop-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
四、格式檔案系統,啟動hadoop
任意目錄格式化NameNode
hdfs namenode -format
啟動hadoop
cd /usr/local/hadoop/sbin
./start-all.sh
(注:若上述步驟配置無誤,在執行下面hadoop 執行示例時如果出錯,則需執行以下命令,依次執行。
cd /usr/local/hadoop/sbin
./stop-all.sh
cd /root/hadoop/data
rm -rf *
hdfs namenode -format
cd /usr/local/hadoop/sbin
./start-all.sh
之後再執行示例
)
——-------------------------------------------------------------------------------
五、進入 cd /usr/local/hadoop,執行例項
(1)./bin/hdfs dfs -mkdir -p /user/hadoop
# 在HDFS中建立使用者目錄
(2)./bin/hdfs dfs -mkdir /input
#在HDFS中建立hadoop使用者對應的input目錄,若顯示已存在,則忽略進行下一步
(3)./bin/hdfs dfs -put ./etc/hadoop/*.xml /input
#把本地檔案複製到HDFS中
(4) ./bin/hdfs dfs -ls /input
#檢視檔案列表如下圖
(注:執行下面命令時若顯示output 檔案已存在則執行此命令
hadoop fs -rm -r /output
)
在cd /usr/local/hadoop執行命令執行wordcount示例
./bin/hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar wordcount /input /output
如下圖
檢視執行結果:
./bin/hdfs dfs -ls /output
檢視輸出內容
hadoop fs -text /output/part-r-00000
上圖為輸出檔案列表及輸出內容,示例完成
修改主機名
hostnamectl set-hostname namenode
禁用防火牆
systemctl stop firewalld
systemctl disable firewalld
檢視磁碟使用情況
hadoop dfsadmin -report