准备工作
首先准备四台虚拟机master01,master02,slave01,slave02,配置下免密,详情参考上一篇博客:
在/opt下新建software,software下新建 base hadoop spark文件夹:base文件下放jdk和scala解压缩的文件夹,hadoop下放hadoop压缩包解压缩的文件夹,注意该文件夹的用户要为root,不是的话用chown -R root:root hadoop313命令修改
在/opt/software/hadoop/hadoop313下新建data文件夹,在data文件夹下新建dfs文件夹,在dfs文件夹下新建name和data文件夹,用来存放hadoop的元数据和实际的数据信息
/opt/software/hadoop/hadoop313/etc/hadoop/workers下写入集群主机的hostname
master01
master02
slave01
slave02
配置文件
cd /opt/software/hadoop/hadoop313/etc/hadoop
vi core-site.xml
<!--配置namenode的地址-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master01:9820</value>
</property>
<!--配置数据存储目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/software/hadoop/hadoop313/data</value>
</property>
<!--配置HDFS网页登录使用的静态用户为root-->
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
</property>
<!--配置root(超级用户)允许通过代理访问的主机节点-->
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<!--配置root(超级用户)允许通过代理用户所属组-->
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
<!--配置root(超级用户)允许通过代理的用户-->
<property>
<name>hadoop.proxyuser.root.user</name>
<value>*</value>
</property>
vi hdfs-site.xml
<!--配置namenode web访问地址-->
<property>
<name>dfs.namenode.http-address</name>
<value>master01:9870</value>
</property>
<!--配置secondary namenode web访问地址-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master02:9868</value>
</property>
<!--配置hdfs副本数量-->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
vi yarn-site.xml
<!--配置mr的执行方式-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!--配置ResourceManager的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master02</value>
</property>
<!--配置环境变量的继承-->
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
<!--配置yarn容器允许分配的最小内存-->
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>512</value>
</property>
<!--配置yarn容器允许分配的最大内存-->
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>1536</value>
</property>
<!--配置yarn容器允许管理的物理内存大小-->
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>1536</value>
</property>
<!--配置关闭yarn对物理内存和虚拟内存的限制检查,
jdk8运行于centos6以上版本会导致虚拟内存过大-->
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<!--配置关闭yarn对物理内存和虚拟内存的限制检查-->
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
<!--开启日志聚集-->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!--配置日志聚集服务器地址-->
<property>
<name>yarn.log.server.url</name>
<value>http://master01:19888/jobhistory/logs</value>
</property>
<!--配置日志保留时间为7天-->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
vi mapred-site.xml
<!--配置mapreduce运行于yarn上:默认为local,也可以指定spark阶段了解的mesos-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!--配置历史服务器地址-->
<property>
<name>mapreduce.jobhistory.address</name>
<value>master02:10020</value>
</property>
<!--配置历史服务器web端地址-->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master02:19888</value>
</property>
在/etc/profile.d文件夹下vi my.sh,写入
#BASE_HOME
export JAVA_HOME=/opt/software/base/jdk180
export SCALA_HOME=/opt/software/base/scala21112
export PATH=$PATH:$JAVA_HOME/bin:$SCALA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#HADOOP_HOME
export HADOOP_HOME=/opt/software/hadoop/hadoop313
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
格式化
hdfs namenode -format
激活环境
source /etc/profile
文件分发
把在master01上配置好的software文件远程拷贝到到其他几个节点上
我是利用自己写的脚本实现分发的
启动服务
master01下执行start-dfs.sh,jps查询服务进程有
2897 DataNode
2727 NameNode
3195 Jps
master02下执行start-yarn.sh,jps查询服务进程有
2450 NodeManager
2125 ResourceManager
2591 Jps
验证
cd /opt/software/hadoop/hadoop313/share/hadoop/mapreduce
执行hadoop jar hadoop-mapreduce-examples-3.1.3.jar pi 1 1 ,结果如果则显示MapReduce成功
待续。。。