目录
1、localhost:ssh:connect to host localhost port 22:connection refused
一、部署环境安装说明
部署环境:Vmware+Ubuntu18+jdk8
如果没有安装环境,可以参考:
Linux虚拟机基础安装与配置_Beric_Q的博客-CSDN博客
二、Hadoop安装
1、下载Hadoop
从hadoop官网下载速度有点过于慢(要是能科学上网应该也挺快),所以我们采用清华源下载。
下载地址:
https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/stable/hadoop-3.3.1.tar.gz
为了便于文件管理,将Hadoop下载到/opt目录下。
在命令行里,先进入/opt目录,键入:
cd /opt
然后:
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/stable/hadoop-3.3.1.tar.gz
安装好后如图:
2、解压Hadoop安装包
将hadoop安装包解压到/usr/local目录下,键入:
tar -zxvf hadoop-3.3.1.tar.gz -C/usr/local
等待安装好后,切换到/usr/local目录下,查看安装情况
可以看到已经装好了,但是名字太长了,所以咱们重命名一下,键入:
mv Hadoop-3.3.1/ hadoop
可以看到已经修改好了
三、配置Hadoop安装环境
1、设置SSH免密登录
首先下载SSH,先更新软件包,键入:
sudo apt-get update
安装SUDO
sudo apt-get install sudo
安装SSH
sudo apt-get install openssh-server
# 或者
sudo apt install openssh-server
注:此处如果出现问题,可以参考:【一些可能出现的bug的解决方案】的【1、localhost:ssh:connect to host localhost port 22:connection refused】
键入:
ssh-keygen -t rsa -P ''
生成无密码的密钥对,如果如图询问保存路径
直接回车就行。
出现如图所示界面,就是装好了。
然后将会生成密钥对:【id_rsa】和【id_rsa.pub】,默认保存在~./ssh目录下。
接下来,把id_rsa.pub追加到授权的key里面去。键入:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
然后修改权限,键入:
chmod 600 ~/.ssh/authorized_keys
然后启用RSA认证,键入:
vim /etc/ssh/sshd_config
修改ssh配置:
PubkeyAuthentication yes # 启用公钥私钥配对认证方式
AuthorizedKeysFile %h/.ssh/authorized_keys # 公钥文件路径
修改方式:把这个文件里面这两行前面的注释去掉。如图所示:
然后保存并退出
注:如果此处该文件是空的,可能是因为ssh安装有问题,建议参考:【一些可能出现的bug的解决方案】的【1、localhost:ssh:connect to host localhost port 22:connection refused】重新安装ssh
2、配置环境变量
在命令行键入:
sudo vim /etc/profile
在/etc/profile的文件最后面加上这两行
加完后,点击【ESC】,输入【:wq】保存并退出。
使环境变量生效,键入:
source /etc/profile
然后键入:
hadoop version
这样显示,就是说明环境变量配置的没问题了。
但是安装Hadoop的过程还没有结束,继续往下看哦。
3、配置Hadoop相关文件
总共需要配置三个文件,分别是:
- hadoop-env.sh
- core-site.xml
- hdfs-site.xml
这三个文件位于$HADOOP_HOME/etc/profile目录下。$HADOOP_HOME指Hadoop的安装位置,按照此教程的话,该位置为/usr/local/Hadoop。
也就是说,这两个是等价的:
$HADOOP_HOME/etc/profile
/usr/local/Hadoop/etc/profile
因此,键入:
cd /usr/local/hadoop/etc/hadoop
# 或者
cd $HADOOP_HOME/etc/hadoop
切换到这三个文件的目录下。
然后进行环境配置。
hadoop-env.sh配置
hadoop-env.sh文件主要是配置JDK的位置。
如果忘记了JDK的位置,可以键入:
echo $JAVA_HOME
接下来正式进行文件配置。键入:
vim hadoop-env.sh
在首行插入如下代码:
export JAVA_HOME=/usr/lib/jdk
如果jdk没有安装在/usr/lib/jdk,也可以自己选择jdk的安装地址,替换/usr/lib/jdk
然后,保存并退出。
core-site.xml配置
在相同的目录下,键入:
vim core-site.xml
在该文件末尾的configuration标签中,插入如下代码:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/data/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
</configuration>
如图所示
上面这一大堆代码,主要做了两个配置:
1、指定HDFS的URI是hdfs://localhost:9000。
2、设定Hadoop的临时文件存放在Linux文件系统中的/data/hadoop/tmp目录下。
然后,保存并退出。
hdfs-site.xml配置
在相同目录下,键入:
vim hdfs-site.xml
在configuration标签下,插入如下代码:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/data/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/data/hadoop/hdfs/data</value>
</property>
</configuration>
如图所示:
亿点点说明:
1、replication指的是副本数量,我们现在是单节点,所以是1.
2、dfs.namenode.name.dir指定namenode节点存放数据的位置。
3、dfs.datanode.data.dir指定datanode节点存放数据的位置。
然后,保存并退出。
4、创建相关文件夹
在刚刚的配置文件中,配置了一些文件夹路径,但是还没创建它,现在来创建一下。
在/data/hadoop/目录下建立这些目录,执行以下代码:
mkdir /data
mkdir /data/hadoop
mkdir /data/hadoop/tmp
mkdir /data/hadoop/hdfs
mkdir /data/hadoop/hdfs/data
mkdir /data/hadoop/hdfs/name
全部执行完后,文件夹情况如图所示:
5、验证
现在,配置工作已经基本完成,接下来进行一些验证工作。主要三步:
- 格式化HDFS文件
- 启动hadoop
- 验证hadoop
1.格式化HDFS文件
键入:
hadoop namenode -format
出现以下两行即是成功:
2.启动hadoop
键入:
start-dfs.sh
这一步可能会出现:
localhost:ssh:connect to host localhost port 22:connection refused
dpkg:错误:无法新建文件…没有那个文件或目录
的报错,如果出现此情况,请查看【一些可能出现的bug的解决方案】的【1】和【2】
正常启动后,键入:
jps
若是出现这四行,就打开浏览器,键入:
http://localhost:9870/
出现这个界面,就是安装、配置,并且启动成功了。
四、一些可能出现的bug的解决方案
1、localhost:ssh:connect to host localhost port 22:connection refused
在键入start-dfs.sh命令后,可能会出现:
localhost:ssh:connect to host localhost port 22:connection refused
的报错,这个时候多半是因为ssh安装出现问题,推荐的解决方法是:安装/重装ssh。
键入:
ps -e | grep ssh
查看ssh安装情况,若是如图所示,只有ssh-agent,那说明ssh安装的有问题,需要重装。
键入:
sudo apt-get install openssh-server
此时可能会提示:有1个软件包没有被完全安装或卸载
建议的解决方案是:完全卸载后重装。
键入:
sudo apt-get purge openssh-server
等待跑完条后,安装openssh-server,键入:
sudo apt-get install openssh-server
然后启动ssh,键入:
sudo /etc/init.d/ssh start
显示ok后, 查看ssh安装情况,键入:
ps -e|grep ssh
若是如图所示,出现了sshd,说明安装成功。
2、dpkg:错误:无法新建文件...没有那个目录或文件
在安装ssh的时候,可能会出现这个问题。
这个问题的主要原因是/var/lib/dpkg/info这四个文件夹有某一个被改名了,所以一个个查看一下。
如果发现哪个文件夹被改名了,就改回来,此处我的虚拟机里是info文件夹被改名为info_old了,键入:
mv info_old info
把名字改回来即可。