Ubuntu18.04下的Hadoop3.2.2详细安装与分布式集群搭建
一:jdk安装
我喜欢在root下使用命令,以下都是在root下操作的
-
使用
which Java
命令查看是否有jdk,没显示说明没有,我用的是jdk1.8的版本
-
红框里是我自己创建的文件夹,把下载好的jdk放到这个文件夹下解压
解压命令tar -zxvf jdk1.8.0_161
-
编辑文件 使用命令
vim /etc/profile
在最下面加入这三行
export JAVA_HOM=E/usr/soft/jdk/jdk1.8.0_161 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:/usr/soft/jdk/jdk1.8.0_161/bin
:wq保存成功后,一定要在命令行敲source /etc/profile
-
使用
Java -version
命令就可以查看到java版本信息了
二:Hadoop安装
1.同上面一样,进入此文件夹/usr/soft/ ,创建一个hadoop文件夹,把压缩包和解压好的文件放入
解压命令tar -zxvf hadoop-3.2.2.tar.gz
三:集群环境搭建
1.先创建3台虚拟机,第一个为主机,其余为子机,我选择直接右键克隆出其余两台机器node1和node2。
查看主机名,如果想改名字可用 vim /etc/hostname
,其余两台同样的操作
2. hosts映射3台机器,先查看IP地址,分别用ifconfig
命令查看三台主机的IP地址
三台主机修改映射文件,使用vim /etc/hosts
编辑文件,在第二行加入红框内自己的三台主机的IP地址和主机名,然后用cat /etc/hosts
查看是否编辑成功
3.防火墙关闭,Ubuntu下防火墙关闭命令是ufw disable
4.进行三台主机SSH免密登录,防止以后上传文件和启动脚本,要不停的输入密码。只要打通主机(master)和其余两台子机。
1.cd ~/.ssh
进入ssh目录下(这五步只在主机master操作)
2. ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
产生公钥私钥,第一次生成不停的按回车就可以
3.cat id_rsa.pub >> authorized_keys
将产生的SSH Key放到许可证文件下
4.ssh localhost
验证是否成功(不用输入密码就是成功)
5.ls ~/.ssh
查看文件
在node1和node2下分别执行下面操作
1.cd ~/.ssh
进入ssh目录下
3. ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
产生公钥私钥
4. scp id_rsa.pub root@master:~/.ssh/id_rsa_node1.pub
(node1下)
scp id_rsa.pub root@master:~/.ssh/id_rsa_node2.pub
(node2下)
如果出现了lost connection情况,换成ip地址 scp id_rsa.pub root@192.168.x.x(主机):~/.ssh/id_rsa_node1.pub
回到主机master,依次执行下面命令,先进入目录cd ~/.ssh
cat id_rsa_node1.pub >> authorized_keys
cat id_rsa_node2.pub >> authorized_keys
rm -rf id_rsa_node1.pub
rm -rf id_rsa_node2.pub
scp authorized_keys root@node1:~/.ssh/authorized_keys
这两步和上面一样,报错换成IP地址(node1和node2)scp authorized_keys root@node2:~/.ssh/authorized_keys
开始在主机master下分别输入ssh node1
ssh node2
验证是否成功,不用输入密码就是成功
5.接下来要开始配置五个文件了
1.进入自己安装Hadoop文件下,cd /usr/soft/hadoop/hadoop-3.2.2/etc/hadoop
,配置文件都是在此目录下
2.编辑文件vim hadoop-env.sh
,在此文件下加入以下
export JAVA_HOME=/usr/soft/jdk/jdk1.8.0_161
export HADOOP_HOME=/usr/soft/hadoop/hadoop-3.2.2
最下面加入这些
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN__RESOURCEMANAGER_USER