1.创建hadoop用户
在终端输入
sudo useradd -m hadoop -s /bin/bash
为hadoop用户设置密码,连续输入两次密码即可
sudo passwd hadoop
为Hadoop用户增加管理员权限,避免以后的麻烦
sudo adduser hadoop sudo
这里我们切换到hadoop用户,进行下一步操作
2.ssh的安装以及设置免密登录
检测ssh是否安装,有sshd说明已经启动
ps -ef |grep ssh
这边我们还需要安装ssh server,这边又yes输入yes就可以
sudo apt-get install openssh-server
登录ssh,有yes输入yes
ssh localhost
紧接着退出登录,设置无密码登录,使用ssh-keygen生成密匙,并将密匙加入到授权
exit
cd ~/.ssh/
ssh-keygen -t rsa # 这里三步回车就好了
cat ./id_rsa.pub > ./authorized_keys
这边进行验证
ssh localhost
出现这个说明免密登录设置成功
3.java环境的搭建
因为hadoop是由java编写的,所以hadoop的安装与驱动需要jdk,这边我们需要下载jdk,并且设置环境变量。
首先我们先下载所需的jdk
下载网址Java Downloads | Oracle
下载上图画圈的,下载完成之后,连接虚拟机与xftp,由于需要直到虚拟机的ip地址,我们进入虚拟机输入指令
ifconfig
目前没有下载所需的配置,这边下载一下,如果没有则不下载
sudo apt install net-tools
再次查看ip,这边可知ip是192.168.220.132
打开xftp新建会话
这边最好在hadoop的家目录下创建一个为downloads的目录
mkdir downloads
将jdk传输到downloads目录下
在虚拟机上切换到downloads目录下
cd downloads
接下来我们进行jdk的解压和安装,按着代码来就好了
mkdir downloads
cd downloads
cd /usr/lib
sudo mkdir jvm #创建存放jdk的文件夹
cd /home/hadoop/downloads
ls #展示jdk名称
sudo tar -zxvf jdk-18_linux-x64_bin.tar.gz -C /usr/lib/jvm #这边按照你自己下的版本名
给解压的jdk改名
cd /usr/lib/jvm
ls
sudo mv jdk-18.0.2.1 java
设置jdk的环境变量
vim /etc/profile
如果提示没有vim,则下载安装vim
sudo apt install vim
再执行上述代码
这边还要给 /etc/profile 增加可写权限
这边考虑简单
sudo chmod a+w /etc/profile
在后面添加
export JAVA_HOME=/usr/lib/jvm/java
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
使变量生效
source /etc/profile
检查环境变量是否成功
java -version
4.安装hadoop
下载hadoop,下载官网Apache Downloads
继续通过xftp上传到downloads,这边不赘述
下面进行解压安装
sudo tar -zxvf hadoop-3.3.1.tar.gz -C /usr/local
cd /usr/local/
sudo mv hadoop-3.3.1 hadoop #将文件夹名改为hadoop
检查是否安装成功
cd hadoop
bin/hadoop version
- 伪分布式配置
先给两个文件增加可写权限
sudo chmod a+w etc/hadoop/core-site.xml
sudo chmod a+w etc/hadoop/hdfs-site.xml
为xml中的configuration 标签添加如下内容:
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
修改配置文件 hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
</configuration>
编辑hadoop-env.sh
向下找到某行内容为”# export JAVA_HOME=”,修改为export JAVA_HOME=/usr/lib/jvm/java
在Hadoop安装目录下找到sbin文件夹
在里面修改四个文件
对于start-dfs.sh和stop-dfs.sh文件,添加下列参数:
#!/usr/bin/env bash
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
对于start-yarn.sh和stop-yarn.sh文件,添加下列参数:
#!/usr/bin/env bash
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
配置完成后,进行NameNode的格式化
cd /usr/local/hadoop
sudo ./bin/hdfs namenode -format
然后开启 NameNode 和 DataNode 守护进程。
cd /usr/local/hadoop
sudo ./sbin/start-dfs.sh
输入命令jps
jps
出现这个说明配置成功
但是一般来说我是没成功很多次
显示如下结果
Hadoop localhost: frankxulei@localhost: Permission denied (publickey,password)
这时我们该怎么办呢?
这说明是权限不够或者刚才免密登录根本没成功
这时我们选择切换root用户,但是这时也没有设置免密,所以我们重新设置一次免密
配置SSH
1、建议先删除一下ssh的目录,重新配置
rm -r ~/.ssh
2、使用如下命令来生存公钥和私钥,参数说明:-t为选择加密算法,-P为设置密码,设置为""就表明不需要密码,主要P大写,输入命令后,一直回车即可
ssh-keygen -t rsa -P ""
3、进入到ssh目录,可以看到两个文件,id_rsa为私钥,id_rsa.pub为公钥,只要将本机内的id_rsa.pub放入到有对方机器的authorize_keys文件中,就可以ssh登录对方的机器
cd ~/.ssh
4、首先设置免密登录本机,使用cat命令将公钥添加到authorize_keys文件中,注意一个“>”表示覆盖文件,两个“>”表示在文件尾部追加,添加以后尝试免密登录本机可以,第一次连接需要输入yes确认
cat id_rsa.pub >authorized_keys
5、接下来是免密登录对方的机器,首先在对方机器做如上的操作,生成公钥和私钥,然后使用scp命令将本机的公钥追加到对方机器的authorize_keys文件中即可实现免密登录
scp id_rsa.pub 用户名@ip地址:文件目录
这里我们用 scp id_rsa.pub root@localhost
这样基本就配置完成了,如果还有问题还请大家一起探讨。
版权归原作者 浩淇害死猫 所有, 如有侵权,请联系我们删除。