手动搭建Hadoop分布式集群

2020-10-15 15:06:37 浏览数 (1)

相比Cloudera Manager的安装方式,手动搭建Hadoop分布式集群能让我们了解Hadoop的详细配置,有利于我们学习HDFS和YARN的工作原理,初学者可以尝试这种方式。

前置准备

和安装Cloudera Manager、CDH一样,首先需要修改主机名、关闭防火墙、同步时钟、安装JDK

添加域名映射

添加每个节点的域名映射,分发到每个节点

代码语言:javascript复制
vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
172.31.40.0 ambari1.soundhearer.com
172.31.36.6 ambari3.soundhearer.com
172.31.34.161 ambari2.soundhearer.com

配置SSH免密登录

1.执行命令

代码语言:javascript复制
ssh-keygen

第一个提示是询问将公私钥文件存放在哪,直接回车,选择默认位置。

第二个提示是请求用户输入密钥,既然操作的目的就是实现SSH无密钥登录,故此处必须使用空密钥,所谓的空密钥指的是直接回车,不是空格,更不是其他字符。

第三个提示是要求用户确认刚才输入的密钥,既然刚才是空密钥(直接回车即空),那现在也应为空,直接回车即可。

2.可通过命令

代码语言:javascript复制
ls -all /root/.ssh

查看到,SSH密钥文件夹.ssh目录下的确生成了两个文件idrsa和idrsa_pub,这两个文件都有用,其中公钥用于加密,私钥用于解密。中间的rsa表示算法为RSA算法。

3.执行命令

代码语言:javascript复制
ssh-copy-id ambari1.soundhearer.com

ambari1.soundhearer.com服务器公钥拷贝至 ambari1.soundhearer.com服务器本身

第一次连接 ambari1.soundhearer.com时,需要输入yes来确认建立授权的主机名访问,并需要输入root用户密码来完成公钥文件传输

4.拷贝 ambari1.soundhearer.com服务器公钥至其余服务器

5.其余服务器按照同样的方式配置ssh免密登录,完成后验证是否可以互相之间实现SSH免密登录。

部署HDFS

上传 Hadoop3.1.3,解压并放置于 /usr/local/hadoop

修改以下四个配置文件

  • etc/hadoop/hadoop-env.sh
  • etc/hadoop/core-site.xml
  • etc/hadoop/hdfs-site.xml
  • etc/hadoop/workers

hadoop-env.sh

修改 JAVA_HOME环境变量即可

代码语言:javascript复制
export JAVA_HOME=/usr/local/java # 修改为您的Java目录

core-site.xml

指定HDFS主节点,编辑文件 /usr/local/hadoop/etc/hadoop/core-site.xml,将如下内容嵌入此文件里最后两行的标签之间:

代码语言:javascript复制
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://ambari1.soundhearer.com:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop/data/tmp</value>
    </property>
</configuration>

hdfs-site.xml

代码语言:javascript复制
<configuration>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/usr/local/hadoop/data/namenode</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/usr/local/hadoop/data/datanode</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
</configuration>

workers

代码语言:javascript复制
ambari3.soundhearer.com
ambari2.soundhearer.com

拷贝集群配置至其它服务器

代码语言:javascript复制
./batch_scp.sh node.list /usr/local/hadoop/etc/hadoop/workers /usr/local/hadoop/etc/hadoop/

./batch_scp.sh node.list /usr/local/hadoop/etc/hadoop/core-site.xml /usr/local/hadoop/etc/hadoop/

./batch_scp.sh node.list /usr/local/hadoop/etc/hadoop/hdfs-site.xml /usr/local/hadoop/etc/hadoop/

 ./batch_scp.sh node.list /usr/local/hadoop/etc/hadoop/hadoop-env.sh /usr/local/hadoop/etc/hadoop/

启动

格式化 HDFS

代码语言:javascript复制
cd /usr/local/hadoop
bin/hdfs namenode -format

修改 /usr/local/hadoop/etc/hadoop/hadoop-env.sh,末尾添加

代码语言:javascript复制
HDFS_DATANODE_USER=root
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

启动

代码语言:javascript复制
sbin/start-dfs.sh

jps查看进程

浏览器输入:

代码语言:javascript复制
http://ambari1.soundhearer.com:9870

看到如下页面

修改 /usr/local/hadoop/etc/hadoop/hadoop-env.sh,添加:

代码语言:javascript复制
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>ambari1.soundhearer.com</value>
</property>

开启 YARN

在ambari1.soundhearer.com主节点启动YARN

代码语言:javascript复制
cd /usr/local/hadoop
sbin/start-yarn.sh

jps发现主节点多了ResouceManager进程,从节点多了NodeManager进程

浏览器输入ambari1.soundhearer.com:8088可以访问如下页面,

0 人点赞