Hadoop完全分布式环境
前提条件
- 三台虚拟机centos01、centos02、centos03【可以先将一台虚拟机配置起来,然后克隆,克隆遇到的网卡问题参考https://blog.csdn.net/eieiei438/article/details/80644261】
分布式结构说明
主机名称 | 角色 | 备注 |
---|---|---|
centos01 | NameNode DataNode ResourceManager NodeManager | 主节点 |
centos02 | DataNode NodeManager | 从节点 |
centos03 | DataNode NodeManager | 从节点 |
环境说明
名称 | 版本 | 备注 |
---|---|---|
宿主系统 | Win7【64位】 | |
VMware | 12 | |
虚拟机镜像 | CentOS-6.5-x86_64-minimal.iso | 下载地址(不同版本):http://vault.centos.org/ |
jdk | jdk-8u65-linux-x64.tar.gz | linux版 |
hadoop | hadoop-2.6.0-cdh5.7.0.tar.gz | linux版 |
软件安装路径
软件名称 | 路径 |
---|---|
jdk | /software/jdk/jdk8 |
hadoop | /software/hadoop/hadoop |
主机名称
- centos01【主】
- centos02【从】
- centos03【从】
主机网卡连接方式
- NAT 静态固定IP
- IP:
- 192.168.66.66【主】
- 192.168.66.77【从】
- 192.168.66.88【从】
免密登录
- 已经免密
- 免密步骤
- ssh-keygen
- cat ~/.ssh/ad_rsa.pub >> authorized_keys
环境关键配置文件
- /etc/hosts
192.168.66.66 centos01 192.168.66.77 centos02 192.168.66.88 centos03
-
/etc/profile
#jdk JAVA_HOME=/software/jdk/jdk8 PATH=$JAVA_HOME/bin:$PATH CLASSPATH=.:$JAVA_HOME/lb/dt.jar:$JAVA_HOME/lib/tools.jar export JAVA_HOME PATH CLASSPATH #hadoop export HADOOP_HOME=/software/hadoop/hadoop export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
- /software/hadoop/hadoop/etc/hadoop/hadoop-env.sh【将export JAVA_HOME=${JAVA_HOME在的地方进行修改}】
。。。 export JAVA_HOME=/software/jdk/jdk8 。。。
-
/software/hadoop/hadoop/etc/hadoop/core-site.xml
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <!--代码操作hdfs的文件地址--> <property> <name>fs.defaultFS</name> <value>hdfs://centos01:8020</value> </property> <!--防止重启之后数据丢失--> <property> <name>hadoop.tmp.dir</name> <value>/software/hadoop/tmp</value> </property> </configuration>
-
/software/hadoop/hadoop/etc/hadoop/hdfs-site.xml 注意副本的数量(默认为3)
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <!--副本--> <property> <name>dfs.replication</name> <value>3</value> </property> <!--NameNode的文件目录--> <property> <name>dfs.namenode.name.dir</name> <value>file:/software/hadoop/tmp/dfs/name</value> </property> <!--DataNode的文件目录--> <property> <name>dfs.namenode.data.dir</name> <value>file:/software/hadoop/tmp/dfs/data</value> </property> </configuration>
- /software/hadoop/hadoop/etc/hadoop/slaves 这里添加节点
centos01 centos02 centos03
-
/software/hadoop/hadoop/etc/hadoop/mapred-site.xml
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <!--mapreduce的框架名称--> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <!--日志历史记录地址--> <property> <name>mapreduce.jobhistory.address</name> <value>centos01:10020</value> <description>MapReduce JobHistory Server IPC host:port</description> </property> <!--日志历史网页地址--> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>centos01:19888</value> <description>MapReduce JobHistory Server Web UI host:port</description> </property> <!--日志存放地址(hdfs服务器上的位置)--> <property> <name>mapreduce.jobhistory.done-dir</name> <value>/history/done</value> </property> <!--日志存放地址(hdfs服务器上的位置)--> <property> <name>mapreduce.jobhistory.intermediate-done-dir</name> <value>/history/done_intermediate</value> </property> </configuration>
-
/software/hadoop/hadoop/etc/hadoop/yarn-site.xml 这里添加resourcemanager
<?xml version="1.0"?> <configuration> <!--nodemanager版本--> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!--resourcemanager--> <property> <name>yarn.resourcemanager.hostname</name> <value>centos01</value> </property> <!--日志启用--> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> </configuration>
启动
- 命令
- sh /software/hadoop/hadoop/sbin/start-all.sh
- jps
- 执行结果