1. 程式人生 > 其它 >Hadoop偽分佈模式部署

Hadoop偽分佈模式部署

技術標籤:hadoophdfsmapreduce大資料

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