Centos 7 搭建 Hadoop3.1教程


准備五台虛擬機分別如下:

        ip       主機名

第一台  192.168.199.100      NameNode

第二台  192.168.199.101  StandbyNameNode

第三台  192.168.199.111    DataNode1

第四台  192.168.199.112    DataNode2

第五台  192.168.199.113    DataNode3

2.修改靜態ip

 

3.hosts解析編輯 vi /etc/hosts

4.主機名對應(每台電腦主機名修改為對應的值)

vi /etc/hostname

修改為對應的值后重啟輸入hostname查看是否生效

5.關閉防火牆和安全策略

vi /etc/selinux/config

6.下載Hadoop3.1和Java1.8到根目錄下

7.分別解壓

8.解壓后刪除壓縮包並重命名(分別重命名為hadoop和jdk方便后期配置)

9.配置java和hadoop的環境變量

vi /etc/profile

在文本最后添加如圖代碼

source /etc/profile

使環境變量生效

10.配置ssh免密登陸

http://www.cnblogs.com/dxdxh/p/8989907.html

在~/.ssh目錄下輸入 ssh-keygen -t rsa然后一直回車后目錄下會生成兩個文件

把五台電腦的id_rsa.pub里的數據復制到同一個文本里改名為authorized_keys然后給每台電腦拷貝一個到~/.ssh目錄下就可以了

11.Hadoop配置文件的修改(重要)

需要修改的文件在/hadoop/etc/hadoop目錄下

第一個core-site.xml 里添加如下 紅色的部分為主機的ip或者主機名之前設置過hosts解析

<configuration>
 <property>
  <name>fs.defaultFS</name>
  <value>hdfs:// NameNode:9000</value>
 </property>
 <property>
  <name>hadoop.tmp.dir</name>
  <value>/hadoop/tmp</value>
 </property>
</configuration>

第二個hadoop-env.sh在里面加入如下代碼

export JAVA_HOME=/jdk
export HADOOP_HOME=/hadoop

第三個hdfs-site.xml 第一個紅色和第二個紅色部分為主機名和備份主機名或者ip都行第三個紅色部分為默認備份幾份


<configuration>
 
 <property>
  <name>dfs.namenode.http-address</name>
  <value> NameNode:50070</value>
 </property>
 <property>
  <name>dfs.namenode.secondary.http-address</name>
  <value> StandbyNameNode:50090</value>
 </property>
 <property>
  <name>dfs.namenode.name.dir</name>
  <value>/hadoop/name</value>
 </property>
 <property>
  <name>dfs.replication</name>
  <value> 2</value>
 </property>
 <property>
  <name>dfs.datanode.data.dir</name>
  <value>/hadoop/data</value>
 </property>
</configuration>
 
第四個mapred-site.xml通知hadoop使用yarn框架
<configuration>
 <property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
 </property>
<property>
     <name>mapreduce.application.classpath</name>
     <value>
   /hadoop/etc/hadoop,
   /hadoop/share/hadoop/common/*,
   /hadoop/share/hadoop/common/lib/*,
   /hadoop/share/hadoop/hdfs/*,
   /hadoop/share/hadoop/hdfs/lib/*,
   /hadoop/share/hadoop/mapreduce/*,
   /hadoop/share/hadoop/mapreduce/lib/*,
   /hadoop/share/hadoop/yarn/*,
   /hadoop/share/hadoop/yarn/lib/*
   </value>
 </property>
</configuration>
 
第五個workers 里面加入DataNode1,DataNode2,DataNode3的ip地址或者主機名
 
第六個yarn-env.sh里加入如下
export JAVA_HOME=/jdk
 
第七個yarn-site.xml加入如下
<configuration>
<!-- Site specific YARN configuration properties -->
 <property>
  <name>yarn.resourcemanager.hostname</name>
  <value> NameNode</value>
 </property>
 <property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
 </property>
 <property>
  <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
  <value>org.apache.hadoop.mapred.ShuffleHandler</value>
 </property>
</configuration>
12.打開主機的/hadoop/sbin/目錄下 
start-all.sh 和 stop-all.sh 頭部加入下面七句代碼
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
 
start-dfs.sh和stop-dfs.sh 頭部加入下面四句代碼
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
 
stop-yarn.sh和start-yarn.sh頭部加入下面三句代碼
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
13.格式化
hdfs namenode -format
主機的hadoop目錄復制到其他所有電腦環境變量也復制到其他所有電腦然后輸入hdfs namenode -format進行格式hadoop后重啟所有電腦后再運行start-all.sh
scp -r /hadoop/ 192.168.199.101:/
scp -r /hadoop/ 192.168.199.111:/
scp -r /hadoop/ 192.168.199.112:/
scp -r /hadoop/ 192.168.199.113:/
scp -r /etc/profile 192.168.199.101:/etc/
scp -r /etc/profile 192.168.199.111:/etc/
scp -r /etc/profile 192.168.199.112:/etc/
scp -r /etc/profile 192.168.199.113:/etc/
hdfs namenode -format
/hadoop/sbin/start-all.sh
 
說明:
所有電腦都要安裝hadoop配置並且相同
所有電腦都要格式化一次hadoop
所有電腦都要裝java環境
最后進入http://192.168.199.100:50070和http://192.168.199.100:8088進入測試是否安裝成功
 
 
常見錯誤解決
1.關於內存溢出
 
 mapred-site.xml 中添加如下代碼
<property>
  <name>mapreduce.map.memory.mb</name>
  <value>4096</value>
 </property>
 <property>
  <name>mapreduce.reduce.memory.mb</name>
  <value>8192</value>
 </property>
 <property>
  <name>mapreduce.map.java.opts</name>
  <value>-Xmx3072m</value>
 </property>
 <property>
  <name>mapreduce.reduce.java.opts</name>
  <value>-Xmx6144m </value>
 </property>
 
2.無法找到或者加載主類
注意檢查 mapred-site.xml下的classpath
<property>
     <name>mapreduce.application.classpath</name>
     <value>
   /hadoop/etc/hadoop,
   /hadoop/share/hadoop/common/*,
   /hadoop/share/hadoop/common/lib/*,
   /hadoop/share/hadoop/hdfs/*,
   /hadoop/share/hadoop/hdfs/lib/*,
   /hadoop/share/hadoop/mapreduce/*,
   /hadoop/share/hadoop/mapreduce/lib/*,
   /hadoop/share/hadoop/yarn/*,
   /hadoop/share/hadoop/yarn/lib/*
   </value>
 </property>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM