CentOS7 安装 hadoop-1.2.1

本贴最后更新于 1817 天前,其中的信息可能已经事过境迁

分布式环境:

master slave1 slave2
centos7 centos7 centos7
1c 1c 1c
2G 1G 1G
192.168.18.30 192.168.18.31 192.168.18.32

0.初始化三个节点

配置环境变量

  • 更改主机名分别为 master、slave1、slave2
  • 配置 ssh 秘钥验证,达到任一节点无需密码验证登录其他站点 root 用户的效果
  • 配置/etc/hosts 文件,使任一节点通过 master、slave1、slave2 即可域名解析到对应节点 IP

关闭防火墙

[root@master ~]# vim /etc/selinux/config ... SELINUX=disabled ... [root@master ~]# setenforce 0 [root@master ~]# getenforce Permissive [root@master ~]# systemctl stop firewalld [root@master ~]# systemctl disable firewalld 另外从节点也要执行

1.安装 java

下载 hadoop 和 jdk 安装包到/usr/local/src 目录下

https://archive.apache.org/dist/hadoop/core/hadoop-1.2.1/hadoop-1.2.1-bin.tar.gz
https://repo.huaweicloud.com/java/jdk/6u45-b06/jdk-6u45-linux-x64.bin

[root@master src]# ls hadoop-1.2.1-bin.tar.gz jdk-6u45-linux-x64.bin

给予 jdk-6u45-linux-x64.bin 可执行权限,执行如下命令:

[root@master src]# ./jdk-6u45-linux-x64.bin

可得如下目录:

[root@master src]# ls -ld jdk1.6.0_45 drwxr-xr-x. 8 root root 176 3月 27 2013 jdk1.6.0_45

将该目录移动到 /usr/local 下(个人习惯):

[root@master jdk1.6.0_45]# pwd /usr/local/jdk1.6.0_45

此目录即为 java 的安装目录,现在需要将 java 的相关变量声明命令添加到对于脚本中。在此选择添加到 /etc/bashrc 文件中。

[root@master jdk1.6.0_45]# tail -n 5 /etc/bashrc export JAVA_HOME=/usr/local/jdk1.6.0_45 export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib export PATH=$PATH:$JAVA_HOME/bin
[root@master jdk1.6.0_45]# source /etc/bashrc [root@master jdk1.6.0_45]# which java /usr/local/jdk1.6.0_45/bin/java [root@master jdk1.6.0_45]# java -version java version "1.6.0_45" Java(TM) SE Runtime Environment (build 1.6.0_45-b06) Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)

如法炮制,在 slave1 和 slave2 节点上安装 java

[root@slave1 ~]# which java /usr/local/jdk1.6.0_45/bin/java
[root@slave2 ~]# which java /usr/local/jdk1.6.0_45/bin/java

2.安装 hadoop

解压安装包

[root@master src]# ls hadoop-1.2.1-bin.tar.gz jdk-6u45-linux-x64.bin [root@master src]# tar zxf hadoop-1.2.1-bin.tar.gz [root@master src]# ls hadoop-1.2.1 hadoop-1.2.1-bin.tar.gz jdk-6u45-linux-x64.bin

移动新生成的目录到 /usr/local/

[root@master hadoop-1.2.1]# pwd /usr/local/hadoop-1.2.1

生成存放运行过程中临时文件的 tmp 目录

[root@master hadoop-1.2.1]# mkdir tmp

进入 conf 目录下,修改配置文件:

[root@master conf]# pwd /usr/local/hadoop-1.2.1/conf

修改 masters 文件,写入 master 节点的自定义域名

[root@master conf]# cat masters master

修改 slaves 文件,写入 slave 节点的自定义域名

[root@master conf]# cat slaves slave1 slave2

修改 core-site.xml 文件

[root@master conf]# vim core-site.xml ... <configuration> <!--用来指定使用hadoop时产生文件的存放目录--> <property> <name>hadoop.tmp.dir</name> <value>/usr/local/hadoop-1.2.1/tmp</value> </property> <!--指定namenode的地址--> <property> <name>fs.default.name</name> <value>hdfs://master:9000</value> </property> </configuration>

修改 mapred-site.xml 文件

[root@master conf]# vim mapred-site.xml ... <configuration> <!--作业跟踪管理器的HTTP服务器访问端口和地址--> <property> <name>mapred.job.tracker</name> <value>http://master:9001</value> </property> </configuration>

修改 hdfs-site.xml 文件

[root@master conf]# vim hdfs-site.xml ... <configuration> <!--指定hdfs保存数据的副本数量--> <property> <name>dfs.replication</name> <value>3</value> </property> </configuration>

修改 hadoop-env.sh 脚本

[root@master conf]# tail -n2 hadoop-env.sh export JAVA_HOME=/usr/local/jdk1.6.0_45

将/usr/local/hadoop-1.2.1 目录拷贝到另外两个从节点:

[root@master hadoop-1.2.1]# rsync -azvP /usr/local/hadoop-1.2.1 root@slave1:/usr/local/ [root@master hadoop-1.2.1]# rsync -azvP /usr/local/hadoop-1.2.1 root@slave2:/usr/local/

3.启动集群

初始化

[root@master bin]# pwd /usr/local/hadoop-1.2.1/bin [root@master bin]# ./hadoop namenode -format

启动

[root@master bin]# ./start-all.sh [root@master bin]# jps 13144 JobTracker 12906 NameNode 13254 Jps 13067 SecondaryNameNode

尝试执行

[root@master bin]# ./hadoop fs -ls / Found 1 items drwxr-xr-x - root supergroup 0 2019-02-06 14:51 /usr [root@master bin]# ./hadoop fs -put /etc/passwd / [root@master bin]# ./hadoop fs -ls / Found 2 items -rw-r--r-- 3 root supergroup 892 2019-02-06 14:53 /passwd drwxr-xr-x - root supergroup 0 2019-02-06 14:51 /usr [root@master bin]# ./hadoop fs -cat /passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin ...
  • Hadoop

    Hadoop 是由 Apache 基金会所开发的一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

    89 引用 • 122 回帖 • 618 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...