Linux安装及配置Hadoop(2.7.7)(含本人踩雷解析)

1、安装配置JDK

1.1检查系统是否有JDK环境

[root@node jdk1.8]# rpm -qa | grep jdk

1.2卸载之前的JDK环境

[root@node jdk1.8]# rpm -e --nodeps +jdk环境

1.3 解压重命名、配置环境变量

[hadoop@node ~]$ sudo tar -zxvf jdk-8u241-linux-x64.tar.gz -C /usr/lib/jvm

[root@node hadoop]# cd /usr/lib/jvm

重命名:

[root@node local]# sudo mv jdk1.8.0_241/ jdk1.8

vim ~/.bashrc

配置内容:

export JAVA_HOME=/usr/jdk1.8.0_241 # 配置Java的安装目录

export PATH=$PATH:$JAVA_HOME/bin # 在原PATH的基础上加入JDK的bin目录

使文件生效: source ~/.bashrc

  

2. Hadoop安装配置

2.1创建Hadoop用户终端里

[root@node hadoop]# useradd -m hadoop -G root -s /bin/bash

[root@node hadoop]# passwd hadoop

[root@node hadoop]# visudo

如下图,找到 root ALL=(ALL) ALL 这行(应该在第98行,可以先按一下键盘上的 ESC 键,然后输入 :98 (按一下冒号,接着输入98,再按回车键),可以直接跳到第98行 ),然后在这行下面增加一行内容:hadoop ALL=(ALL) ALL 当中的间隔为tab),如下图所示

 

2.2修改hosts文件重点)

该文件配置非常重要,可以在本机或者主机通过域名进行访问,同时可以在配置文件中使用使用该域名。

[root@node ~]# vi /etc/hosts

[root@node ~]# vi /etc/hostname

[root@node ~]# reboot

修改后要进行测试,如不行注销或者重启reboot

2.3安装SSH、配置SSH无密码登陆

(1)下载并启动查看:

/usr/sbin/sshd

netstat -tnulp

  

(2)生成密钥对: ssh-keygen ## (一直回车即可)

   

(3)将公钥放置到授权列表文件 authorized_keys中,使用命令:

cp id_rsa.pub authorized_keys

(4)修改授权列表文件 authorized_keys 的权限,使用命令:

chmod 600 authorized_keys 

(5)验证免密登录是否配置成功,使用如下命令:

ssh localhost ##

(6)退出:exit

2.4 hadoop上传、解压、改名

1 进入hadoop上传文档处:

cd  /home/hadoop

解压:

sudo tar -zxvf hadoop-2.7.7.tar.gz -C /usr/local

改名:(进入解压后的文档中:eg:  cd /usr/local

 sudo mv hadoop-2.7.7/ hadoop

 

2.5环境配置

2.5.1.配置Hadoop系统变量

(1) 首先打开/etc/profile文件(系统环境变量:对所有用户有效):

vim ~/.bashrc

(2) 在文件底部添加如下内容:

export HADOOP_HOME=/usr/local/hadoop

export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin   

# 在原PATH的基础上加入Hadoop的bin和sbin目录

(3)生效环境变量:

source ~/.bashrc

验证:

[hadoop@node hadoop]$ ./bin/hadoop version

2.5.2.配置HDFS

1.配置hadoop-env.sh,修改JAVA_HOME参数位置;

vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh

(找到JAVA_HOME参数位置,修改为本机安装的JDK的实际位置:)

 

2.配置核心组件core-site.xml

vim /usr/local/hadoop/etc/hadoop/core-site.xml

配置内容:(注意主机名)

<configuration>

<property>

<name>fs.defaultFS</name>

<!-- 用于指定NameNode的地址 -->

<value>hdfs://node:9000</value>

</property>

<!-- Hadoop运行时产生文件的临时存储目录 -->

<property>

<name>hadoop.tmp.dir</name>

<value>/hadoopData/temp</value>

</property>

</configuration>

3.配置文件系统hdfs-site.xml

vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml

配置内容:

<property>

<name>dfs.namenode.name.dir</name>

<value>/hadoopData/name</value>

</property>

<!-- DataNode在本地文件系统中存放块的路径 -->

<property>

<name>dfs.datanode.data.dir</name>

<value>/hadoopData/data</value> </property>

<!-- 数据块副本的数量,默认为3 -->

 <property>

<name>dfs.replication</name>

<value>1</value>

</property>

2.5.3配置yarn

1. 配置环境变量yarn-env.sh

  vim /usr/local/hadoop/etc/hadoop/yarn-env.sh

  

2.配置计算框架mapred-site.xml

进入hadoop所在文件下:

cd  /usr/local/hadoop/etc/hadoop

在$HADOOP_HOME/etc/hadoop/目录中默认该文件,先将文件复制并重命名为“mapred-site.xml”

cp mapred-site.xml.template mapred-site.xml

打开“mapred-site.xml”文件进行修改

vim /usr/local/hadoop/etc/hadoop/mapred-site.xml

配置内容:

<configuration>

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

</configuration>

3.配置YARN系统yarn-site.xml

vim /usr/local/hadoop/etc/hadoop/yarn-site.xml

配置内容:

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

4.格式化文件系统

hdfs namenode -format

5.脚本一键启动集群

start-dfs.sh(hdfs)

start-yarn.sh(yarn)

start-all.sh(全部)

问题解析:

(1)格式化时 输入# bin/hdfs namenode -format后,整个日志的最后会出现

BUT

所以没有问题

(2)缺少datanode

原因:每次namenode format会重新创建一个namenodeId,而tmp/dfs/data下包含了上次format下的id,namenode format清空了namenode下的数据,但是没有清空datanode下的数据,导致启动时失败,所要做的就是每次fotmat前,清空tmp一下的所有目录。

重新格式化,再启动:

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值