【Hadoop】Ubuntu 16.04 VMware hadoop 2.7.4 集群安装

一、前言

hadoop 在分布式计算,大数据领域一直享有盛名,也零零碎碎看过一些 hadoop 相关的东西,但却没有真正实战过,一是工作还暂时未涉及到 hadoop ,二是安装 hadoop 集群没有那个硬件基础。

现在换了一个内存大点的电脑,不能浪费这个资源,于是便来搭个 hadoop 集群吧。

二、hadoop 集群环境

这里准备3个虚拟机节点。

我是用 VMware10 虚拟了一个 Ubuntu16.04 环境,然后再克隆两个 Ubuntu16.04 节点环境。

因为是在同一台机器上搭建 hadoop 集群,所以虚拟机网络设置是NAT模式。(Vmware虚拟机三种网络模式详解

三个节点准备好,通过 ifconfig 命令查看 ip , 三个节点的 ip 分别为:

192.168.184.131
192.168.184.133
192.168.184.134

这里打算 131 当作 master 节点,用于运行hadoop程序中的namenode、secondorynamenode和jobtracker任务。 133 和 134 当作 slave 节点,主要将运行hadoop程序中的datanode和tasktracker任务。

在准备好这3个结点之后,分别将主机名重命名,命名主机名的方法,修改 /etc/hostname 文件:

gedit /etc/hostname

我这里对三个节点分别命名为:master, slave1, slave2。

三、搭建过程记录

在做好上述准备后,正式开始。

3.1、创建 hadoop 账户

首先创建 hadoop 账户,并配置管理员权限。

安装 Hadoop 那么需要创建一个 Hadoop 用户,毕竟创建一个新的用户,配置环境相对更加干净一些。

创建一个hadoop 用户,并使用 /bin/bash作为shell:

sudo useradd -m hadoop -s /bin/bash

设置密码:

sudo passwd hadoop

增加管理员权限:

sudo adduser hadoop sudo

三个节点都执行相同操作。

3.2、配置hosts文件

配置 hosts 文件主要用于确定每个结点的 IP 地址,方便后续 master 结点能快速查到并访问各个结点。

三个节点都需要修改,内容一致,如下:

sudo gedit /etc/hosts

3.3、配置ssh免密码连入

1.Hadoop 中的集群,单点模式是需要使用到SSH登录,Ubuntu默认参数了 SSH client, 还需要安装SSH Server:

sudo apt-get update
sudo apt-get install openssh-server

2.安装之后就可以使用 SSH 登录本机,生成 master 的公钥,在 master 节点终端运行:

ssh localhost # 使用此命令登录一次 (会输入一次 yes),用于生成 ~/.ssh 目录

cd ~/.ssh

ssh-keygen -t rsa # 执行此命令后一直按回车即可,会在 ~/.ssh 下生成 id_rsa 私钥文件 和 id_rsa.pub 公钥文件。

3.在 master 节点配置无密码 ssh 本机,这一步还是在 master 节点上运行:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys # 加入授权

4.完成此命令后,运行 ssh 验证一下

ssh localhost

此时不需密码验证。

5.让主结点(master)能通过SSH免密码登录两个子结点(slave)

前四步可以让 master ssh 本机无密码登录,还需让 master ssh 免密登录两个 slave 节点,为了实现这个功能,两个slave结点的公钥文件中必须要包含主结点的公钥信息。

切换到 slave1 节点,拷贝 master 节点公钥信息:

scp hadoop@master:~/.ssh/id_rsa.pub ./master_isa.pub

接着在 slave1 节点上将 master 的 ssh 公匙保存到相应位置:

cat ~/.ssh/master_isa.pub >> ~/.ssh/authorized_keys

然后 切回到 master 节点:

ssh slave1

首次需要 yes 确认。

6.然后 slave2 执行同样的操作。

3.4、配置 JDK

三个节点都要安装 JDK,也可以将这步挪到前面,先装好一个节点的 JDK,然后克隆其他的节点。

具体安装参考:https://www.zybuluo.com/w1992wishes/note/1207973

安装好后,并配置相应的环境变量。

3.5、安装 hadoop

1.首先下载 hadoop 相应版本,可以到如下路径查找 hadoop 各版本:

https://archive.apache.org/dist/hadoop/common/

将下载的压缩包解压:

sudo tar -zxvf /opt/hadoop-2.7.4.tar.gz
mv hadoop-2.7.4 hadoop # 改名

2.添加 Hadoop 环境变量:

sudo gedit /etc/profile

保存后使配置生效:

source /etc/profile

hadoop # 查看Hadoop
hadoop version # 查看 hadoop 的安装版本

3.6、配置 hadoop 相关文件:

操作之前关闭每台机器的防火墙 sudo ufw disable。

1.编辑 hadoop-env.sh,配置 hadoop JDK 依赖:

gedit hadoop-env.sh 

2.配置 slaves:

gedit slaves

保存所有的 slave 节点 (slave1、slave2),将文件首行的 localhost 删除。

3.配置 core-site.xml:

core-site.xml 配置集群的全局参数,主要定义了系统级别的参数,如 :HDFS URL、Hadoop 的临时目录等信息。

gedit core-site.xml

<configuration> </configuration> 标签里面添加如下内容:

<property>
    <!-- 指定 HDFS 的 nameService,与(hdfs-site.xml)对应 -->
    <name>fs.defaultFS</name>
    <value>hdfs://master:9000</value>
</property>
<property>
    <!-- 指定 hadoop 运行时产生文件的存储路径 -->
    <name>hadoop.tmp.dir</name>
    <value>file:/opt/hadoop/hadoop_tmp</value>
    <description>Abase for other temporary directories.</description>
</property>

4.配置 hdfs-site.xml:

gedit hdfs-site.xml

<configuration> </configuration> 标签里面添加如下内容:

<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>master:50090</value>
</property>
<property>
    <!-- 文件的副本数,默认为 3;这里只有两台 DataNode  所以这里设置为 2 -->
    <name>dfs.replication</name>
    <value>2</value>
</property>
<property>
    <!-- NameNode 数据目录 -->
    <name>dfs.namenode.name.dir</name>
    <value>file:/opt/hadoop/hadoop_tmp/dfs/name</value>
</property>
<property>
    <!-- DataNode 数据目录 -->
    <name>dfs.datanode.data.dir</name>
    <value>file:/opt/hadoop/hadoop_tmp/dfs/data</value>
</property>

这之后创建 name 和 data 目录:

cd /opt/hadoop
mkdir -p hadoop_tmp/dfs/name # -p 代表递归创建目录
cd hadoop_tmp/dfs/
mkdir data

5.配置 yarn-site.xml:

gedit yarn-site.xml 

<configuration> </configuration> 标签里面添加如下内容:

<property>
    <!-- 指定 YARN 的 ResourceManager 的地址,NameNode 节点中的一个 -->
    <name>yarn.resourcemanager.hostname</name>
    <value>master</value>
</property>
<property>
    <!-- reducer 取数据的方式是 mapreduce_shuffle -->
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<property>
    <name>yarn.resourcemanager.address</name>
    <value>master:8032</value>
</property>
<property>
    <name>yarn.resourcemanager.scheduler.address</name>
    <value>master:8030</value>
</property>
<property>
    <name>yarn.resourcemanager.resource-tracker.address</name>
    <value>master:8031</value>
</property>
<property>
    <name>yarn.resourcemanager.admin.address</name>
    <value>master:8033</value>
</property>
<property>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>master:8088</value>
</property>

6.配置 mapred-site.xml:

默认文件名为 mapred-site.xml.template,配置这个文件前,需要将这个文件重命名:

mv mapred-site.xml.template mapred-site.xml
gedit mapred-site.xml
<property>
    <!-- 通知框架 MR 使用 YARN -->
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
<property>
    <name>mapreduce.jobhistory.address</name>
    <value>master:10020</value>
</property>
<property>
    <name>mapreduce.jobhistory.address</name>
    <value>master:19888</value>
</property>

3.7、Hadoop 集群

将 Hadoop 分发,在 master 机器配置完成以后, 将 /opt/hadoop 文件夹复制到各个节点上:

先在 master 节点压缩:

cd /opt/hadoop
sudo tar czvf hadoop.master.tar.gz hadoop/

然后切到 slave 节点:

scp hadoop@master:/opt/hadoop.master.tar.gz /opt
sudo tar xzvf hadoop.master.tar.gz

解压后配置 hadoop 环境变量,然后 hadoop version 验证一下。

至此,如果集群已经安装完毕。

四、运行 Hadoop 集群

1.首次启动需要先在 master 节点执行 namenode 的格式化:

cd /opt/hadoop/bin
hdfs namenode -format # 格式化文件系统

2.当格式化通过之后,就可以启动 hadoop 了,启动必须在 master 节点上运行:

start-dfs.sh

通过 jps 查看,master 节点至少有三个进程, slave1 和 slave2 至少有 2 个:

通过 web 界面查看是否配置成功,在浏览器中输入http://192.168.184.131:50070:

3.启动 strat-yarn.sh:

start-yarn.sh

通过 hdfs dfsadmin -report 命令,查看集群是否正常启动:

hdfs dfsadmin -report

4.可选启动命令 mr-jobhistory-daemon.sh start historyserver:

这个脚本的服务是实现 web 查看作业的历史运行情况,有些情况下,作业运行完了,在 web 端就无法查看运行情况,可以通过开启这个的守护进程来达到查看历史任务。

5.关闭集群:

# 关闭集群的操作必须在 hadoop20 执行
stop-yarn.sh
stop-dfs.sh             # 单独启动 HDFS 集群
start-mapred.sh    # 单独启动 Map/Reduce 
start-all.sh             # 同时启动HDFS和Map/Reduce
mr-jobhistory-daemon.sh stop historyserver

# 从主节点 master 关闭 hadoop,主节点会关闭所有从节点的 NameNode 进程
stop-all.sh

五、附:HDFS 常用操作

hadoop fs -ls 
# 列出HDFS下的文件

hadoop fs -mkdir /input
# 在 HDFS / 目录下创建 input 文件夹

hadoop fs -ls /input 
# 列出 HDFS 下某个文档中的文件

hadoop fs -put test1.txt /input/test 
# 上传文件到指定 HDFS /input 目录下并重新命名,只有所有的 DataNode 都接收完数据才算成功

hadoop fs -get /in getin 
# 从 HDFS 获取文件并且重新命名为 getin,同 put 一样可操作文件也可操作目录

hadoop fs -rmr /output
# 从 HDFS 上删除指定文件

hadoop fs -cat /input/* 
# 查看 HDFS 上 input 目录的内容

hdfs dfsadmin -report 
# 查看 HDFS 的基本统计信息

hdfs dfsadmin -safemode enter # 进入安全模式
hdfs dfsadmin -safemode leave # 退出安全模式
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,589评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,615评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,933评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,976评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,999评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,775评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,474评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,359评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,854评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,007评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,146评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,826评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,484评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,029评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,153评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,420评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,107评论 2 356

推荐阅读更多精彩内容

  • 文/胡晨川我是Linux外行,hadoop外行,java更外行,Scala听也没听过,在我脑海中,Spark一直只...
    老树之见阅读 5,843评论 3 39
  • 版权声明:本文为博主原创文章,未经博主允许不得转载。 目录-[-]1 先决条件2 实验环境搭建 21 准备工...
    三三At你阅读 841评论 0 3
  • Hadoop 集群的安装配置大致为如下流程: 选定一台机器作为 Master 在 Master 节点上配置 had...
    Spike_3154阅读 5,293评论 0 1
  • 一、系统参数配置优化 1、系统内核参数优化配置 修改文件/etc/sysctl.conf,添加如下配置,然后执行s...
    张伟科阅读 3,754评论 0 14
  • 对于绝大多数的普通人来说,我们的日子过得可以说是满足温饱有所追求的样子,绝大多数人也没有因为工作或者收入原因导致现...
    詹迅阅读 276评论 0 0