手动搭建Hadoop分布式集群
相比Cloudera Manager的安装方式,手动搭建Hadoop分布式集群能让我们了解Hadoop的详细配置,有利于我们学习HDFS和YARN的工作原理,初学者可以尝试这种方式。
前置准备
和安装Cloudera Manager、CDH一样,首先需要修改主机名、关闭防火墙、同步时钟、安装JDK
添加域名映射
添加每个节点的域名映射,分发到每个节点
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.执行命令
ssh-keygen
第一个提示是询问将公私钥文件存放在哪,直接回车,选择默认位置。
第二个提示是请求用户输入密钥,既然操作的目的就是实现SSH无密钥登录,故此处必须使用空密钥,所谓的空密钥指的是直接回车,不是空格,更不是其他字符。
第三个提示是要求用户确认刚才输入的密钥,既然刚才是空密钥(直接回车即空),那现在也应为空,直接回车即可。
2.可通过命令
ls -all /root/.ssh
查看到,SSH密钥文件夹.ssh目录下的确生成了两个文件idrsa和idrsa_pub,这两个文件都有用,其中公钥用于加密,私钥用于解密。中间的rsa表示算法为RSA算法。
3.执行命令
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
<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
ambari3.soundhearer.com
ambari2.soundhearer.com
拷贝集群配置至其它服务器
./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
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
启动
sbin/start-dfs.sh
jps查看进程
浏览器输入:
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
cd /usr/local/hadoop
sbin/start-yarn.sh
jps发现主节点多了ResouceManager进程,从节点多了NodeManager进程
浏览器输入ambari1.soundhearer.com:8088可以访问如下页面,
- javascript 面向对象(多种创建对象的方式)
- 1711: [Usaco2007 Open]Dingin吃饭
- 1574: [Usaco2009 Jan]地震损坏Damage
- HTTPS科普(转) 为什么需要https
- 1590: [Usaco2008 Dec]Secret Message 秘密信息
- 1751: [Usaco2005 qua]Lake Counting
- 算法模板——单个值欧拉函数
- webpack前言:前端模块系统的演进
- webpack学习(一):webpack 介绍&安装&常用命令
- pd_ds中的hash
- webpack学习(二):先写几个webpack基础demo
- js实现php中sleep()延时的功能
- 洛谷P2118 比例简化(暴力)
- php 中进制之间的转换
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 解决Unixbench安装报错信息的问题
- 关于安装LNMP集成包后上传图片报500错误的解决方法
- linux下SVN配置实现项目目录自动更新以及源码安装的操作方法
- linux安装redis和mysql的实例讲解
- tomcat服务器如何配置字符集为utf-8彻底解决中文乱码的问题详解
- Linux下Android开发环境搭建的操作方法
- liunx 时间函数与时间格式与字符串之间的转化方法
- 详解linux下的.net/mvc/cms程序结构
- Azure给ubuntu虚拟机挂载数据盘的详细步骤
- 详解SSH 远程执行任务的方法
- Linux基础学习之文件查找find的常见用法
- Linux基础之xargs命令的入门实例
- CentOS 7.4下安装Oracle 11.2.0.4数据库的方法
- CentOS桌面环境中网卡启动失败的解决方法
- 浅谈Linux vfork与fork简单对比分析