赞
踩
一开始使用vitualbox,使用的是16.4的ubuntu,问题出现在安装时报硬盘出错,然后换vm,弄了半天才发现没有root账号,只有,自然对一些文件夹没办法传文件,最后使用云服务器的18.4ubuntu带root账号,成功跳过安装环节。
运行nano ~/.bashrc,把刚才配的变量删掉,再重新配置
一般有两个问题,一个是hadoop的启动文件,还有一个是JAVA_HOME找不到
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
#!/usr/bin/env bash
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
使用java -version 能够显示java的信息,但依旧报这个错误,
解决:去hadoop/etc/hadoop下找到hadoop-env.sh,加入exportJAVA_HOME=/usr/java/jdk1.8.0_301
跟着教程走,输入这个命令显示没有这个文件夹或文件
解决:这个是相对路径,改成./bin/hdfs dfs -mkdir /user/hadoop/input
改成绝对路径即可
出现这种基本都是ssh那部分没有配好
先检查各主机中的名称是否对应
vim /etc/hosts
再试每个主机上的ssh公钥生成
ssh-keygen -t rsa
把公钥传输到其他节点,从自己到最后一个节点
ssh-copy-id -i hadoop1 //你的主机名
然后从自己到最后一个节点都走一遍ssh,看把刚才输的密码输入
这是主机之间远程数据传输的脚本,纯净版需要自己弄
先安装rsync
yum install rsync
systemctl start rsyncd.service
systemctl enable rsyncd.service
到/bin目录下创建xsync脚本
我抄的
#!/bin/sh # 获取输入参数个数,如果没有参数,直接退出 pcount=$# if((pcount!=4)); then echo Usage: $0 filename servername startno endno exit; fi # 获取文件名称 p1=$1 fname=`basename $p1` echo fname=$fname # 获取上级目录到绝对路径 pdir=`cd -P $(dirname $p1); pwd` echo pdir=$pdir # 获取当前用户名称 user=`whoami` # 获取hostname及起止号 slave=$2 startline=$3 endline=$4 # 循环 for((host=$startline; host<=$endline; host++)); do echo $pdir/$fname $user@$slave$host:$pdir echo ==================$slave$host================== rsync -rvl $pdir/$fname $user@$slave$host:$pdir done
该脚本经过修改,需要携带4个参数,分别是
filename 待发送的文件或目录名
servername 服务器前缀名
startno 服务器编号起始编号
endno 服务器编号终止编号
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。