准备环境:
3 台 linux 虚拟机(Centos6.x64 位)
ip 为:
192.168.111.100
192.168.111.101
192.168.111.102
对应的 hostname 为:
hadoop100
hadoop101
hadoop102
虚拟机基本环境配置:
这三台机器的基本配置参考 Hadoop3.0 单机伪分布安装章节中的虚拟机基本环境配置部分。 注意:除了基本配置之外还需要实现主节点能够免密码登陆到所有从节点,因为从节点上面 的进程是由主节点通过 ssh 远程启动的。
在 hadoop100 这台机器上执行下面命令,可以实现主节点免密码登陆到所有从节点。
[root@hadoop100~]#ssh-copy-id -i hadoop101
[root@hadoop100~]#ssh-copy-id -i hadoop102
在 hadoop100 机器上使用 ssh 命令确认集群免密码登陆是否设置成功,如果可以免密码登陆 进去就说明是没有问题的。
[root@hadoop100~]#ssh hadoop101
[root@hadoop100~]#ssh hadoop101
Hadoop 分布式集群安装:
注意:在这里我们用到了前面安装伪分布集群的机器 hadoop100,所以需要先把之前的伪分 布集群停掉,然后删除/data 目录下的 hadoop_repo 目录和/data/soft 目录下的 hadoop-3.2.0目录,恢复此机器的环境。
下面开始安装 hadoop 分布式集群。
首先在 hadoop100 节点上安装。
1:把 hadoop-3.2.0.tar.gz 安装包上传到 linux 机器的/data/soft 目录下
2:解压 hadoop 安装包
[root@hadoop100~]#cd /data/soft
[root@hadoop100soft]#tar -zxvf hadoop-3.2.0.tar.gz
3:修改 hadoop 相关配置文件
进入配置文件所在目录
[root@hadoop100soft]#cd hadoop-3.2.0/etc/hadoop/
首先修改 hadoop-env.sh 文件,增加环境变量信息
[root@hadoop100hadoop]#vi hadoop-env.sh
export JAVA_HOME=/data/soft/jdk1.8
export HADOOP_LOG_DIR=/data/hadoop_repo/logs/hadoop
修改 core-site.xml 文件,注意 fs.defaultFS 属性中的主机名需要和你配置的主机名保持一致
[root@hadoop100hadoop]#vicore-site.xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop100:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/data/hadoop_repo</value> </property> </configuration>
修改 hdfs-site.xml 文件,把 hdfs 中文件副本的数量设置为 1,因为现在伪分布集群只有一 个节点
[root@hadoop100hadoop]#vihdfs-site.xml <configuration> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>hadoop100:50090</value> </property> </configuration>
修改 mapred-site.xml,设置 mapreduce 使用的资源调度框架
[root@hadoop100hadoop]#vimapred-site.xml <configuration>
<property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
修改 yarn-site.xml,设置 yarn 上支持运行的服务和环境变量白名单
[root@hadoop100hadoop]#vi yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>
JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CL ASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME
</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop100</value>
</property>
</configuration>
修改 workers 文件,增加所有从节点的主机名,一个一行
[root@hadoop100hadoop]#vi workers hadoop101 hadoop102
修改启动脚本 # 修改 start-dfs.sh,stop-dfs.sh 这两个脚本文件,在文件前面增加如下内容
[root@hadoop100hadoop]#cd/data/soft/hadoop-3.2.0/sbin [root@hadoop100sbin]#vistart-dfs.sh HDFS_DATANODE_USER=root HDFS_DATANODE_SECURE_USER=hdfs HDFS_NAMENODE_USER=root HDFS_SECONDARYNAMENODE_USER=root
[root@hadoop100sbin]#vistop-dfs.sh HDFS_DATANODE_USER=root HDFS_DATANODE_SECURE_USER=hdfs HDFS_NAMENODE_USER=root HDFS_SECONDARYNAMENODE_USER=root
修改 start-yarn.sh,stop-yarn.sh 这两个脚本文件,在文件前面增加如下内容
[root@hadoop100sbin]#vistart-yarn.sh YARN_RESOURCEMANAGER_USER=root HADOOP_SECURE_DN_USER=yarn YARN_NODEMANAGER_USER=root
[root@hadoop100sbin]#vistop-yarn.sh YARN_RESOURCEMANAGER_USER=root HADOOP_SECURE_DN_USER=yarn YARN_NODEMANAGER_USER=root
4:把 hadoop100 节点上修改好配置的安装包拷贝到其他两个从节点
[root@hadoop100hadoop]#cd/data/soft/ [root@hadoop100soft]#scp-rqhadoop-3.2.0.tar.gz hadoop101:/data/soft/ [root@hadoop100soft]#scp-rqhadoop-3.2.0.tar.gz hadoop102:/data/soft/
5:格式化 namenode
[root@hadoop100hadoop]# cd/data/soft/hadoop-3.2.0
[root@hadoop100hadoop-3.2.0]# bin/hdfs namenode-format
如果在后面的日志信息中能看到这一行,则说明 namenode 格式化成功。
common.Storage: Storage directory /data/hadoop_repo/dfs/name has been successfully formatted.
6:启动集群,在 hadoop100 节点上执行下面命令
[root@hadoop100hadoop-3.2.0]#sbin/start-all.sh
Starting namenodes on [hadoop100]
Starting datanodes
Starting secondary namenodes [hadoop100]
Starting resourcemanager
Starting nodemanagers
7:验证集群 分别在 3 台机器上执行 jps 命令,进程信息如下所示:
在 hadoop100 节点执行
[root@hadoop100hadoop-3.2.0]#jps
8802 ResourceManager
8572 SecondaryNameNode
8334 NameNode
在 hadoop101 节点执行
[root@hadoop101hadoop-3.2.0]#jps
2229 NodeManager
2124 DataNode
在 hadoop102 节点执行
[root@hadoop102hadoop-3.2.0]# jps
1857 DataNode
1963 NodeManager
至此,hadoop 分布式集群安装成功!
网友评论