一、環境准備
①准備三台虛擬機,配置靜態IP
②先修改主機名(每個節點統一命名規范)
vim /etc/hostname master #重啟生效
配置DNS每個節點
vim /etc/hosts 192.168.60.121 master
192.168.60.122 salve1 192.168.60.123 salve2
永久關閉防火牆
systemctl stop firewalld
systemctl disable firewalld
配置免密登錄
ssh-keygen -t rsa #一路回車即可
cd 到 .ssh
cp id_rsa.pub authorized_keys #生成公鑰
將公鑰拷貝到節點
scp authorized_keys root@slave1:/root/.ssh/
scp authorized_keys root@slave2:/root/.ssh/
登錄到hadoop2主機cd到.ssh
cat id_isa.pub >> authorized_keys #使用cat追加方式
登錄到2號主機重復操作,再將公鑰拷貝到三台主機上
二、配置jdk1.8
將jdk解壓到自定義目錄
vim /etc/profile #添加如下信息
export JAVA_HOME=jdk安裝目錄
export CLASSPATH=$JAVA_HOME/lib/
export PATH=$PATH:JAVA_HOME/bin
再保存執行
#source /etc/profile
驗證
#java -version
三、Hadoop環境配置
解壓並移動到自定義位置
vim /etc/profile export HADOOP_HOME=Hadoop的安裝目錄 export PATH=$PAHT:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbin export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/Hadoop
更新資源使生效
source /etc/profile
首先在hadoop-env.sh、mapred-env.sh、yarn-env.sh文件中指定JDK的路徑
export JAVA_HOME=jdk安裝目錄
配置core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
配置hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.http-address</name>
<value>master:50070</value>
</property>
<property><!--namenode持久存儲名字空間及事務日志的本地文件系統路徑-->
<name>dfs.namenode.name.dir</name>
<value>/usr/local/hadoop/dfs/name</value>
</property>
<property><!--DataNode存放塊數據的本地文件系統路徑-->
<name>dfs.datanode.data.dir</name>
<value>/usr/local/hadoop/dfs/data</value>
</property>
<property><!--數據需要備份的數量,不能大於集群的機器數量,默認為3-->
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
<property>
<name>dfs.namenode.http-address</name>
<value>master:50070</value>
</property>
<property><!--namenode持久存儲名字空間及事務日志的本地文件系統路徑-->
<name>dfs.namenode.name.dir</name>
<value>/usr/local/hadoop/dfs/name</value>
</property>
<property><!--DataNode存放塊數據的本地文件系統路徑-->
<name>dfs.datanode.data.dir</name>
<value>/usr/local/hadoop/dfs/data</value>
</property>
<property><!--數據需要備份的數量,不能大於集群的機器數量,默認為3-->
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
配置yarn-site.xml
<configuration>
<property><!--NodeManager上運行的附屬服務,用於運行mapreduce-->
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property><!--ResourceManager 對外web暴露的地址,可在瀏覽器查看-->
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
</configuration>
<property><!--NodeManager上運行的附屬服務,用於運行mapreduce-->
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property><!--ResourceManager 對外web暴露的地址,可在瀏覽器查看-->
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
</configuration>
配置mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
修改workers文件,刪除localhost,並換成
slave1
slave2
修改文件
$ vim sbin/start-dfs.sh $ vim sbin/stop-dfs.sh 兩處增加以下內容 HDFS_DATANODE_USER=root HDFS_DATANODE_SECURE_USER=hdfs HDFS_NAMENODE_USER=root HDFS_SECONDARYNAMENODE_USER=root 處理2 $ vim sbin/start-yarn.sh $ vim sbin/stop-yarn.sh 兩處增加以下內容 YARN_RESOURCEMANAGER_USER=root HADOOP_SECURE_DN_USER=yarn YARN_NODEMANAGER_USER=root
復制Hadoop文件到節點
scp -r /目的目錄 hadoop2:./目的目錄
Hadoop安裝完成,格式化Namenode
cd到bin目錄./Hdfs namenode -format
啟動Hadoop
cd到sbin下 ./start-all.sh
OVER。。。