文章目录
- 一、搭建集群
- 1.1 架构信息
- 1.2 配置文件
- 1.3 修改自定义配置文件
- 1.4 分发配置文件
- 二、启动hadoop集群
- 2.1 启动hdfs
- 2.1.1 添加workers节点
- 2.1.2 格式化namenode
- 2.1.3 启动集群
- 2.2 启动yarn
一、搭建集群
1.1 架构信息
各组件和机器间的对应关系如下表
hadoop100 | hadoop101 | hadoop102 | |
HDFS | NameNode DataNode | DataNode | SecondaryNameNode DataNode |
YARN | NodeManager | Resource Manager NodeManager | NodeManager |
原则上是NameNode和SecondaryNameNode不在一台机器上
;而且ResourceManager消耗资源比较高,放在资源相对充足的hadoop101上。
- 3台机器上分别安装hadoop3.1.3,注意:首先要安装JDK
- 3台机器间配置免密登录(方便分发文件),创建一个分发文件的脚本xsync。这一步可以省略。
1.2 配置文件
- 默认配置文件
- core-default.xml
- hdfs-default.xml
- yarn-default.xml
- mapred-default.xml
官方建议不要在默认配置文件中修改,可以复制他的内容到自定义配置文件
中,然后修改值。
- 自定义配置文件
- 自定义的配置文件都在
hadoop-3.1.3/etc/hadoop/
目录下
- core-site.xml
- hdfs-site.xml
- yarn-site.xml
- mapred-site.xml
1.3 修改自定义配置文件
- core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop100:8020</value>
<description>The name of the default file system. A URI whose
scheme and authority determine the FileSystem implementation. The
uri's scheme determines the config property (fs.SCHEME.impl) naming
the FileSystem implementation class. The uri's authority is used to
determine the host, port, etc. for a filesystem.</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop-3.1.3/data</value>
<description>A base for other temporary directories.</description>
</property>
</configuration>
修改如下:
2. hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop100:9870</value>
<description>
The address and the base port where the dfs namenode web ui will listen on.
</description>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop102:9868</value>
<description>
The secondary namenode http server address and port.
</description>
</property>
</configuration>
3. yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<description>A comma separated list of services where service name should only
contain a-zA-Z0-9_ and can not start with numbers</description>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
<!--<value>mapreduce_shuffle</value>-->
</property>
<property>
<description>The hostname of the RM.</description>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop101</value>
</property>
<property>
<description>Environment variables that containers may override rather than use NodeManager's default.</description>
<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>
</configuration>
4. mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<description>The runtime framework for executing MapReduce jobs.
Can be one of local, classic or yarn.
</description>
</property>
</configuration>
1.4 分发配置文件
- 分发配置文件到另外两台机器上
- 这里使用上节配置的分发脚本xsync,如果不使用xsync,则可以手动复制4个文件到另外两台机器上。
cd /usr/local/hadoop-3.1.3/etc/hadoop/
xsync core-site.xml hdfs-site.xml yarn-site.xml mapred-site.xml
二、启动hadoop集群
2.1 启动hdfs
2.1.1 添加workers节点
三台机器上修改workers
文件,如下:
vi /usr/local/hadoop-3.1.3/etc/hadoop/workers
##和自定义配置文件在相同目录下
##添加集群节点,注意后面不能有空格或者空行
hadoop100
hadoop101
hadoop102
注:如果不想在三台机器上同时修改,可以使用前面的xsync脚本来分发配置。
2.1.2 格式化namenode
- 格式化namenode会产生新的集群ID。
- 在namenode节点上执行
hdfs namenode -format
hdfs namenode -format
会在namenode节点上生成一个data目录和logs目录
。
2.1.3 启动集群
cd /usr/local/hadoop-3.1.3
sbin/start-dfs.sh
碰到问题,参考:root用户启动hadoop-3.1.3报错
启动成功
hdfs还提供了一个web访问方式
hadoop100:9870
如果在界面上Browse the file system
,出现Failed to retrieve data from /webhdfs/v1/?op=LISTSTATUS: Server Error,大概率是因为JDK版本较高。参考Failed to retrieve data from /webhdfs/v1/?op=LISTSTATUS: Server Error解决。
2.2 启动yarn
在ResourceManager那台机器上启动