Hadoop伪分布式环境配置
Ubuntu 20.04 master@mater
主机名(前) master
用户名(后) master
虚拟机ip 192.168.242.148
hosts 192.168.242.148 master
hadoo端口 50070
hbase端口 16010
zk“myuid”没配,伪分布式,不配置无影响
ssh免密登录
jdk1.8
Hadoop-3.1.1
hbase-2.4.12
zookeeper-3.7.1
Scala-2.12.16
Spark-3.3.0
前言
利用好快照和克隆,就省去很多没必要的“从头来过”
看一百篇博客可能不如看一个成功配置的视频
日志
start-2022/6/27
走一遍配环境的流程,单个启动均无问题,
问题:hdfs网页端 创建/删除目录 & 上传/删除文件 与命令行所见不同步
解决:hdfs路径没搞清楚,根据配置文件,hbase访问到的路径是/hbase;hdfs dfs 命令访问到的路径是/user/master(用户名),若无此路径需要leave safe mode 后自行创建,
2022/6/28
在测试中hbase shell无法使用,重配
#如果因为ssh 本机导致删除文件夹权限不足,则强制删除,方便重新配置环境
$ sudo rm -rf test
no node for /user/master
service not running
ConnectionLoss
2022/6/29
再来一次配置文件一次过
Hadoop第一次格式化,hbase可正常使用
Hadoop重新格式化之后 hbase报错 no node for /user/master
基础配置
-
命令中vi≈vim,vim是我自己装的
-
修改主机名
注意:用户名@主机名,伪分布式只需配置一个
$ sudo vim /etc/hostname #把localhost改成master(或其他)
-
配置hosts文件
$ sudo vim /etc/hosts
添加以下内容并保存:(删除有localhost的行,使用ifconfig查看本机ip地址,以下ip地址为示例)
192.168.1.83 master
-
SSH及免密登录
后续软件之间的交互都基于免密登录
#(此步骤若出错请上网查询ssh免密登录—openssh) $ cd #回到最上层目录 $ mkdir .ssh $ cd .ssh $ ssh-keygen -t rsa $ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub slave1
连续敲击回车最后输入本机密码完成免密钥登录配置
节点(虚拟机)两两之间进行ssh免密钥配置
最后实现的效果:节点(虚拟机)两两之间ssh可免密登录,ssh自己也行
查看是否配置成功
# ssh $hostname,不会被要求输入密码,要输密码就是没成 $ ssh master
-
文件传输和实际配置工具
Xshell+Xftp或者FinalShell
名称随意 “主机”填虚拟机ip 用户名&密码~~~
配置顺序
Zookeeper------Hadoop------Hbase------Scala------Spark
流水账
解压 重命名
tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz -C ../install/
tar -zxvf hadoop-3.1.1.tar.gz -C ../install/
tar -zxvf hbase-2.4.12-bin.tar.gz -C ../install/
tar -zxvf scala-2.12.16.tgz -C ../install/
tar -zxvf spark-3.3.0-bin-hadoop3.tgz -C ../install/
master@master:~/install$ mv scala-2.12.16 scala
master@master:~/install$ mv spark-3.3.0-bin-hadoop3 spark
master@master:~/install$ mv apache-zookeeper-3.7.1-bin zookeeper
master@master:~/install$ mv hadoop-3.1.1 hadoop
master@master:~/install$ mv hbase-2.4.12 hbase
主要环境变量一览
#编辑环境变量
#为确保权限足够,建议sudo执行
$ sudo vim /etc/profile
#找个中意的位置加进去
#JAVA
export JAVA_HOME=/home/master/install/jdk
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
#HADOOP
export HADOOP_HOME=/home/master/install/hadoop
export PATH=.:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
#SCALA
export SCALA_HOME=/home/master/install/scala
export PATH=$PATH:$SCALA_HOME/bin
#ZOOKEEPER
export ZOOKEEPER_HOME=/home/master/install/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
#注意不要重复定义环境变量:指在此处定义之后 在程序xxEnv.sh中就不要配置,避免运行出错
#export ZOO_LOG_DIR=/home/master/install/zookeeper/logs
#HBASE
export HBASE_HOME=/home/master/install/hbase
export PATH=$PATH:$HBASE_HOME/bin
#SPARK
export SPARK_HOME=/home/master/install/spark
export PATH=$PATH:$SPARK_HOME/bin
zookeeper配置
从最简单的入手不过分
zoo.cfg
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/home/master/install/zookeeper/data
dataLogDir=/home/master/install/zookeeper/logs
# the port at which the clients will connect
clientPort=2181
# the maximum numb