相比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
环境变量即可
export JAVA_HOME=/usr/local/java # 修改为您的Java目录
core-site.xml
指定HDFS主节点,编辑文件 /usr/local/hadoop/etc/hadoop/core-site.xml
,将如下内容嵌入此文件里最后两行的标签之间:
<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
,末尾添加
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
,添加:
<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可以访问如下页面,