蓝亭书序

蓝亭的博客

  • 主页
  • 归档
  • 实用技能
文章列表 友链 关于我

蓝亭书序

蓝亭的博客

  • 主页
  • 归档
  • 实用技能

Linux下安装Hadoop集群

2018-06-05

说在前面的话

在安装Hadoop集群的时候,需要先配置好JDK环境,配置很简单,教程参见:Linux安装JDK环境

1、环境准备

事先准备好三台虚拟机(当然一台也无妨)主机名和ip分别为:
lantingshuxu –> ip:192.168.77.128【此主机作为主节点】
mini1 –> ip:192.168.77.129
mini2 –> ip:192.168.77.130

【注意,这三台机器的环境要保证一样(JDK安装目录、用户名等环境必须一样)】

可以通过一下的命令去修改主机名【主机名和下面的hosts配置的域名必须要一致!】

1
2
3
4
5
6
vi /etc/sysconfig/network

#配置如下
NETWORKING=yes
# 需要修改的主机名,重启后生效
HOSTNAME=lantingshuxu

修改了主机名后,修改本地host

1
2
3
4
5
6
vim /etc/hosts

#配置添加内容如下
192.168.77.128 lantingshuxu
192.168.77.129 mini1
192.168.77.130 mini2

关闭防火墙 or 为防火墙添加白名单

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#查看防火墙状态
service iptables status
#关闭防火墙
service iptables stop
#查看防火墙开机启动状态
chkconfig iptables --list
#关闭防火墙开机启动
chkconfig iptables off

#--------------------
出于安全考虑,我们也可以只添加防火墙白名单,需要添加的端口为9000, 50070, 50010, 8088, 8032
【补充,除了上面的端口外,好像还会有其他的端口,在跑MapReduce的时候如果是关闭了防火墙可以正常运行,但是白名单却不能正常运行】


# 添加端口白名单的命令如下:
/sbin/iptables -I(大写的i) INPUT -p tcp --dport 端口号 -j ACCEPT
/etc/rc.d/init.d/iptables save #将该设置添加到防火墙的规则中

注意本地时间,需要同步各个主机的本地时间,如果不一致,运行MapReduce时会出异常

1
2
#设置本地时间
date -s "2010-10-10 10:10:00"

2、下载Hadoop并解压

下载Hadoop
64位机器下载链接: https://pan.baidu.com/s/10ESl1QlK2rHscI-MZXv16w 密码: rkr4
32位机器下载链接:链接: https://pan.baidu.com/s/1pDECG9l_D-DbooMzhLrw4A 密码: ejpw。

下载到本地后,我们可以通过scp或者sftp工具(scp可以使用 git的gitbash命令工具,sftp可以使用 filezilla),将该tar.gz包上传到Linux上(假设我们上传到了/home/lanting/hadoop/下)然后解压。

1
2
3
4
5
6
7
#scp上传命令
scp 本地文件 远程用户名@远程ip:/远程文件路径
#例如:
scp cenos-6.5-hadoop-2.6.4.tar.gz root@192.168.77.128:/home/lanting/hadoop/cenos-6.5-hadoop-2.6.4.tar.gz

# 解压命令
tar -zxvf cenos-6.5-hadoop-2.6.4.tar.gz

3、配置Hadoop

假设经过前面几步,我们已经将 hadoop-2.6.4.tar.gz 解压在了 /home/lanting/hadoop/hadoop-2.6.4 下,我们使用cd命令cd /home/lanting/hadoop/hadoop-2.6.4,进入此文件夹下,然后接着向下的步骤走。

然后再进入 hadoop-2.6.4 下的 etc/hadoop 下 cd etc/hadoop

有几个配置文件需要修改,如下:

1)修改 hadoop-env.sh

1
2
3
4
vi hadoop-env.sh

#第27行 这里修改为自己的jdk路径
export JAVA_HOME=/home/lanting/java/jdk1.8.0_172

2)修改 core-site.xml,在configuration标签中添加下面的配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<configuration>
<!-- 指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 -->
<property>
<name>fs.defaultFS</name>
<!-- lantingshuxu为主节点主机名 -->
<value>hdfs://lantingshuxu:9000</value>
</property>

<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/lanting/hadoop-2.4.1/tmp</value>
</property>
</configuration>

3)修改hdfs-site.xml(可选,不改也可以)在configuration标签中添加下面的配置

1
2
3
4
5
6
7
<configuration>
<!-- 指定HDFS副本的数量,默认3 -->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>

4)修改mapred-site.xml,在configuration标签中添加下面的配置

1
2
3
4
5
6
7
8
9
10
11
12
13
#拷贝一份模板,并在模板上进行修改
cp mapred-site.xml.template mapred-site.xml
#编辑模板
vi mapred-site.xml

#在configuration标签内添加如下内容
<configuration>
<!-- 指定mr运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

5)修改yarn-site.xml,在configuration标签中添加下面的配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<configuration>
<!-- 指定YARN的老大(ResourceManager)的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<!-- lantingshuxu为主节点主机名 -->
<value>lantingshuxu</value>
</property>

<!-- reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<configuration>

4、将Hadoop配置到环境变量

1
2
3
4
5
6
7
8
vim /etc/proflie

# 末尾添加内容如下
export HADOOP_HOME=/home/lanting/hadoop/hadoop-2.4.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

# 添加完毕后执行命令使之生效
source /etc/profile

5、格式化namenode

1
hdfs namenode -format

6、将配置复制给其他节点(如果只有一台,忽略此步骤)

以上的操作均在主节点主机 lantingshuxu 上操作,由于 mini1 和 mini2 也需要做相同的配置,并且 mini1 和 mini2 的环境和 lantingshuxu 相同,因此,我们只需要将配置好的配置文件直接复制过去即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 复制 hosts 到另外两台机器
scp /etc/hosts root@mini1:/etc/hosts
scp /etc/hosts root@mini2:/etc/hosts

# 复制profile(环境变量)到另外两台机器
scp /etc/profile root@mini1:/etc/profile
scp /etc/profile root@mini2:/etc/profile

#分别另外两台机器mini1 , mini2 上执行下面命令,使环境变量生效
source /etc/profile

# 复制hadoop到另外两台机器
scp -r /home/lanting/hadoop lanting@mini1:/home/lanting/hadoop
scp -r /home/lanting/hadoop lanting@mini2:/home/lanting/hadoop

7、配置“一键启动”

由于hadoop会有一个namenode和多个datanode,如果我们一个个去启动hadoop是非常麻烦的,我们可以在我的主节点上配置到另外几台的免密登录,直接通过脚本即可一次性启动,免密登录配置很简单,我的博客也有写详情见:Linux SSH免密登录配置。
免密登录配置成功后,我们可以在hadoop安装目录下的etc/hadoop下的slaves中添加我们需要启动的机器

1
2
3
4
5
6
7
8
9
# 进入hadoop配置文件目录
cd /home/lanting/hadoop/hadoop-2.6.4/etc/hadoop

#编辑“一键启动”主机列表
vi slaves

#添加主机内容
mini1
mini2

8、启动

配置好后,我们就可以启动服务了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# 启动dfs服务和yarn服务
start-dfs.sh
start-yarn.sh

#停止服务
stop-dfs.sh
stop-yarn.sh


#查看启动情况
jps

输出如下:
3009 Jps
2758 ResourceManager
2617 SecondaryNameNode
2442 NameNode


# 网页后台管理
http://主节点ip:50070 (HDFS管理界面)
http://主节点ip:8088 (MR管理界面)


------------

也可以通过下面的方式一个个服务器上去启动


#先启动HDFS
hadoop-daemon.sh start namenode(或者datanode)

#关闭hdfs
hadoop-daemon.sh stop namenode(或者datanode)

#再启动YARN
sbin/start-yarn.sh

9、进入网页查看

启动成功后,我们可以通过浏览器 http://主节点ip:50070 (HDFS管理界面) 去查看我们的hdfs。

赏

谢谢您对蓝亭的支持!

支付宝
  • Hadoop
  • 大数据
  • 分布式计算
  • 大数据与分布式

扫一扫,分享到微信

微信分享二维码
hdfs常用的客户端命令
HDFS详解

Gitalking ...

© 2021 蓝亭书序
~已经到底了,不要再翻了~ 本博客使用Hexo构建而成
  • 文章列表
  • 友链
  • 关于我

tag:

  • Java
  • JDBC
  • 正则表达式
  • POI
  • 图形图像处理
  • java
  • 泛型
  • Linux
  • crontab
  • 反射
  • python
  • 序列
  • 内建函数
  • linux
  • Chrome
  • 插件开发
  • hexo
  • gitalk
  • UNIX
  • I/O
  • IDEA
  • Hadoop
  • 大数据
  • 分布式计算
  • MapReduce
  • HIVE
  • Flume
  • HTTP
  • 幂等性
  • SpringMVC
  • MAVEN
  • lambda
  • java字节码
  • class字节码
  • lambda表达式
  • JVM
  • SpringBoot
  • Mybatis
  • springCloud
  • 前端
  • angular
  • 事件
  • 管道
  • 跨域
  • JavaScript
  • RxJs
  • Iterator源码
  • Shell
  • Github
  • Hexo
  • Zookeeper
  • 云计算

    缺失模块。
    1、请确保node版本大于6.2
    2、在博客根目录(注意不是yilia根目录)执行以下命令:
    npm i hexo-generator-json-content --save

    3、在根目录_config.yml里添加配置:

      jsonContent:
        meta: false
        pages: false
        posts:
          title: true
          date: true
          path: true
          text: false
          raw: false
          content: false
          slug: false
          updated: false
          comments: false
          link: false
          permalink: false
          excerpt: false
          categories: false
          tags: true
    

  • 我的微博
  • 我的CSDN
  • github
  • 我的Twitter
一个小小的程序员儿~
邮箱:lantingshuxu@sina.com
QQ:2906935962
微博:蓝亭书序