**一:git 命令**
pwd 查看当前所在文件路径
ls 查看文件夹下文件
mkdir 创建文件夹
touch 创建文件
git status 查看文件夹状态
git add 添加文件
ls 查看文件夹下文件
mkdir 创建文件夹
touch 创建文件
git status 查看文件夹当前文件是否有新修改过的
git add 添加文件路径
(将github复制成文件)
第一步:
$ git clone
打开自己的github的源库,点击右边clone and download ,换ssh,复制路径ssh形式
在指令git clone 后面添加路径
确定后再输入yes确定
第二步:配置公钥
$ ssh-keygen -t rsa -C “邮箱地址”
三次回车
在我的电脑打开用户…打开.ssh文件夹,以记事本形式打开id_rsa.pub
打开自己的github的用户设置,点击ssh and GPG keys ,添加公钥,随意命名,记事本id_rsa.pub
全复制到公钥中
再次执行git clone命令
git config --global user.email “邮箱地址”(第一次匹配新的电脑在需要秘钥的情况下使用)
git config --global user.name “用户名”(第一次匹配新的电脑在需要秘钥的情况下使用)
git commit
git push -u origin master(仓库是才创建,第一次上传文件时 要写全)
git push (第二次及以后 直接这样写)
git 命令
git add 文件路径 让创建出来的文件告诉git仓库要添加
git commit -m “要提交的内容是什么—提交日志” 将我们做的操作提交到本地git仓库
git push -u origin master (第一遍这么写,目的是设置以后默认都是往master分支上提交代码)
git pull 更新本地仓库,使本地和github统一
echo “内容” >> 要添加到的文件名称
解决代码冲突
git stash 入栈(撤回)
git pull
git stash pop 出栈
git add
ls -all 展示隐藏文件
rm -rf .git/ 强制删除 .git/ 隐藏文
git 多人合作
git init 初始化git仓库(.git文件夹生成)
git remote add origin git@github.com:kll082511/project.git 确认本地和远程仓库连接
刚开始初始化出来的git仓库是不知道推送的远端git仓库是谁,
所以需要该命令告诉他要跟哪儿个远程仓库连接
1.github 创建一个用于多人合作的git仓库
2.推送版本的代码,内容到我们的仓库中
3.默认情况下哪儿个账号创建的仓库,只有本人能提交东西上来,如果想要多人开发,需要邀请别人成为协作者
###**二:创建新的虚拟机步骤**#####
-
记得添加CD/DVD的文件路径(即CentOS-7-x86 64-DVD的路径)或者在创建的时候直接添加也可以
-
新建时,记得网络连接选择桥接网络.
-
开启新建虚拟机,进行设置.
- 1.语言选择中文简体
- 2.在安装信息摘要里,点击安装位置进去,然后不做任何修改,直接完成
- 3.点击软件选择,只执行命令测试可以选择最小安装,右侧全选;若是想选择友好的图形交互界面,可以选择GNOME桌面,右侧全选,点击完成.
- 4.选择网络和主机名选项,进入,打开以太网开关,点击完成
- 5.然后点击右下角的安装,在安装进行界面,点击ROOT密码,进行root密码设置,设置完成后,等待安装成功
-
Linux命令的通用命令格式
- 命令字 [选项] [参数]
- 选项: 用于调节命令的具体功能
- 参数: 命令操作的对象,如文件、目录名等
- 命令字 [选项] [参数]
-
目录操作命令
- pwd,cd,ls,mkdir,du
-
文件操作命令
- touch,file,cp,rm,mv,which,find
-
文件内容操作命令
- cat,more,less,head,tail,wc,grep
-
压缩命令
- gzip,bzip2,tar
-
ls: 显示文件和目录列表(list)
- 常用参数:
- -l (long) 详细信息显示
- -a(all) 显示所有子目录和文件的信息,包括隐藏文件
- -t (time)
- -A 类似于"-a",但不显示".“和”…"目录的信息
- -R 递归显示内容
- 常用参数:
-
du命令: 统计目录及文件的空间占用情况(estimate file space usage)
- -a: 统计时包括所有的文件,而不仅仅只统计目录
- -h: 以更易读的字节单位(K、M等)显示信息
- -s: 统计每个参数所占用空间总的大小
-
file: 查看文件类型
- file 文件名
-
cp命令: 复制(copy)文件或目录
- -r: 递归复制整个目录树
- -p: 保持源文件的属性不变
- -f: 强制覆盖目标同名文件或目录
- -i: 需要覆盖文件或目录时进行提醒
-
rm命令:删除(Remove)文件或目录
- 格式: rm [选项] 文件或目录
- 常用命令选项
- -f: 强行删除文件,不进行提醒
- -i: 删除文件时提醒用户确认
- -r: 递归删除整个目录树
-
mv命令: 移动(Move)文件或目录—— 如果目标位置与源位置相同,则相当于改名
- 格式: mv [选项]… 源文件或目录… 目标文件或目录
-
which命令: 显示系统命令所在目录
- which <选项> 命令名称
- 常用命令选项
- -a 将所有由PATH路径中可以找到的指令均列出,而不止第一个被找到的指令名称
-
内部命令:属于Shell解析器的一部分
- cd 切换目录(change directory)
- pwd 显示当前工作目录(print working directory)
- help 帮助
-
外部命令: 独立于Shell解析器之外的文件程序
- ls 显示文件和目录列表(list)
- mkdir 创建目录(make directoriy)
- cp 复制文件或目录(copy)
-
查看帮助文档
- 内部命令: help + 命令(help cd)
- 外部命令: man + 命令(man ls)
-
重启命令(root用户才可用)
- shutdown -r now (立即重启)
- shutdown -r 时间 (多长分钟后自动启动)
- shutdown -r 13:30 在时间为13:30时重启
- 如果是通过shutdown命令设置重启的话,可以用shutdown -c命令取消重启
-
关机命令
- halt 立刻关机
- poweroff 立刻关机
- shutdown -h now 立刻关机(root用户使用)
- shutdown -h 10 10分钟后自动关机
-
Linux运行级别:
- runlevel 切换前的运行级别,当前的运行级别(第一个数字代表未切换过的运行级别)
- init N N代表临时要切换到的运行级别
-
查看主机名
- hostname
-
修改主机名
- hostname 主机名 (一次性修改,重启后变回原来的)
- vi /etc/hostname (永久修改,修改的时配置文件)
-
测试网络连接
- ping 主机名 (按Ctrl+c停止)
-
查看网络接口信息
- 执行ifconfig命令
- 如果执行不了,需要安装,执行yum install net-tools 命令进行安装
- 安装途中,要选择y继续安装,如果不想进行选择,可以直接执行yum install net-tools -y命令,就不会
- 让你进行选择了
-
重启network网络服务
- service network restart
-
设置防火墙
查看状态: systemctl status firewalld
启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld
开机禁用 : systemctl disable firewalld
开机启用 : systemctl enable firewalld -
/etc/hosts 文件 保存主机名与IP地址的映射记录
-
su 切换到root用户
-
exit 退出到登录时的用户
-
:q 退出
-
:q! 强制退出(修改不保存)
-
:wq 保存修改退出
-
进入修改时,按i就会出现inset选项,按esc退出修改
######**三: vi文本编辑器**#####
-
vim是vi的增强版
-
插入命令
-
定位命令
-
删除命令
- dd:删除当前行
- ndd:删除光标所在当前行向下数n行
- D:删除当前行光标所在的位置后面的字符
- x:向后删除光标所在位置的字符
- X:向前删除光标前面的字符
- nX:删除前面的n个字符,光标所在的字符将不会被删
-
复制和粘贴命令
- yy或Y:复制当前行
- nyy或nY:复制以下n行
- p:在光标后面插入buffer中的内容
- P:在光标前面插入buffer中的内容
-
替换和撤销命令
- r:取代光标所在处的字符
- R:从光标所在处开始替换字符,按esc结束
- u:撤销上一步操作
- 定位命令
-
查找操作
- :set nu 设置行号
- :set nonu 取消行号
- :n 移到第n行
- :/查找的关键字
-
替换操作
- ? /old/new 将当前行中查找到的第一个字符“old” 串替换为“new”
- ? /old/new/g 将当前行中查找到的所有字符串“old” 替换为“new”
- :#,# s/old/new/g 在行号“#,#”范围内替换所有的字符串“old”为“new”
- :% s/old/new/g 在整个文件范围内替换所有的字符串“old”为“new”
- :%s/old/new 查找文件中所有行第一次出现的old,替换为new
-
其他命令
- :W[文件路径]保存当前文件
- :q 如果未对文件做改动则退出
- :q! 放弃存储名退出
- :wq或:x 保存退出
-
可视模式
- v:可视模式
- V:可视行模式
- Ctrl+v:可视块模式
- 注意:
- 在所有可视模式中,d和x键可以用删除选定的内容
- 在可视块模式中,选中所需行,按I键输入内容,之后按两次esc键,可在所有选定行光标处添加同样的内容.
用户管理命令
- 用户管理命令
-
例子含义:创建用户id为888,所属组为users,且还指定了组sys,root的用户zhangsan,其描述为"hr zhang"用户,
-
设置密码
-
useradd -u 888 -g users -G sys,root -c “hr zhang” zhangsan
-
passwd zhangsan
- 命令格式:passwd [选项] <用户名>
-
常用命令选项
-
-
修改已有用户属性
- 修改用户命令:usermod (user modify)
- -l 修改用户名(login); 例子:usermod -l a b(b改为a)
- -g 添加组 ;例子:usermod -g sys tom
- -G 添加多个组 ;例子:usermod -G sys,root tom
- –L 锁定用户账号密码(Lock);
- –U 解锁用户账号(Unlock)
- 删除用户命令:userdel(user delete)
- -r 删除账号时同时删除目录(remove)[把用户的宿主目录一并删除]
- 修改用户命令:usermod (user modify)
组命令管理
- 添加组:groupadd
- -g 指定gid
- 修改组:groupmod
- -n 更改组名(new group)
- 删除组: groupdel
- groups 显示用户所属组
- 修改用户组的属性
- 命令格式: groupmod [选项] <用户名>
- 常用命令选项
- -g: 设置想要使用的GID
- -o: 使用已经存在的GID
- -n: 设置想要使用的群组名称
- 设置组帐号密码(极少用),添加/删除组成员
- 命令格式:gpasswd [选项] 组帐号名
- 常用命令选项
- -a: 向组内添加一个用户
- -d: 从组内删除一个用户成员
- -M: 定义组成员列表,以逗号分隔
- 删除组账号
- 命令格式:groupdel <组账号名>
- 注意:只能删除那些没有被任何用户指定为主组的组.
- 显示用户所属组
- 命令格式: groups [用户名]
文件目录权限管理
-
权限
- 读®: 读取文件的内容;列出目录里的对象
- 写(w):允许修改文件;在目录里面新建或者删除文件
- 执行(x):允许执行文件;允许进入目录里
-
数字权限
- 除了用字母rwx来表示权限,还可以使用3位数字来表 达文件或目录的权限
- 读: 4
- 写:2
- 执行:1
- 除了用字母rwx来表示权限,还可以使用3位数字来表 达文件或目录的权限
-
chmod命令(change mode)
- 格式
- chmod [ugoa] [±=] [rwx] file/dir 或 chmod nnn file/dir
- 参数解释
- u:属主 g:属组 o:其他用户 a:所有用户
- +:添加权限 -:删除权限 =:赋予权限
- nnn:三位八进制的权限
- 常用命令选项
- -R 递归修改指定目录下的所有子文件及文件夹的权限
- -f 强制改变文件访问特权;如果是文件的拥有者,则得不到任何错误信息
- 例子: chmod g+w ll.txt
- 用数字表示权限(r=4,w=2,x=1,-=0)
- 例如: chmod 750 b.txt;rwx用二进制表示是111,十进制4+2+1=7
; r-x用二进制表示是101,十进制4+0+1=5
- 例如: chmod 750 b.txt;rwx用二进制表示是111,十进制4+2+1=7
- 格式
-
chown命令
- 格式:
- chown 属主 file/dir
- chown :属组 file/dir
- chown 属主:属组 file/dir
- 常用命令选项
-
-R:递归的修改指定目录下所有文件,子目录的归属
**##四: 可执行文件查找#####**
-
-
which命令:显示系统命令所在目录
- 格式:which <选项> command(命令名称)
- 常用命令选项
- -a:将所有由PATH路径中可以找到的指令均列出,而不止第一个被找到的指令名称
查询命令
- find命令
-
格式:find <路径> <选项> [表达式]
-
find查找的特点
- 从指定路径下递归向下搜索文件
- 支持按照各种条件方式查找
- 支持对查找到的文件再进一步的使用指令操作
- (例如:删除,统计大小,复制等)
-
常用命令选项
- -name 根据文件名查找
- -user 根据文件拥有者查找
- -group 根据文件所属组寻找文件
- -perm 根据文件权限查找文件
- -size 根据文件大小查找文件
- -type 根据文件类型查找(f-普通文件,c-字符设备文件,b-块设备文件,l-链接文件,d-目录)
- -o 表达式或
- -and 表达式与
-
文件内容操作命令
- cat命令:显示出文件的全部内容
- more命令:全屏方式分页显示文件内容
- 交互操作方法
- 按Enter键向下逐行滚动
- 按空格键向下翻一屏,按b键向上翻一屏
- 按q键退出
- 交互操作方法
- less命令:与more命令相同
- head命令:查看文件开头的一部分内容(默认为10行)
- 格式:head -n 文件名
- tall命令:查看文件结尾的少部分内容(默认为10行)
- 格式:tail -n 文件名
- wc命令:统计文件中的单词数量(Word Count)等信息
- 格式:wc [选项] 目标文件
- 常用命令选项
- -l:统计行数
- -w:统计单词个数
- -c:统计字节数
- grep命令:统计字节数
- 语法:grep [选项] <关键字> <文件…>
- 常用选项
- -c:计算匹配关键字的行数
- -i:忽略字符大小写的差别
- -n:显示匹配的行及其行号
- -s:不显示不存在或不匹配文本的错误信息
- -h:查询多个文件时不显示文件名
- -l:查询文件时只显示匹配字符所在的文件名
- -color=auto:将找到的关键字部分加上颜色显示
压缩命令
- gzip压缩(解压)文件或目录,压缩后缀为gz
- 格式命令:gzip [选项] 压缩(解压缩)的文件名
- -d:将压缩文件解压(decompress)
- -l:显示压缩文件的大小,未压缩文件的大小,压缩比(list)
- -v:显示文件名和压缩比(verbose)
- -num:用指定的数字num调整压缩的速度,-1或–fast表示最快压缩方法(低压缩比),-9或–best
- 表示最慢压缩方法(高压缩比).系统缺省值为6
- 格式命令:gzip [选项] 压缩(解压缩)的文件名
- bzip2 压缩(解压)文件或目录,压缩文件后缀为bz2
- 命令格式:bzip2 [-cdz] 文档名
-
-c:将压缩的过程产生
**### 五: sed和awk命令#####**
-
- 命令格式:bzip2 [-cdz] 文档名
一.sed命令 行操作
格式:sed 选项 动作
选项: -n
动作:
- a 新增 往下增加
- i 往上一行添加
- c 替换 1,5c会将这一块区域全部替换,不会每行替换
- d 删除
- p 输出
- s 替换 经常配合正则进行操作
- w 写入 sed ‘w 要被写入内容的文件(目标文件)’ 要读取内容的文件(源文件)
只要用w向文件中写入,就会将目标之前的内容全部覆盖掉 - r 读取 sed ‘2r 要读取的文件’ 加入数据的文件(目标文件)
高级操作
- | 使用管道符配合其它命令
- {} 可以让sed 执行多个命令,只是动作之间要用封号隔开
- & 替换 在&前面放内容,是在筛选出来的内容前追加;在&后加内容,是在筛选出来的内容后进行追加.
- 相当于占位符上的作用,将我们s/查询条件/ 查询到的内容,可以在s/查询条件/要替换的内容进行使用,
- 实现追加的效果
- \u 转成大写可以配合我们的&来实现将匹配的内容转成大写的操作
- ()例子:注意转义字符,转移小括号和加号```
sed ‘s/([a-z0-9_-]+)❌([0-9]+)?[0-9]+):.*$/user: \1 userid: \2 groupid: \3/’ passwd - 怎么在sed中获取分组得到的内容?
- 首先,分组的序号是从1开始,并且是按照从左到右的顺序排的,要获取使用 \分组序号 来获取,
- 例如\1就是个占位符.
二.awk 行读取
基本格式:awk 选项 ‘command’ file
格式: awk -F ‘{print NR,$3}’ file
- NR 行号
- NF 列数
- $N 第N列内容
- 选项:-F 设置分隔符 默认情况下是使用" "[空格]进行的切割
printf
- ‘{printf(“line:%3s colunm:%s user:%10s userid:%3s\n”,NR,NF,$1,$3)}’
- 要使用正则:~/正则匹配规则/
- ‘$1~/^j.*/{printf(“user:%s\n”,$1)}’
- 如果用!~就是对正则匹配内容取非
扩展格式
-
awk 选项 ‘BEGIN{} command END{}’ file
-
例如:awk -F ‘:’ ‘BEGIN{n=0} {if($3>100) name[n++]=$1} END{for(i=0;i<n;i++) print i,name[i]}’ /etc/passwd
#####**六: Hadoop安装和单节点测试** ###### #### hadoop的安装(前提必须安装了JDK,文件路径都使用的绝对路径,可以根据自己所在位置适当调整)
-
1.把hadoop安装包放在虚拟机内,解压.我的是在/home/hadoop/文件夹下放着,以下会以这个为例.
-
2.在/etc/profile或者 ~/.bash_profile里面添加hadoop的路径
- 配置之后要执行命令: . ~/.bash_profile或者. /etc/profile,使之生效,配置的哪个文件,就用哪个命令.
- 测试生效的命令是:hadoop
jak与hadoop的安装路径
alias la=‘ls -a’
export JAVA_HOME=/home/hadoop/jdk1.8.0_181
export HADOOP_HOME=/home/hadoop/hadoop-2.7.3
export PATH=
P
A
T
H
:
PATH:
PATH:JAVA_HOME/bin:
H
A
D
O
O
P
H
O
M
E
/
b
i
n
:
HADOOP_HOME/bin:
HADOOPHOME/bin:HADOOP_HOME/sbin
CLASSPATH=.:
J
A
V
A
H
O
M
E
/
l
i
b
/
t
o
o
l
s
.
j
a
r
:
JAVA_HOME/lib/tools.jar:
JAVAHOME/lib/tools.jar:JAVA_HOME/lib/dt.jar
```
export HADOOP_HOME=/home/hadoop/hadoop-2.7.3 #hadoop解压包所在路径
#在PATH变量后面添加如下命令
:
H
A
D
O
O
P
H
O
M
E
/
b
i
n
:
HADOOP_HOME/bin:
HADOOPHOME/bin:HADOOP_HOME/sbin
单节点测试
- 3.创建一个文件夹,命令是:mkdir input.
- 4.在input文件夹下创建一个test.txt文件,命令是:touch test.txt
- 5.使用命令:vim input/test.txt,进入文本编辑界面,随意输入内容.
- 6.执行命令:hadoop jar ~/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount ~/input/ ~/output
- 这个命令是利用jar包hadoop-mapreduce-examples-2.7.3.jar里的wordcount命令统计test文件夹下
- 的单词的出现次数.
- 记得关闭防火墙:systemctl disable firewalld 永久关闭防火墙;systemctl stop firewalld 暂时关闭防火墙,
- 下次启动,需要再次关闭.
- 7.执行命令:cat output/*
-
是指查看6的命令的运行结果.
####****七: Hadoop伪分布式安装步骤**####
-
1.创建用户
2.使用新创建的用户连接到虚拟机
3.防火墙关闭
- (1) systemctl status firewalld(查看状态)
- (2)systemctl disable firewalld (开机禁用)
- (3)systemctl status firewalld (关闭)
4.JDK
- (1)下载
- (2)上传
- (3)解压、改名
- (4)配置环境变量
5.hadoop配置
- (1)下载hadoop包
- (2)上传
- (3)解压,改名
- (4)配置环境变量(bin\sbin)
6.配置hadoop中几个文件
-
(1)vim hadoop-env.sh
- ①($JAVA_HOME路径设置成JDK解压包的路径/home/hadoop/jdk1.8.0_181)
-
(2)vim core-site.xml
- ①fs.defaultFS:
- 1)默认是本地文件系统file:///
- 2)使用URL统一资源定位符的格式设置成hdfs://本机的ip地址(实质是namenode的ip):9000
- 类比:jdbc:mysql://localhost:3306
- ②hadoop.tmp.dir:存放hadoop临时文件的文件目录
- ③代码如下(是放在标签内的):``
hadoop.tmp.dir //存放临时文件
/home/hadoop/tmp// 存放路径
fs.defaultFS
hdfs://172.18.24.###(记得改IP地址):9000
- ①fs.defaultFS:
-
(3)vim hdfs-site.xml:
- ①dfs.namenode.name.dir:namenode所在路径(该路径需要允许当前登录的用户具有写的权限)
- ②dfs.datanode.data.dir:datanode所在路径(该路径需要允许当前登录的用户具有写的权限)
- ③代码如下:
<name>dfs.replication</name>//设置备份(可暂时删除)
<value>1</value>
</property>
<property>
<name>hdfs.namenode.name.dir</name>
<value>file:/home/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hadoop/dfs/data</value>
</property>
- (4)vim yarn-site.xml
- ①yarn.nodemanager.aux-services:使用mapreduce_shuffle机制
- ②代码如下:`
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
cp mapred-site.xml.templete mapred-site.xml[备份一份,在备份里面写,这样模板被保存,以后好修改]
- (5)vim mapred-site.xml
- ①Mapreduce.framework.name:yarn
- ②代码如下:`
mapreduce.framework.name
yarn
hadoop namenode -format
start-all.sh
jps
#### 7.格式化HDFS
- (1)Hadoop namenode -format
- 格式化成功的标志:Storage:.....successfully
#### 8.启动HADOOP服务
- (1)start-all.sh或者start-dfs.sh and start-yarn.sh
- 成功的标志是:运行jps命令出现的如下图:
- 六个单元
#### 9.关闭hadoop服务
- (1)Stop-all.sh或者 stop-yarn.sh and stop-dfs.sh
#### 端口进程查询和结束
- 查看占用端口的进程命令如下:``
netstat -tunlp|grep (端口号|java)
- kill -9 进程号 通过杀死进程来释放端口,解决端口占用问题.
###**八:Hadoop完全分布式配置步骤**###
#### 1.xshell上的发送键输入的所有会话的功能的使用
- ①创建三个新的虚拟机,全部用xsheel打开,三个虚拟机都要创建hadoop用户,且在其根目录下,放入jdk和hadoop压缩包.
- ②右键,选择发送键输入的所有会话,在其中一个虚拟机中解压jdkhadop.其他两个虚拟机会自动同步.
- ③配置好jdk和hadoop环境
④使用scp命令把之前配好的伪分布式的5个.xml文件的内容传送到现在的三个新建虚拟机中.
格式:scp 要传输的内容 要传到的电脑的用户名@要传到的电脑的IP:要传到的这台电脑的位置
例如:
scp -r /home/tars/hadoop-2.7.3/etc/hadoop hadoop@172.18.24.190:/home/tars/hadoop-2.7.3/etc/hadoop
要传的内容是之前伪分布式配置好的hadoop解压包下的etc文件夹下的hadoop文件夹
要传到的是hadoop用户,ip是172.18.24.190.
要注意权限,如果权限都是root,使用chown -R hadoop:hadoop /home/tars/hadoop-2.7.3/etc/hadoop命令把两个hadoop文件权限全部改成hadoop用户,或者使用su权限
重复命令,注意ip地址,把剩余两台虚拟机的hadoop的文件替换掉.
###### 注意:新建的三个虚拟机是当做datanode使用的,之前创建的伪分布式当做namedata,以上操作其实主要是jdk和hadoop环境配置,以及把namenode同步配置在datanode上.这里就不需要进行格式化了,格式化是针对namenode进行的
#### 2.在hadoop解压包的etc下的hadoop文件夹下的slaves文件里加入新建的三个虚拟机的IP地址(是为把datanode写进去进行注册)
#### 3.免密操作(都是在namenode上操作)
- ①注册命令是:ssh-keygen(获取注册码,遇到写密码的地方直接回车,是为了在启动关闭时不需要密码)
- ②执行命令:ssh-copy-id hadoop@172.18.24.190 (语句执行三次,每次的IP地址写新建的三个虚拟机的地址)
- ③执行名:cat id_dsa.pub >> ~/.ssh/authorized_keys(将.pub文件复制到 .ssh 目录上)
- ④查看正常加入的datanode的命令:hdfs dfsadmin -report
#### 3.在网页上登录namenode,发现datanode没有正常加入到namenode上的解决方法
- 找到datanode虚拟机的hadoop的解压包下的logs文件夹下的namenode的log文件打开,会发现hostname的错误.这时,在namenode的/etc/hosts文件中添加三个datanode和namenode虚拟机的ip和对应给他取个名字即可.
- 例如: 172.18.24.190 datanode1
- 172.18.24.28 namenode