博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hadoop 2.7.5 集群搭建基于CentOS7u3
阅读量:7009 次
发布时间:2019-06-28

本文共 7660 字,大约阅读时间需要 25 分钟。

记录在64位CentOS 7环境下搭建Hadoop 2.7集群的步骤,这些记录都仅供参考!

1、操作系统环境配置

1.1、操作系统环境

主机名 IP地址 角色 Hadoop用户
hadoop-master 192.168.30.60 NameNode、ResourceManager、SecondaryNameNode hadoop
hadoop-slave01 192.168.30.61 DataNode、NodeManager hadoop
hadoop-slave02 192.168.30.62 DataNode、NodeManager hadoop
hadoop-slave03 192.168.30.63 DataNode、NodeManager hadoop

1.2、关闭防火墙和SELinux

1.2.1、关闭防火墙

$ systemctl stop firewalld $ systemctl disable firewalld

1.2.2、关闭SELinux

$ setenforce 0$ sed -i 's/enforcing/disabled/' /etc/sysconfig/selinux

注:以上操作需要使用root用户

1.3、hosts配置

$ vi /etc/hosts

########## Hadoop host ##########192.168.30.60   hadoop-master192.168.30.61   hadoop-slave01192.168.30.62   hadoop-slave02192.168.30.63   hadoop-slave03

注:以上操作需要使用root用户,通过ping 主机名可以返回对应的IP即可

1.4、配置无密码访问

首先要创建hadoop用户,然后在4台主机上使用hadoop用户配置无密码访问,所有主机的操作相同,以hadoop-master为例

生成私钥和公钥

$ ssh-keygen -t rsa

拷贝公钥到主机(需要输入密码)

$ ssh-copy-id hadoop@hadoop-master$ ssh-copy-id hadoop@hadoop-slave01$ ssh-copy-id hadoop@hadoop-slave02$ ssh-copy-id hadoop@hadoop-slave03

注:以上操作需要在hadoop用户,通过hadoop用户ssh到其他主机不需要密码即可。

2、Java环境配置

2.1、下载JDK

注:使用hadoop用户操作

$ cd /home/hadoop$ curl -o jdk-8u151-linux-x64.tar.gz http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz?AuthParam=1516091623_fa4174d4b1eed73f36aa38230498cd48

2.2、安装java

安装java可使用hadoop用户操作;

$ mkdir -p /home/hadoop/app/java$ tar -zxf jdk-8u151-linux-x64.tar.gz$ mv jdk1.8.0_151 /home/hadoop/app/java/jdk1.8
  • 配置Java环境变量:
    $ vi /home/hadoop/.bash_profile
export JAVA_HOME=/home/hadoop/app/java/jdk1.8export JRE_HOME=$JAVA_HOME/jreexport CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/libexport PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

启用环境变量

$ source /home/hadoop/.bash_profile

注:通过java –version命令返回Java的版本信息即可

3、Hadoop安装配置

hadoop的安装配置使用hadoop用户操作;

3.1、安装Hadoop

  • 下载hadoop 2.7.5

$ curl -O http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.5/hadoop-2.7.5.tar.gz

  • 创建hadoop安装目录

$ mkdir -p /home/hadoop/app/hadoop/{tmp,hdfs/{data,name}}

  • 解压hadoop文件并移动到hadoop安装目录下

$ tar zxf tar -zxf hadoop-2.7.5.tar.gz -C /home/hadoop/app/hadoop

3.2、配置Hadoop

Hadoop配置文件都是XML文件,使用hadoop用户操作即可;

3.2.1、配置core-site.xml

$ vi /home/hadoop/app/hadoop/hadoop-2.7.5/etc/hadoop/core-site.xml

hadoop.tmp.dir
file:/home/hadoop/app/hadoop/tmp
fs.defaultFS
hdfs://hadoop-master:9000
io.file.buffer.size
131072

3.2.2、配置hdfs-site.xml

$ vi /home/hadoop/app/hadoop/hadoop-2.7.5/etc/hadoop/hdfs-site.xml

dfs.replication
3
dfs.namenode.name.dir
/home/hadoop/app/hadoop/hdfs/name
dfs.datanode.data.dir
/home/hadoop/app/hadoop/hdfs/data
dfs.webhdfs.enabled
true

3.2.3、配置mapred-site.xml

mapred-site.xml需要从一个模板拷贝在修改

$ cp /home/hadoop/app/hadoop/hadoop-2.7.5/etc/hadoop/mapred-site.xml.template /home/hadoop/app/hadoop/hadoop-2.7.5/etc/hadoop/mapred-site.xml

$ vi /home/hadoop/app/hadoop/hadoop-2.7.5/etc/hadoop/mapred-site.xml

mapreduce.framework.name
yarn
mapreduce.jobhistory.address
hadoop-master:10020
mapreduce.jobhistory.webapp.address
hadoop-master:19888
mapreduce.jobhistory.done-dir
/history/done
mapreduce.jobhistory.intermediate-done-dir
/history/done_intermediate

3.2.4、配置yarn-site.xml

$ vi /home/hadoop/app/hadoop/hadoop-2.7.5/etc/hadoop/yarn-site.xml

yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.resourcemanager.hostname
hadoop-master
yarn.resourcemanager.address
hadoop-master:8032
yarn.resourcemanager.scheduler.address
hadoop-master:8030
yarn.resourcemanager.resource-tracker.address
hadoop-master:8031
yarn.resourcemanager.admin.address
hadoop-master:8033
yarn.resourcemanager.webapp.address
hadoop-master:8088

3.2.5、配置slaves

$ vi /home/hadoop/app/hadoop/hadoop-2.7.5/etc/hadoop/slaves

hadoop-slave01hadoop-slave02hadoop-slave03

3.2.6、配置hadoop-env

修改hadoop-env.sh文件的JAVA_HOME环境变量,操作如下:

$ vi /home/hadoop/app/hadoop/hadoop-2.7.5/etc/hadoop/hadoop-env.sh

export JAVA_HOME=/home/hadoop/app/java/jdk1.8

3.2.7、配置yarn-env

修改yarn-env.sh文件的JAVA_HOME环境变量,操作如下:

$ vi /home/hadoop/app/hadoop/hadoop-2.7.5/etc/hadoop/yarn-env.sh

export JAVA_HOME=/home/hadoop/app/java/jdk1.8

3.2.8、配置mapred-env

修改mapred-env.sh文件的JAVA_HOME环境变量,操作如下:

$ vi /home/hadoop/app/hadoop/hadoop-2.7.5/etc/hadoop/mapred-env.sh

export JAVA_HOME=/home/hadoop/app/java/jdk1.8

3.3、拷贝Hadoop程序到slave

$ scp -r /home/hadoop/app/hadoop hadoop@hadoop-slave01:/home/hadoop/app/$ scp -r /home/hadoop/app/hadoop hadoop@hadoop-slave02:/home/hadoop/app/$ scp -r /home/hadoop/app/hadoop hadoop@hadoop-slave03:/home/hadoop/app/

3.4、配置Hadoop环境变量

在所有机器hadoop用户家目录下编辑 .bash_profile 文件,在最后追加:

$ vi /home/hadoop/.bash_profile

### Hadoop PATHexport HADOOP_HOME=/home/hadoop/app/hadoop/hadoop-2.7.5export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

让环境变量生效:

source /home/hadoop/.bash_profile

注:这是配置hadoop的用户环境变量,如果系统变量设置在 /etc/profile.d/ 目录下新增

3.5、启动Hadoop

在hadoop主节点上初始化HDFS文件系统,然后启动hadoop集群

3.5.1、初始化HDFS文件系统

$ hdfs namenode –format

3.5.2、启动和关闭Hadoop集群

  • 启动:
    $ start-all.sh

注:在mapreduce.site.xml中配置了jobhistory,需要启动日志记录服务:

$ mr-jobhistory-daemon.sh start historyserver

  • 关闭:
    $ stop-all.sh

注:也可以一步一步执行启动,首先启动namenode-->datanode-->YARN -->NodeManagers -->historyserver

  • master进程:

    $ jps3124 NameNode3285 SecondaryNameNode3451 ResourceManager4254 Jps
  • slave进程:

    $ jps3207 Jps2409 NodeManager2332 DataNode
  • MapReducer PI运算
    $ hadoop jar /home/hadoop/app/hadoop/hadoop-2.7.5/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.5.jar pi 5 10

返回的结果是:Estimated value of Pi is 3.28000000000000000000

  • YARN管理界面:
  • HDFS管理界面:

3.6、MapReduce wordcount测试

  • 创建存放文件目录和计算结果输出目录
    $ hadoop fs -mkdir  /user/hadoop/input$ hadoop fs -mkdir  /user/hadoop/output
  • 上传测试文件
    $ hadoop fs -put The_Man_of_Property /user/hadoop/input
  • 启动测试

    $ hadoop jar /home/hadoop/app/hadoop/hadoop-2.7.5/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.5.jar wordcount /user/hadoop/input /user/hadoop/output/wordcounttest
  • 查看输出结果
$ hadoop fs -ls /user/hadoop/output/wordcounttestFound 2 items-rw-r--r--   3 hadoop supergroup          0 2018-01-17 14:32 /user/hadoop/output/wordcounttest/_SUCCESS-rw-r--r--   3 hadoop supergroup     181530 2018-01-17 14:32 /user/hadoop/output/wordcounttest/part-r-00000$ hadoop fs -get /user/hadoop/output/wordcounttest/part-r-00000 ./$ cat part-r-00000 |sort -k2 -nr|headthe 5144of  3407to  2782and 2573a   2543he  2139his 1912was 1702in  1694had 1526

4、参考资料

转载于:https://blog.51cto.com/balich/2062052

你可能感兴趣的文章
Python黑帽编程 4.1 Sniffer(嗅探器)之数据捕获(上)
查看>>
Elasticsearch基础教程
查看>>
P3389 【模板】高斯消元法
查看>>
zoj 2876 Phone List
查看>>
logback+slf4j作为日志系统
查看>>
Global Mapper如何加载在线地图
查看>>
黄聪:Wordpress中JQUERY链接平移效果
查看>>
反向代理服务器
查看>>
SharePoint 2010 网站备份还原简单介绍
查看>>
WebViewJavascriptBridge的基本原理
查看>>
IIS7 配置 PHP5.6
查看>>
Ubuntu 14.04 安装 boost 1_57_0
查看>>
Thread类的join()方法
查看>>
二叉树的定义与前序、中序、后序遍历
查看>>
Laravel学习--关于Relation的坑
查看>>
mysql jdbc性能优化之mybatis/callablestatement调用存储过程mysql jdbc产生不必要的元数据查询(已解决,cpu负载减少20%)...
查看>>
Q_DECLARE_PRIVATE与Q_DECLARE_PUBLIC
查看>>
springboot数据库连接池使用策略
查看>>
eclipse定制化配置调优、初始化配置指南、可以解决启动慢等问题
查看>>
react实现多行文本超出加省略号
查看>>