博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Centos 7 搭建 Hadoop3.1教程
阅读量:4609 次
发布时间:2019-06-09

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

准备五台虚拟机分别如下:

        ip       主机名

第一台  192.168.199.100      NameNode

第二台  192.168.199.101  StandbyNameNode

第三台  192.168.199.111    DataNode1

第四台  192.168.199.112    DataNode2

第五台  192.168.199.113    DataNode3

2.修改静态ip

 

3.hosts解析编辑 vi /etc/hosts

4.主机名对应(每台电脑主机名修改为对应的值)

vi /etc/hostname

修改为对应的值后重启输入hostname查看是否生效

5.关闭防火墙和安全策略

vi /etc/selinux/config

6.下载Hadoop3.1和Java1.8到根目录下

7.分别解压

8.解压后删除压缩包并重命名(分别重命名为hadoop和jdk方便后期配置)

9.配置java和hadoop的环境变量

vi /etc/profile

在文本最后添加如图代码

source /etc/profile

使环境变量生效

10.配置ssh免密登陆

http://www.cnblogs.com/dxdxh/p/8989907.html

在~/.ssh目录下输入 ssh-keygen -t rsa然后一直回车后目录下会生成两个文件

把五台电脑的id_rsa.pub里的数据复制到同一个文本里改名为authorized_keys然后给每台电脑拷贝一个到~/.ssh目录下就可以了

11.Hadoop配置文件的修改(重要)

需要修改的文件在/hadoop/etc/hadoop目录下

第一个core-site.xml 里添加如下 红色的部分为主机的ip或者主机名之前设置过hosts解析

<configuration>
 <property>
  <name>fs.defaultFS</name>
  <value>hdfs://
NameNode:9000</value>
 </property>
 <property>
  <name>hadoop.tmp.dir</name>
  <value>/hadoop/tmp</value>
 </property>
</configuration>

第二个hadoop-env.sh在里面加入如下代码

export JAVA_HOME=/jdk

export HADOOP_HOME=/hadoop

第三个hdfs-site.xml 第一个红色和第二个红色部分为主机名和备份主机名或者ip都行第三个红色部分为默认备份几份

<configuration>
 
 <property>
  <name>dfs.namenode.http-address</name>
  <value>
NameNode:50070</value>
 </property>
 <property>
  <name>dfs.namenode.secondary.http-address</name>
  <value>
StandbyNameNode:50090</value>
 </property>
 <property>
  <name>dfs.namenode.name.dir</name>
  <value>/hadoop/name</value>
 </property>
 <property>
  <name>dfs.replication</name>
  <value>
2</value>
 </property>
 <property>
  <name>dfs.datanode.data.dir</name>
  <value>/hadoop/data</value>
 </property>
</configuration>
 
第四个mapred-site.xml通知hadoop使用yarn框架
<configuration>
 <property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
 </property>
<property>
     <name>mapreduce.application.classpath</name>
     <value>
   /hadoop/etc/hadoop,
   /hadoop/share/hadoop/common/*,
   /hadoop/share/hadoop/common/lib/*,
   /hadoop/share/hadoop/hdfs/*,
   /hadoop/share/hadoop/hdfs/lib/*,
   /hadoop/share/hadoop/mapreduce/*,
   /hadoop/share/hadoop/mapreduce/lib/*,
   /hadoop/share/hadoop/yarn/*,
   /hadoop/share/hadoop/yarn/lib/*
   </value>
 </property>
</configuration>
 
第五个workers 里面加入DataNode1,DataNode2,DataNode3的ip地址或者主机名
 
第六个yarn-env.sh里加入如下
export JAVA_HOME=/jdk
 
第七个yarn-site.xml加入如下
<configuration>
<!-- Site specific YARN configuration properties -->
 <property>
  <name>yarn.resourcemanager.hostname</name>
  <value>
NameNode</value>
 </property>
 <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>
</configuration>
12.打开主机的/hadoop/sbin/目录下 
start-all.sh 和 stop-all.sh 头部加入下面七句代码
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
 
start-dfs.sh和stop-dfs.sh 头部加入下面四句代码
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
 
stop-yarn.sh和start-yarn.sh头部加入下面三句代码
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
13.格式化
hdfs namenode -format
主机的hadoop目录复制到其他所有电脑环境变量也复制到其他所有电脑然后输入hdfs namenode -format进行格式hadoop后重启所有电脑后再运行start-all.sh
scp -r /hadoop/ 192.168.199.101:/
scp -r /hadoop/ 192.168.199.111:/
scp -r /hadoop/ 192.168.199.112:/
scp -r /hadoop/ 192.168.199.113:/
scp -r /etc/profile 192.168.199.101:/etc/
scp -r /etc/profile 192.168.199.111:/etc/
scp -r /etc/profile 192.168.199.112:/etc/
scp -r /etc/profile 192.168.199.113:/etc/
hdfs namenode -format
/hadoop/sbin/start-all.sh
 
说明:
所有电脑都要安装hadoop配置并且相同
所有电脑都要格式化一次hadoop
所有电脑都要装java环境
最后进入http://192.168.199.100:50070和http://192.168.199.100:8088进入测试是否安装成功
 
 
常见错误解决
1.关于内存溢出
 
 mapred-site.xml
中添加如下代码
<property>
  <name>mapreduce.map.memory.mb</name>
  <value>4096</value>
 </property>
 <property>
  <name>mapreduce.reduce.memory.mb</name>
  <value>8192</value>
 </property>
 <property>
  <name>mapreduce.map.java.opts</name>
  <value>-Xmx3072m</value>
 </property>
 <property>
  <name>mapreduce.reduce.java.opts</name>
  <value>-Xmx6144m </value>
 </property>
 
2.无法找到或者加载主类
注意检查 mapred-site.xml下的classpath
<property>
     <name>mapreduce.application.classpath</name>
     <value>
   /hadoop/etc/hadoop,
   /hadoop/share/hadoop/common/*,
   /hadoop/share/hadoop/common/lib/*,
   /hadoop/share/hadoop/hdfs/*,
   /hadoop/share/hadoop/hdfs/lib/*,
   /hadoop/share/hadoop/mapreduce/*,
   /hadoop/share/hadoop/mapreduce/lib/*,
   /hadoop/share/hadoop/yarn/*,
   /hadoop/share/hadoop/yarn/lib/*
   </value>
 </property>

转载于:https://www.cnblogs.com/dxdxh/p/9015191.html

你可能感兴趣的文章
sql - sum() 和 count() 函数的区别
查看>>
linux mysql 安装(rpm)
查看>>
css类选择器类名覆盖优先级
查看>>
Linux常见命令
查看>>
函数的定义
查看>>
guess
查看>>
bootstrap以及考试复习
查看>>
android 中检查设备是否有网络可用
查看>>
linux磁盘命令-lsblk显现磁盘阵列分组
查看>>
vuex在页面中以对象展开运算符形式引入报错解决
查看>>
NET Remoting 示例
查看>>
文件系统典型实现方式
查看>>
20155207王雪纯 2006-2007-2 《Java程序设计》第1 周学习总结
查看>>
搭建jenkins集群node结点
查看>>
一个可收缩的panel
查看>>
ASP.NET IIS 支持PUT、DELETE请求
查看>>
网站建设中帝国cms如何循环调用栏目下级分类
查看>>
php对象的传递——“通过引用传递”or“传递的是object identifier”?
查看>>
windows(msvc)下编译boost库
查看>>
统计文件夹的大小
查看>>