本次搭建由于因为是课程作业,仅此来水一篇文章
搭建java环境
先查看主机上是否含有java环境
如果没有的话就进行安装java
sudo apt-get install openjdk-8-jdk
sudo gedit ~/.bashrc
先查看当前的jdk位置
添加以下内容
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 #目录要换成自己jdk所在目录
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
使环境生效
source ~/.bashrc
使用 echo $JAVA_HOME 显示JAVA_HOME即为成功
ssh免密码登录
为什么要设置这个,其实也是本作者在启动的时候才知道Hadoop 的启动脚本(如 start-dfs.sh)依赖无密码 SSH 登录到本机节点以启动服务。若未配置 SSH 密钥登录,脚本会因认证失败而无法启动进程。
安装ssh免密码登录
sudo apt-get install ssh openssh-server
安装完毕后,在终端中依次进行继以下命令操作
# 删除之前可能生成的错误文件(如果存在)
rm -rf ~/.ssh/id_rsa* ~/.ssh/authorized_keys
# 生成新的密钥对(全程直接回车,不要输入任何内容)
ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
将公钥添加到授权列表
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
设置权限
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
测试 SSH 无密码登录
ssh localhost
再验证ssh localhost 如下图,不用密码登录即为成功。
安装hadoop
安装hadoop并解压
hadoop镜像地址
下载好并解压
tar -xvzf hadoop-3.3.5-aarch64.tar.gz
配置相关的文件
core-site.xml
打开/etc中的core-site.xml 文件,加入如下语句并保存
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/hadoop-3.3.5/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
注意其中路径要修改为自己的
hdfs-site.xml
和上面一样,打开/etc中的hdfs-site.xml 文件,加入如下语句并保存
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/hadoop/hadoop-3.3.5/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/hadoop/hadoop-3.3.5/tmp/dfs/data</value>
</property>
hadoop-env.sh
查看你的 jdk安装目录
echo $JAVA_HOME
打开 hadoop-env.sh 文件配置如下并保存:
export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64" # 根据自己的路径写
创建文件夹并赋予权限
# 进入 Hadoop 安装目录
cd /usr/local/hadoop/hadoop-3.3.5
# 创建临时目录(hadoop.tmp.dir)
sudo mkdir -p tmp/dfs/name # NameNode 数据存储目录
sudo mkdir -p tmp/dfs/data # DataNode 数据存储目录
sudo mkdir -p logs # 日志目录(如果不存在)
sudo chown -R ubuntu:ubuntu tmp # 递归修改 tmp 目录权限
sudo chmod -R 755 tmp # 设置目录权限为 755(rwxr-xr-x)
sudo chown -R ubuntu:ubuntu logs # 日志目录权限(如果已存在则修改)
ls -ld tmp tmp/dfs/name tmp/dfs/data logs
运行hadoop
首先初始化HDFS系统
在hadop3.3.0目录下使用如下命令进行初始化:
bin/hdfs namenode -format
成功后如下图:
开启NameNode和DataNode守护进程
继续运行如下命令开启hadoop
sbin/stop-dfs.sh && sbin/start-dfs.sh
如下图为位开启ssh无密钥登录,所以要配置一下无密钥ssh登录:
配置好后的截图:
查看jps进程信息
jps
打开浏览器输入http://localhost:9870,成功打开
创建hadoop用户组
使用/bin/bash作为shell
# 创建 hadoop 用户组(如果尚未存在)
sudo groupadd hadoop
# 创建 hadoop 用户并指定主组为 hadoop,同时创建家目录并设置 shell
sudo useradd -m -g hadoop -s /bin/bash hadoop
设置密码
sudo passwd hadoop
添加hadoop至管理员权限
sudo usermod -aG sudo hadoop
检查用户组和权限
id hadoop
打开web端:localhost:9870
对于不能直接上传文件
那就用命令即可,先将hdfs添加至环境变量
vim ~/.bashrc
# Hadoop 环境变量
export HADOOP_HOME=/usr/local/hadoop/hadoop-3.3.5
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
保存后使之生效:
source ~/.bashrc
进行命令上传,例如:
hdfs dfs -put ~/桌面/hadoop/1.pptx /