简单易懂,手把手带小白用VMware虚拟机安装Linux centos7系统
Hadoop集群搭建及配置〇 —— Hadoop组件获取 & 传输文件
Hadoop集群搭建及配置① —— 克隆节点
Hadoop集群搭建及配置② —— 网络IP配置,连接网络
Hadoop集群搭建及配置③ —— 基础环境搭建
Hadoop集群搭建及配置④ —— JDK简介及其安装
Hadoop集群搭建及配置⑤ —— Zookeeper 讲解及安装
Hadoop集群搭建及配置⑥ —— Hadoop组件安装及配置
创建工作目录:
mkdir –p /usr/hadoop
解压 hadoop:
tar -zxvf /home/master/Downloads/hadoop-2.7.3.tar.gz -C /usr/hadoop/
vi /etc/profile
# HADOOP
export HADOOP_HOME=/usr/hadoop/hadoop-2.7.3
export CLASSPATH=$CLASSPATH:$HADOOP_HOME/lib
export PATH=$PATH:$HADOOP_HOME/bin
source /etc/profile
hadoop的各个组件的都是使用XML进行配置,这些文件存放在hadoop的etc/hadoop目录下。
Hadoop配置涉及的文件有7个: core-site.xml 、hadoop-env.sh 、yarn-env.sh 、mapred-site.xml、yarn-site.xml 、slaves 、hdfs site.xml。这些文件都在/usr/hadoop/hadoop-2.7.3/etc/hadoop/目录下,首先要进人该目录,依次修改配置文件如下。
(1) 修改hadoop-env.sh
文件。该文件是Hadoop运行基本环境的配置,需要修改为JDK的实际位置。故在该文件中修改JAVA_ HOME值为本机安装位置。
vi hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_171
(2) 修改 yarn-env.sh
文件。该文件是YARN框架运行环境的配置,同样需要修改JDK所在位置。在该文件中修改JAVA_ HOME值为本机安装位置。
vi yarn-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_171
这个Hadoop的核心配置文件,这里需要配置两个属性: fs.defaultFS 配置了Hadoop的HDFS系统的命名,位置为主机的8020端口,这里需要替换 hdfs://master:8020
中的master,改名称为NameNode所在机器的机器名; hadoop.tmp.dir
配置了Hadoop的临时文件的位置。添加内容如下面所示。
core-site.xml 文件 在
中加入代码!
<property>
<name>fs.default.name</name>
<value>hdfs://master:8020
<description>指定namenode的地址</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/hadoop/hadoop-2.7.3/tmp</value>
<description>用来指定使用hadoop时产生文件的存放目录</description>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
<description>流文件的缓冲区大小为128K</description>
</property>
<property>
<name>fs.checkpoint.period</name>
<value>60</value>
<description>动态检查的间隔时间设置</description>
</property>
<property>
<name>fs.checkpoint.size</name>
<value>67108864</value>
<description>用日志文件大小64M</description>
</property>
该文件为YARN框架的配置,在最开始命名了一个yarn.resourcemanager.hostname
的变量,在后面YARN的相关配置中就可以直接引用该变量了,其他配置保持不变即可。
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>${yarn.resourcemanager.hostname}:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>${yarn.resourcemanager.hostname}:8030</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>${yarn.resourcemanager.hostname}:8088</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.https.address</name>
<value>${yarn.resourcemanager.hostname}:8090</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>${yarn.resourcemanager.hostname}:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>${yarn.resourcemanager.hostname}:8033</value>
</property>
<property>
<name>yarn.nodemanager.local-dirs</name>
<value>/data/hadoop/yarn/local</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.nodemanager.remote-app-log-dir</name>
<value>/data/tmp/logs</value>
</property>
<property>
<name>yarn.log.server.url</name>
<value>http://master:19888/jobhistory/logs/
<description>URL for job history server</description>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>2048</value>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>512</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>4096</value>
</property>
<property>
<name>mapreduce.map.memory.mb</name>
<value>2048</value>
</property>
<property>
<name>mapreduce.reduce.memory.mb</name>
<value>2048</value>
</property>
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>1</value>
</property>
这个是HDFS相关的配置文件,dfs.namenode.name.dir
和dfs.datanode.data.dir
分别指定了NameNode 元数据和DataNode 数据存储位置。
dfs.namenode.secondaryttp-address
配置的是SecondaryNameNode的地址,同样需要注意修改master为实际SecondaryNameNode地址。dfs.replication
配置了文件块的副本数,默认为3个,这里要改为2个。
<property>
<name>dfs.replication</name>
<value>2</value>
<description>缺省的块复制数量</description>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/hadoop/hadoop-2.7.3/hdfs/name</value>
<description>存贮在本地的主节点数据镜像的目录,作为主节点的冗余备份</description>
<final>ture</final>
</property>
<property>
<name>dfs.datenode.date.dir</name>
<value>file:/usr/hadoop/hadoop-2.7.3/hdfs/data</value>
<description>数据节点的块本地存放目录</description>
<final>ture</final>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:50090</value>
<description>secondarynamenode的web端口号</description>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>ture</value>
<description>web访问hdfs</description>
</property>
这个是MapReduce的相关配置,由于Hadoop 2.x使用了YARN框架,所以必须在 mapreduc.framework.name
属性下配置YARN。mapreduce jobhistory.address
和mapreduce.jobhistoryserver.webapp.address
是JobHistoryserver的相关配置,即运行MapReduce任务的日志相关服务,这里同样需要注意修改master为实际服务所在机器的机器名。
hadoop是没有这个文件的,需要将mapred-site.xml.template复制为mapred-site.xml。
cp mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- jobhistory properties -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
修改slaves文件。该文件里面保存有slave节点的信息,在slaves文件里面添加
vi slaves #添加子节点
删除 localhost,添加:
slave1
slave2
设置好Hadoop组件分发给文件给从节点slave
scp -r /usr/hadoop root@slave1:/usr/
scp -r /usr/hadoop root@slave2:/usr/
做完Hadoop的所有配置后,即可执行格式化NameNode操作,该操作会在NameNode所在机器初始化一些 HDFS的相关配置,并且该操作在集群搭建过程中只需执行一次,执行格式化之前可以先配置环境变量。
格式化hdfs:的namenode
hadoop namenode -format
当出现“Exiting with status 0
”的时候,表明格式化成功。
格式化完成之后即可启动集群,启动集群只需要在master节点直接进人Hadoop安装目录,分别执行如下所示的命令即可。
cd SHADOOP_ HOME | |
---|---|
sbin/start-dfs.sh | 启动HDFS相关服务 |
sbin/start-yarn.sh | 启动YARN相关服务 |
sbin/mr jobhistory-daemon.sh start historyserver | /启动日志相关服务 |
cd /usr/hadoop/hadoop-2.7.3
sbin/start-dfs.sh # 启动HDFS相关服务
sbin/start-yarn.sh # 启动YARN相关服务
sbin/mr-jobhistory-daemon.sh start historyserver # 启动日志相关服务JobHistoryServer
sbin/start-all.sh # 启动所有
sbin/stop-dfs.sh # 关闭所有
输入master:50070地址:
192.168.142.128:50070 # 进入hadoop界面
Overview记录了NameNode的启动时间、版本号、编译版本等-些基本信息。
Summary是集群信息,提供了当前集群环境的一些有用信息,从图中可知所有DataNode节点的基本存储信息,例如硬盘大小以及有多少被HDFS使用等-些数据信息,同时还标注了当前集群环境中DataNode的信息,对活动状态的DataNode也专门做了记录。
NameNode Storage提供了NameNode的信息,最后的State标示此节点为活动节点,可正常提供服务。
选择"Utilities" →“Browse the file system
”菜单命令可以查看HDFS上的文件信息。
在浏览器的地址栏输人“http//master:8088",, 即可看到YARN的监控界面。
操作完Hadoop,记得先关闭集群,避免操作不当引起节点挂掉。
master执行:
sbin/stop-all.sh # 关闭所有集群