最近搭建这个hadoop踩过不少坑,先是配置JDK搞错路径(普通用户和root用户下的路径不同),再就是hadoop版本不同导致的启动错误,网上找到的是hadoop2.*.*的版本,但是我安装的hadoop3.*.*的版本,环境配置有部分不同。希望大家不要重蹈覆辙!

下载hadoop安装包

地址:http://hadoop.apache.org/

安装配置

1.配置主机名:

  将文件中原有的主机名删除,添加你自己的主机名,保存并退出。

vi /etc/hostname

2.配置hosts文件:

  在文件最后增加机器的IP地址和刚才配好的主机名,保存并退出。

vi /etc/hosts

3.生成SSH密钥:执行以下命令,然后一直回车。来生成SSH密钥。生成的密钥文件会存放在/root/.ssh/目录下。前提是你用的root帐号登录并且生成的ssh密钥。

ssh-keygen

4.配置机器免密登录:执行以下命令、将刚才生成好的SSH密钥发送指定的机器上,来实现机器免密登录。

ssh-copy-id root@主机名

5.上传和解压下载好的Hadoop安装包,上传可以直接从xshell拖进目录

tar -zxvf hadoop-3.1.2.tar.gz(我这里写的是我的包名)

6.配置hadoop-env.sh文件:这个文件里写的是hadoop的环境变量,主要修改hadoop的JAVA_HOME、HADOOP_HOME和HADOOP_CONF_DIR 路径,修改完成后保存退出。

cd hadoop-3.1.2/etc/hadoop/

vi hadoop-env.sh

7.修改core-site.xml文件:使用vi core-site.xml打开文件,增加以下配置参数。

 <configuration>
<!--用来指定 hdfs 的老大,namenode 的地址-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://主机名:9870</value>
</property>
<!--用来指定 hadoop 运行时产生临时文件的存放目录,如果不配置默认使用/tmp目录存在安全隐患 -->
<property>
<name>hadoop.tmp.dir</name>
<value>hadoop的路径/tmp</value>
</property>
</configuration>

8.修改hdfs-site.xml:使用vi hdfs-site.xml打开文件,增加以下配置参数。

 <!--指定 hdfs 保存数据副本的数量,包括自己,默认值是 -->
<!--如果是伪分布模式,此值是 -->
<property>
<name>dfs.replication</name>
<value></value>
</property>
<!--设置 hdfs 的操作权限,false 表示任何用户都可以在 hdfs 上操作文件-->
<property>
<name>dfs.permissions</name>
<value>false</value>
</property> <property>
<name>dfs.http.address</name>
<value>0.0.0.0:</value>
</property>

9.修改mapred-site.xml:使用vi mapred-site.xml,增加以下配置参数。(hadoop3.*里面直接修改这个文件,在hadoop2.*里mapred-site.xml这个文件初始时是没有的,有的是模板文件,mapred-site.xml.template,所以需要拷贝一份,并重命名为 mapred-site.xml )

      <property>
<!--指定 mapreduce 运行在 yarn 上-->
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

10.修改 yarn-site.xml:使用vi yarn-site.xml打开文件,增加以下配置参数。

 <property>
<!--指定 yarn 的老大 resoucemanager 的地址-->
<name>yarn.resourcemanager.hostname</name>
<value>主机名</value>
</property>
<property>
<!--NodeManager 获取数据的方式-->
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>

11.配置 slaves 文件:使用vi slaves打开文件,增加以下配置参数。

hostname  #写主机名

12.配置Hadoop的环境变量:使用vi /etc/profile打开文件,增加以下配置参数。保存退出后,使用source /etc/profile命令来使配置立即生效。

 #配置hadoop的环境变量
export HADOOP_HOME=hadoop的路径
export PATH=${PATH}:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin

13.格式化namenode:使用以下命令进行格式化hadoop的namenode。出现successfully代表成功。

hadoop namenode -format

14.hadoop3.*版本的话,此时启动还会报错

是因为缺少用户定义造成的,所以在hadoop目录下分别编辑开始和关闭脚本 
vim sbin/start-dfs.sh 
vim sbin/stop-dfs.sh 
在靠上面的空白处添加内容:

  1. HDFS_DATANODE_USER=root
  2. HDFS_DATANODE_SECURE_USER=hdfs
  3. HDFS_NAMENODE_USER=root
  4. HDFS_SECONDARYNAMENODE_USER=root

vim sbin/start-yarn.sh 
vim sbin/stop-yarn.sh

在靠上面的空白处添加内容:

  YARN_RESOURCEMANAGER_USER=root
  HADOOP_SECURE_DN_USER=yarn
  YARN_NODEMANAGER_USER=root

15.启动hadoop:使用start-all.sh命令启动hadoop。启动完成后,通过jps命令查看进程节点。如果出现六个节点和地址说明成功启动。

最新文章

  1. ELK+redis集群搭建
  2. ExtJs计算两个DateField所间隔的月份(天数) new Date(str) IE游览器提示NaN 处理
  3. poj 3268 Silver Cow Party
  4. linux - markdown编辑器
  5. Jquery获取第一个子元素
  6. SIM卡基础知识
  7. JavaScript prototype.js提升JavaScript开发效率
  8. AES加密时抛出java.security.InvalidKeyException:&#160;Illegal&#160;key&#160;size&#160;or&#160;def
  9. 这里的*号实际表示就是RAC中所有实例都使用
  10. EWS 通过SubscribeToPullNotifications订阅Exchange新邮件提醒
  11. redis入门指南-附录B
  12. 《Flask Web开发——基于Python的Web应用开发实践》一字一句上机实践(上)
  13. 桶排序/基数排序(Radix Sort)
  14. B/S和C/S架构图解
  15. EF 查询视图出现重复数据
  16. java集合框架综述
  17. 允许浏览器下载exe.config文件
  18. 第六节《Git克隆》
  19. NOIP2018初赛游记
  20. Mac配置本地hadoop

热门文章

  1. 蓝牙Beacon广播数据包格式以及解析
  2. Cesium 学习(一)环境搭建
  3. linux初学者-MariaDB图形管理篇
  4. java多线程核心api以及相关概念(一)
  5. Chrome 跨域 disable-web-security 关闭安全策略
  6. Java代码计算运行时间
  7. 在vue中监听storage的变化
  8. 优雅的对象转换解决方案-MapStruct及其入门(一)
  9. macos Mojave 出现网络出错 Frame Check Sequence: Bad checksum
  10. iView 实现可编辑表格