Spark学习笔记(三) Ubuntu搭建Hadoop分布式集群
2018-09-21 18:14
731 查看
Ubuntu搭建Hadoop分布式集群
- 2.1 从master克隆出node
- 2.2 设置master和node之间SSH通信
- 2.2.1 在master上修改hostsname
- 2.2.2 在node1和node2上修改hostsname
- 2.2.3 修改host文件
- 2.2.4 在master上生成ssh秘钥
- 2.2.5 在node1和node2上生成ssh秘钥
- 2.2.6 将所有node节点上的公钥id_rsa.pub发送到master上
- 2.2.7 在master上将node的公钥放入authorized_keys文件里
- 2.2.8 将master上的authorized_keys 拷贝到node1和node2上
- 2.2.9 验证master和node直接的免密码登录
- 2.3.1 core-site.xml
- 2.3.2 hdfs-site.xml
- 2.3.3 yarn-site.xml
- 2.3.4 mapred-site.xml
- 2.3.5 slaves文件
- 2.3.6 hadoop-env.sh文件
推荐一个好的翻译官方文档网站 (http://cwiki.apachecn.org/)
运行环境
因为是为了学习,且只有一台PC,只能在虚拟机里安装Hadoop
软件配置 | 版本 |
---|---|
主机 | Win7,内存8G |
虚拟机 | VMware 14 |
Linux | ubuntu-14.04.5-desktop (使用ubuntu-18或16的话,电脑会比较卡) |
Hadoop | 2.9.1 |
JDK | 1.8 |
配置目标
搭建一台NameNode名称为master,两台DataNode名称分别为node1和node2。
搭建Hadoop分布式集群步骤
1 搭建master
新建一个Ubuntu虚拟机,命名为ubuntu_14_master。
如何在VMware里安装Ubuntu?,网上教程很多。
1.1 安装JDK
安装JDK的步骤参考之前的博客Hadoop学习笔记(一) Ubuntu安装JDK和ssh
1.2 安装SSH
SSH的工作原理自行百度吧
#查看ssh的状态判断是否已经安装了ssh,如果返回ssh: unrecognized service,说明没有安装ssh $ sudo service ssh status #或者如下命令查看是否有ssh的进程 $ sudo ps -e | grep ssh #如果没有安装ssh,输入如下2个命令安装 # 1.下载最新的软件列表 $ sudo apt-get update # 2.Ubuntu缺省没有安装SSH Server,安装如下 $ sudo apt-get install openssh-server #如果ssh没有启动,输入下面命令启动 $ sudo service ssh start #Ubuntu14没有在当前目录打开终端的选项,这个插件装下 $ sudo apt-get install nautilus-open-terminal
这时暂不生成秘钥,等搭建好node后再生成
1.3 安装Hadoop
安装Hadoop参考之前的博客Hadoop学习笔记(二) 安装Hadoop单节点集群
但是只要操作到第2点配置.bashrc文件就行,第3点修改Hadoop配置文件的不用看
2 搭建node
2.1 从master克隆出node
把master虚拟机关机后,右击master,选择管理>克隆,并在下一步后选择完整克隆
克隆出2个node虚拟机,命名如下
2.2 设置master和node之间SSH通信
2.2.1 在master上修改hostsname
#在master上修改hostname,保存为master winter@master:~$ sudo gedit /etc/hostname
2.2.2 在node1和node2上修改hostsname
node1和node2上修改hostname分别为node1和node2,步骤和上面master的一样
2.2.3 修改host文件
#查看ip地址,下图中红框是ip $ ifconfig
#3台机器的ip都查询好后,在3台机器上都修改host文件 $ sudo gedit /etc/hosts
2.2.4 在master上生成ssh秘钥
#此操作是在master上,没有.ssh文件夹就执行ssh localhost # 1.产生SSH Key $ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa # 2.将产生的SSH Key放到许可证文件中 $ cat id_rsa.pub >> authorized_keys # 3.验证连接访问自己,输入密码登入,输入exit登出 $ ssh localhost
可以看出.ssh下面生成了几个文件
2.2.5 在node1和node2上生成ssh秘钥
# 1.产生SSH Key,这个是在node上操作 $ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
2.2.6 将所有node节点上的公钥id_rsa.pub发送到master上
# 在node1上将公钥拷贝到master上 winter@node1:~/.ssh$ scp id_rsa.pub winter@master:~/.ssh/id_rsa_node1.pub # 在node2上将公钥拷贝到master上 winter@node2:~/.ssh$ scp id_rsa.pub winter@master:~/.ssh/id_rsa_node2.pub
2.2.7 在master上将node的公钥放入authorized_keys文件里
winter@master:~/.ssh$ cat id_rsa_node1.pub >> authorized_keys winter@master:~/.ssh$ cat id_rsa_node2.pub >> authorized_keys #之后要删掉id_rsa_node1.pub和id_rsa_node2.pub $ rm -rf id_rsa_node1.pub $ rm -rf id_rsa_node2.pub
2.2.8 将master上的authorized_keys 拷贝到node1和node2上
# 在master上操作,winter是我的用户名 $ scp authorized_keys winter@node1:~/.ssh/authorized_keys $ scp authorized_keys winter@node2:~/.ssh/authorized_keys
2.2.9 验证master和node直接的免密码登录
登录后如果不用输入密码说明配置成功,登录别的机器后要输入exit退出
#在master上 $ ssh node1 $ ssh node2 #在node1上 $ ssh master $ ssh node2 #在node2上 $ ssh node1 $ ssh master
2.3 在master上修改Hadoop配置
2.3.1 core-site.xml
在hadoop目录下新建tmp目录,存放临时文件
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <property> <name>io.file.buffer.size</name> <value>131072</value> </property> <property> <name>hadoop.tmp.dir</name> <value>file:/usr/local/hadoop/tmp</value> </property> </configuration>
2.3.2 hdfs-site.xml
<configuration> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/usr/local/hadoop/hadoop_data/hdfs/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/usr/local/hadoop/hadoop_data/hdfs/datanode</value> </property> </configuration>
2.3.3 yarn-site.xml
<configuration> <!-- Site specific YARN configuration properties --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> <property> <name>yarn.resourcemanager.hostname</name> <value>master</value> </property> </configuration>
2.3.4 mapred-site.xml
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
2.3.5 slaves文件
node1 node2
2.3.6 hadoop-env.sh文件
# The java implementation to use. export JAVA_HOME=/usr/lib/jdk/jdk1.8
2.4 将master上的hadoop配置文件同步到node
以下是在master上操作
#在master上新建namenode $ sudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/namenode $ sudo chown winter:winter -R /usr/local/hadoop #在master上登录node1 winter@master:~$ ssh node1 #新建datanode目录 $ sudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/datanode # 将hadoop目录的权限给winter这个用户 winter@node1:~$ sudo chown winter:winter -R /usr/local/hadoop #退出node1 winter@node1:~$ exit #拷贝配置文件到node1 winter@master:~$ scp -r /usr/local/hadoop/etc/hadoop/* winter@node1:/usr/local/hadoop/etc/hadoop #node2和node1一样操作
3 启动Hadoop集群
3.1格式化namenode
#格式化namenode目录,就执行一次,以后启动不要执行这条语句 winter@master:~$ hadoop namenode -format
如果datanode进程没有起来,报All specified directories are failed to load
参考 解决方法
3.2 启动集群
#启动HDFS $ start-dfs.sh #启动MapReduce框架 YARN $ start-yarn.sh
3.3 关闭hadoop
#关闭进程 $ stop-dfs.sh $ stop-yarn.sh 使用jps查看进程,以上进程都已关闭
阅读更多
相关文章推荐
- Hadoop2.2 + spark1.0 在ubuntu 上搭建分布式集群
- Hadoop2.6.0 + Spark1.4.0 在Ubuntu14.10环境下的伪分布式集群的搭建(实践可用)
- ubuntu上搭建eclipse下hadoop-2.7.1集群(全分布式)开发环境遇到的几个问题笔记
- Spark-1.6.1 Hadoop-2.6.4 VMware Ubuntu 分布式集群搭建 全过程
- Hadoop及Spark单机及分布式集群Ubuntu环境搭建(详细)
- Spark-1.6.1 Hadoop-2.6.4 VMware Ubuntu 分布式集群搭建 全过程
- Ubuntu环境Hadoop全分布式环境搭建 (学习笔记)
- hadoop学习准备环境:ubuntu学习笔记-基本环境的搭建
- hadoop学习笔记之hadoop伪分布集群搭建(五)
- Hadoop学习笔记之Hadoop伪分布式环境搭建
- Ubuntu16.04 下 Spark2.0.2+Hadoop2.7.3+Zookeeper3.4.9+HBase1.1.7集群环境搭建--5
- Hadoop学习笔记(3)——分布式环境搭建
- Spark入门 - 1 搭建Hadoop分布式集群
- Spark学习笔记6-Spark分布式搭建(5)——ubuntu下Spark分布式搭建
- 学习记录--颤抖吧,hadoop(五)---搭建完全分布式hadoop集群(2)
- 在 Ubuntu 上搭建 Hadoop 分布式集群 Eclipse 开发环境
- Ubuntu16.04 下 Spark2.0.2+Hadoop2.7.3+Zookeeper3.4.9+HBase1.1.7集群环境搭建--4
- Redis学习笔记六——搭建redis集群(非分布式真正的cluster)
- Centos 7 搭建hadoop-2.6.0和spark1.6.0完全分布式集群教程 (最小化配置)
- Spark Hadoop集群部署与Spark操作HDFS运行详解---Spark学习笔记10