安装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.sh | HDFS_DATANODE_USER=root HADOOP_SECURE_DN_USER=hdfs HDFS_NAMENODE_USER=root HDFS_SECONDARYNAMENODE_USER=root |
start-yarn.sh | YARN_RESOURCEMANAGER_USER=root HADOOP_SECURE_DN_USER=yarn YARN_NODEMANAGER_USER=root |
core-site.xml | <configuration> </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> |
其中标为红色的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
格外感谢这几篇文章,我不过是将大佬的思路缝合罢了: