1、环境准备:(所有主机)
# 使用hadoop2.7.7
# 准备如下主机,修改/etc/hosts,保证所有主机都可以ping通
192.168.1.60 nn01 # 角色:namenode、secondarynamenode、resourcemanager
192.168.1.61 node1 # 角色:datanode、nodemanager
192.168.1.62 node2 # 角色:datanode、nodemanager
192.168.1.63 node3 # 角色:datanode、nodemanager
# 禁用selinux、关闭防火墙
yum -y install java-1.8.0-openjdk-devel # 安装jdk、jps角色查看工具
2、实现免密登陆:(在nn01上操作)
# hadoop管理节点(nn01)对所有主机(包括本机)都是使用ssh进行操作的
# 因此需要对所有主机(包括本机)实现免密登陆
vim /etc/ssh/ssh_config
Host *
GSSAPIAuthentication yes
StrictHostKeyChecking no # 第一次登陆不需要输入yes
ssh-keygen #生成秘钥
for i in 60 61 62 63
do
ssh-copy-id 192.168.1.$i # 秘钥发送给所有主机
done
3、安装hadoop:(以nn01为例)
# hadoop集群中所有主机配置都一样,只需在一台主机安装配置然后拷贝过去就可以
tar -xf hadoop-2.7.7.tar.gz # 这里使用的是2.7.7版本的hadoop
mv hadoop-2.7.7 /usr/local/hadoop
rpm -ql java-1.8.0-openjdk # 查看jdk安装的目录
vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh # hadoop运行时的环境变量
export JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-2.b14.el7.x86_64/jre" # 通过rpm -ql 查找到的jdk安装的目录,25行。
export HADOOP_CONF_DIR="/usr/local/hadoop/etc/hadoop" # hadoop配置文件目录,33行。
4、Hadoop核心配置文件:(以nn01为例)
# 都放在/usr/local/hadoop/etc/hadoop目录下
①、slaves文件:指明了datanode主机
vim /usr/local/hadoop/etc/hadoop/slaves
node1
node2
node3
②、core-site.xml文件:
vim /usr/local/hadoop/etc/hadoop/core-site.xml
<configuration>
<!-- 核心配置文件 -->
<!-- http://hadoop.apache.org/docs/r2.7.7/hadoop-project-dist/hadoop-common/core-default.xml 找对应参数 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://nn01:9000</value> <!-- nameNode的ip hdfs://nn01:9000 -->
<!-- <description> 使用什么样的存储,file:///表示本地存储,配置伪分布式;hdfs://nameNode的ip </description> -->
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/var/hadoop</value> # 这个目录要自己创建
<!-- <description> hadoop核心数据存储目录,一般是单独的磁盘所挂载的目录 </description> -->
</property>
</configuration>
③、hdfs-site.xml文件:
vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml
<configuration>
<!-- HDFS配置文件 -->
<!-- http://hadoop.apache.org/docs/r2.7.7/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml 找对应参数 -->
<property>
<name>dfs.namenode.http-address</name>
<value>192.168.1.60:50070</value> <!-- nn01:50070 -->
<!-- <description> 声明在哪台机器上启动nameNode </description> -->
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>nn01:50090</value> <!-- 192.168.1.60:50070 -->
<!-- <description> 声明在哪台机器上启动secondaryNameNode </description> -->
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
<!-- <description> 副本策略,数据存几份,3份中有2份备份数据 </description> -->
</property>
</configuration>
④、mapred-site.xml文件:
vim /usr/local/hadoop/etc/hadoop/mapred-site.xml
<configuration>
<!-- Map-Reduce配置文件 -->
<!-- http://hadoop.apache.org/docs/r2.7.7/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml 找对应参数 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<!-- <description> yarn表示集群管理,local表示本地管理 </description> -->
</property>
</configuration>
⑤、yarn-site.xml文件:
vim /usr/local/hadoop/etc/hadoop/yarn-site.xml
<configuration>
<!-- Map-Reduce配置文件 -->
<!-- http://hadoop.apache.org/docs/r2.7.7/hadoop-yarn/hadoop-yarn-common/yarn-default.xml 找对应参数 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>nn01</value>
<!-- <description> resourcemanager节点 </description> -->
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value> <!-- 官方提供的框架 -->
<!-- <description> nodemanager使用什么计算框架,计算框架的名称,问开发人员所使用的框架是什么 </description> -->
</property>
</configuration>
5、将nn01上配置好的hadoop同步到其他主机
for i in node1 node2 node3
do
scp -r /usr/local/hadoop $i:/usr/local
done
6、验证:
# 以下操作在nn01上执行:
cd /usr/local/hadoop
./bin/hdfs namenode -format # 格式化namenode
./sbin/start-dfs.sh # 启动hdfs集群
./sbin/start-yarn.sh # 启动yarn
(./sbin/start-all.sh) # 启动所有
# 在nn01使用jps可以查看到 NameNode、ResourceManager、Jps、SecondaryNameNode
# 在所有node节点上使用jps都可以可以查看到 Jps、DataNode、NodeManager
# 在浏览器内访问如下地址:
http://192.168.1.60:50070/ # namenode web页面(nn01)
http://192.168.1.60:50090/ # secondory namenode web页面(nn01)
http://192.168.1.61:50075/ # datanode web页面(node1,node2,node3)
http://192.168.1.60:8088/ # resourcemanager web页面(nn01)
http://192.168.1.61:8042/ # nodemanager web页面(node1,node2,node3)
Hadoop-完全分布式
最新推荐文章于 2024-10-11 10:12:56 发布