hadoop安装踩坑指南(全套

安装hadoop

这里主要跟着菜鸟教程走了,因为我也对linux的很多命令一知半解。但是只是跟着菜鸟教程走的话碰到了不少bug,中间也解决了半下午。所以将这个教程上的一些不足提出来。

地址:https://www.runoob.com/w3cnote/hadoop-tutorial.html

首先hadoop需要安装Java,如果你是centos则只需要使用yun install 就可以指定Java版本,并且自动为你配置好JAVAHOME。其次是需要安装ssh命令。

安装命令为:

yum install -y java-1.8.0-openjdk-devel openssh-clients openssh-server

其次是需要下载并且安装hadoop

由于实验报告要求是2.7.1的版本,所以大家最好按照那个上面来。我自己安装了3.2.3版本。下载方式使用wget就可以(这里提示,我本地试了一下,无论用国内还是国外的源地址都会很慢,所以可以直接:

​
wget https://archive.apache.org/dist/hadoop/core/hadoop-2.7.1/hadoop-2.7.1.tar.gz

​

运行这个命令

下载完成之后,使用

tar -zxvf hadoop-2.7.1.tar.gz

进行解压

然后需要看一下你的ssh服务是不是起来了,如果没有则需要自己再看看怎么安装ssh的。用一下命令查看ssh服务是否正常

systemctl enable sshd && systemctl start sshd

这里可能回报错,不过应该也只是ssh的安装错误或者启动错误而已,小问题,大家可以自行百度解决。

等待解压完毕,ssh也正常后,就可以将hadoop添加到你的环境变量中了。

使用以下命令:

echo "export HADOOP_HOME=《你的hadoop安装地址》" >> /etc/bashrc

echo "export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin" >> /etc/bashrc 

即可添加环境变量。

然后在使用

echo "export JAVA_HOME=/usr" >> $HADOOP_HOME/etc/hadoop/hadoop-env.sh

echo "export HADOOP_HOME=《你的hadoop安装地址》 " >> $HADOOP_HOME/etc/hadoop/hadoop-env.sh

配置hadoop 内置的环境变量

然后调用以下命令

hadoop version

就可以显示hadoop的相关信息,到这里说明基础配置OK了。

再下面就要准备启动了。首先进入文件夹

cd $HADOOP_HOME/etc/hadoop

 然后修改其中的几个文件。分别是

       

start-dfs.shHDFS_DATANODE_USER=root HADOOP_SECURE_DN_USER=hdfs HDFS_NAMENODE_USER=root HDFS_SECONDARYNAMENODE_USER=root
start-yarn.shYARN_RESOURCEMANAGER_USER=root HADOOP_SECURE_DN_USER=yarn YARN_NODEMANAGER_USER=root

core-site.xml

 

<configuration>
<!-- 指定hdfs的nameservice为ns1 -->
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://namenode:9000</value>
        </property>
        <!-- Size of read/write buffer used in SequenceFiles. -->
        <property>
         <name>io.file.buffer.size</name>
         <value>131072</value>
       </property>
        <!-- 指定hadoop临时目录,自行创建 -->
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/usr/local/hadoop-3.0.2/tmp</value>
        </property>

</configuration>

hdfs-site.xml<configuration>
    <property>
      <name>dfs.namenode.secondary.http-address</name>
      <value>datanode1:50090</value>
    </property>
    <property>
      <name>dfs.replication</name>
      <value>3</value>
    </property>
    <property>
      <name>dfs.namenode.name.dir</name>
      <value>file:/usr/local/hadoop-3.0.2/hdfs/name</value>
    </property>
    <property>
      <name>dfs.datanode.data.dir</name>
      <value>file:/usr/local/hadoop-3.0.2/hdfs/data</value>
    </property>
</configuration>
mapred-site.xml<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->

     <property>
          <name>yarn.nodemanager.aux-services</name>
          <value>mapreduce_shuffle</value>
     </property>
     <property>
           <name>yarn.resourcemanager.address</name>
           <value>namenode:8032</value>
     </property>
     <property>
          <name>yarn.resourcemanager.scheduler.address</name>
          <value>namenode:8030</value>
      </property>
     <property>
         <name>yarn.resourcemanager.resource-tracker.address</name>
         <value>namenode:8031</value>
     </property>
     <property>
         <name>yarn.resourcemanager.admin.address</name>
         <value>namenode:8033</value>
     </property>
     <property>
         <name>yarn.resourcemanager.webapp.address</name>
         <value>namenode:8088</value>
     </property>
</configuration>
 

其中标为红色的core-site.xml文件需要额外注意

首先运行hostname看看输出是什么,比如我的是93936eebd7ae

然后将你所得到的结果替换掉 hdfs://namenode:9000中的namenode部分

 端口号是不需要更改的。

此处如果不修改的话,会遇到报错:Could not resolve hostname hadoop: Name or service not known

接下来就可以尝试启动hadoop了。

start-dfs.sh

注意点 1.

如果报错Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password)的话:

这里要注意的是hadoop因为设置ssh登陆,所以需要密码,在这里我们最好将其设置为免密公钥登陆。参考以下方式:

​
ssh-keygen -t rsa

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

​


格外感谢这几篇文章,我不过是将大佬的思路缝合罢了:

【大数据报错】启动dfs报错hadoop: ssh: Could not resolve hostname hadoop: Name or service not known_debimeng的博客-CSDN博客

安装hadoop3.0版本踩坑_前行中632的博客-CSDN博客

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值