一、配置核心文件
1配置:hadoop-env.sh(在/opt/module/hadoop-3.1.3/etc/hadoop目录下)
从Linux系统中获取jdk的安装路径
echo $JAVA_HOME
#获得jdk的安装路径
切换到cd /opt/module/hadoop-3.1.3/etc/hadoop/路径下
cd /opt/module/hadoop-3.1.3/etc/hadoop/
vi hadoop-env.sh
在hadoop-env.sh中修改JAVA_HOME的路径
export JAVA_HOME=/opt/module/jdk1.8.0_212
注意代码前不要#号,否则后期会报错
2.配置core-site.xml
vi core-site.xml
在configuration中添加如下代码:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop100:9820</value>
</property>
<!-- hadoop.data.dir是自定义的变量,下面的配置文件会用到 -->
<property>
<name>hadoop.data.dir</name>
<value>/opt/module/hadoop-3.1.3/data</value>
</property>
</configuration>
3.配置hdfs文件
vi hdfs-site.xml
在configuration中添加如下代码:
<configuration>
<!-- namenode数据存放位置 -->
<property>
<name>dfs.namenode.name.dir</name>
<value>file://${hadoop.data.dir}/name</value>
</property>
<!-- datanode数据存放位置 -->
<property>
<name>dfs.datanode.data.dir</name>
<value>file://${hadoop.data.dir}/data</value>
</property>
<!-- secondary namenode数据存放位置 -->
<property>
<name>dfs.namenode.checkpoint.dir</name>
<value>file://${hadoop.data.dir}/namesecondary</value>
</property>
<!-- datanode重启超时时间是30s,解决兼容性问题,跳过 -->
<property>
<name>dfs.client.datanode-restart.timeout</name>
<value>30</value>
</property>
<!-- 设置web端访问namenode的地址 -->
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop100:9870</value>
</property>
<!-- 设置web端访问secondary namenode的地址 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop102:9868</value>
</property>
</configuration>
4.配置yarn文件
vi yarn-site.xml
在configuration中添加如下代码:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop101</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>
</configuration>
5.配置mapreduce文件
vi mapred-site.xml
在configuration中添加如下代码:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
在配置成功后,需要去克隆下我们的虚拟机,因为是建立在配置好的情况下,所以后期我们连接moba就不用进行集群分发这个过程了。
6.分布式集群的格式化
格式化之前要把hadoop安装目录下的data目录和log目录都移除(需要用的服务器上都要删除)
cd /opt/module/hadoop-3.1.3
#切换到此目录下将data和logs文件删掉,
rm -rf data
rm -rf logs
格式化namenode,因为namenode只在hadoop100上运行,所以只在100上格式化就可以。
hdfs namenode -format
7.启动进程
Hadoop100 | Hadoop101 | Hadoop102 | |
HDFS | Namenode Datanode | Datanode | Secondary Namenode |
YARN | nodemanager | ResourceManger nodemanager | nodemanager |
启动hdfs相关
hdfs --daemon start namenode
hdfs --daemon start datanode
启动yarn相关
yarn --daemon start resourcemanager
yarn --daemon start nodemanage
二、ssh免密登录
在每个节点生成公钥和私钥,并将公钥和私钥拷贝到其他两个目标机器上
1.在Hadoop100上生成公钥和私钥
ssh-keygen -t rsa
#按三下回车键
出现密钥直接copy就行
将Hadoop100的公钥拷贝到其他两个目标机器上
ssh-copy-id hadoop100 输入密码,回车
ssh-copy-id hadoop101 输入密码,回车
ssh-copy-id hadoop102 输入密码,回车
2.在Hadoop101上生成公钥和私钥
ssh-keygen -t rsa
#按三下回车键
将Hadoop101的公钥拷贝到其他两个目标机器上
ssh-copy-id hadoop100 输入密码,回车
ssh-copy-id hadoop101 输入密码,回车
ssh-copy-id hadoop102 输入密码,回车
3.在Hadoop102上生成公钥和私钥
ssh-keygen -t rsa
#按三下回车键
将Hadoop102的公钥拷贝到其他两个目标机器上
ssh-copy-id hadoop100 输入密码,回车
ssh-copy-id hadoop101 输入密码,回车
ssh-copy-id hadoop102 输入密码,回车
4.免密登录
ssh 主机名