http://www.bubuko.com/infodetail-3137033.html
cd
1、/ 代表根目录
2、. 当前目录
3、.. 上级目录
4、~ 当前用户的默认工作目录
/.. /. 直接返回根目录
安装Linux教程:
参考: https://www.cnblogs.com/frankdeng/p/9027037.html
VMnet1对应仅主机模式
VMnet8对应NAT模式
以 VMnet8的IP作为基础
进入root模式才能修改
进入root命令
su 或者 su root
修改主机名:
sudo vim /etc/sysconfig/network
删除network文件其他内容,添加:
NETWORKING=yes
HOSTNAME=hadoop101
执行命令 sudo hostname hadoop101
exit重启终端,主机名称修改成功
E325: 注意 发现交换文件 “*.swp“ 解决方法
解决法案:
1、用命令恢复非正常文件,vim -r 非正常文件,然后再删除.swap文件,再次编辑文件时,不会再提示警告。
2、用ls -al命令查询出.swap隐藏文件,并删除,下载再编辑文件时,不会再提示警告。
一、IP修改
1:
hadoop101 IP修改:
vim /etc/sysconfig/network-scripts/ifcfg-ens33
修改 BOOTPROTO="static"
添加:
IPADDR=192.168.25.101
GATEWAY=192.168.25.2
NDS1=192.168.25.2
DNS2=8.8.8.8
2:
vim /etc/hostname
添加 hadoop101
3:
vim /etc/hosts
添加
192.168.25.101 hadoop101
192.168.25.102 hadoop102
192.168.25.103 hadoop103
4:
重启
service network restart
二、jdk 解压
将文件 jdk-8u301-linux-x64.tar.gz和hadoop-3.3.1.tar.gz上传到/opt/software_2021(software_2021文件夹是自己建立的)
jdk-8u301-linux-x64.tar.gz和hadoop-3.3.1.tar.gz解压到文件夹 /usr/lib/JDK_2021(JDK_2021文件夹是自己建立的)
读写权限:
chmod 777 software_2021
chmod 777 JDK_2021
解压:
tar -xzvf jdk-8u301-linux-x64.tar.gz -C /usr/lib/JDK_2021
tar -xzvf hadoop-3.3.1.tar.gz -C /usr/lib/JDK_2021
1、配置环境变量:
vim /etc/profile
(2)编辑模式下,在结尾或开头添加如下:java
JAVA_HOME
export JAVA_HOME=/usr/lib/JDK_2021/jdk1.8.0_301
export PATH=PATH
export CLASSPATH=.:JAVA_HOME/lib/tools.jar
HADOOP_HOME
export HADOOP_HOME=/usr/lib/JDK_2021/hadoop-3.3.1
export PATH=HADOOP_HOME/bin
export PATH=HADOOP_HOME/sbin
2、更新
source /etc/profile
hadoop version
java -version
pwd 显示当前你在什么位置
(1)bin 目录:存放对 Hadoop 相关服务(hdfs,yarn,mapred)进行操作的脚本
(2)etc 目录:Hadoop 的配置文件目录,存放 Hadoop 的配置文件
(3)lib 目录:存放 Hadoop 的本地库(对数据进行压缩解压缩功能)
(4)sbin 目录:存放启动或停止 Hadoop 相关服务的脚本
(5)share 目录:存放 Hadoop 的依赖 jar 包、文档、和官方案例
三、关闭防火墙
关闭防火墙命令
sudo systemctl disable firewalld.service
systemctl disable firewalld.service
systemctl disable firewalld
systemctl stop firewalld
查看防火墙状态
sudo firewall-cmd --state
四、SSH安装授权
ssh 安装 授权
https://www.jb51.net/article/137194.htm
CentOS 默认已安装了 SSH client、SSH server,可打开终端执行如下命令进行检验:
rpm -qa | grep ssh
安装ssh:
yum install openssh-clients
yum install openssh-server
命令测试一下 SSH 是否可用:
ssh localhost
进入ssh
cd /root/.ssh
生成公匙的命令 ssh-keygen -t rsa
私匙 id_rsa
公匙 id_rsa.pub
新建 vim authorized_keys
加入授权
cat id_rsa.pub >> authorized_keys
修改文件权限
chmod 600 ./authorized_keys
登录ssh命令
ssh localhost
退出ssh命令
exit
/usr/lib/JDK_2021/hadoop-3.3.1
/usr/lib/JDK_2021/hadoop-3.3.1/etc/hadoop
/usr/lib/JDK_2021/hadoop-3.3.1/etc/hadoop
五、CentOS 7 + Hadoop3.3.1 搭建分布式集群: 可以利用xsync /usr/lib/JDK_2021/hadoop-3.3.1/etc/hadoop
参考 https://www.cnblogs.com/thousfeet/p/8618696.html
hadoop配置路径为 :
/usr/lib/JDK_2021/hadoop-3.3.1/etc/hadoop
1、core-site.xml文件配置: vim core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop101:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/lib/JDK_2021/hadoop-3.3.1/data</value>
</property>
</configuration>
2、hdfs-site.xml文件配置:vim hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop101:9870</value>
</property>
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop103:9868</value>
</property>
</configuration>
3、mapred-site.xml文件配置:vim mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
4、yarn-site.xml文件配置:vim yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop102</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
</configuration>
5、修改hadoop-env.sh,配置java jdk路径,大概在27行配置,如下:
export JAVA_HOME=/usr/lib/JDK_2021/jdk1.8.0_301
export HADOOP_HOME=/usr/lib/JDK_2021/hadoop-3.3.1
六、利用hadoop101克隆hadoop102,hadoop103
参考 https://www.cnblogs.com/frankdeng/p/9027037.html
https://blog.csdn.net/weixin_43160263/article/details/88074318
3 台 服务器需要ssh相互授权
命令测试一下 SSH 是否可用:
ssh localhost
进入ssh cd ~/.ssh/
生成公匙的命令 ssh-keygen -t rsa
私匙 id_rsa
公匙 id_rsa.pub
新建 vim authorized_keys
加入授权
cat id_rsa.pub >> authorized_keys
修改文件权限
chmod 600 ./authorized_keys
公匙
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDRmEYNkF2R3dyE3/GGxrOby8UCsNLY5K1u2aUtwxEi7YZF+AZaFHbEFmbJKTh56VPfCsjLiOiVS4zRJ87D09wOOn7E4TZOjaQ8YZDZeGmISiZEBw4ggZKxnq/hL7icCTR2u/5IcNemcgTPZ9kQGH+SI+y69hspy+nVXijVzBAcMxAkdQXPhU/PFSOiMJJau/k8h2AeIKiYDQwRe4DJvI96wU1WvTn3aR285V2HGJ18Vp1s1v9ASAdLp75PMrZRktkJnqth8OIgyqM6R4G/34NtsFbvhA/eOOMZbePa6MlAGN5IXCPfyxfoafkqfW5xFgaoJWr8gUl89hjSwksC5Xgh root@hadoop102
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCzLk9GSR9ID39q6JomirKmyEdunSbGAsKjyw0BxUT6t7o9eLE6d6kXJ8V0ppHGTayX9+Txrg7d8Fay5T12Z8pEiC2IWvBd5Ni0u5r9hsTDejEvLqJ92ZjosOvsQc/ywCaTkJj50gdacAubpZjbYPewfzSwQKPnwD7ExpYARBLvDK0nw05Wa5pREXeaJCngJ7PInMf6hhdGpirdFA+hQn7pNAXXJ9qq6UQ3lwrcImmk6pQeIDUGcXTUTa0rDfYZ9UC/CW+IfqP/dvuYtwt4OrpeRG4/Z9uve5Hg775kgv/2a8dFjbuSSQQXwyFTSa+XrfPcoiwnXUL5GjYsQJkEtNTX root@hadoop101
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDIsczifiKogF4U2GrkeoviWmaoFkiGLZ4oHCLZnw1sfP9rgsBitELKvsEz1SD5xC4j2WjVpDRHTumnV0lEUVsxhQjtsCWCNXc4cBEyYUt39C2K+ElayNxwYDX+bbIg4yhGdl/OPkDSXMdWDYPKdjFUrgJ1KcLnLaZ6tvip8nxk3KZTFszY4Kk7KzORZ5ypAr0apTNl6a7qE+JCeCicj8LRryz6tbwA8H2OT7Sb17YnLvJY//oRWHXKA9hEZOiG2XSa09f6J5+cS7ycNpo2xzH3yOED+1zQrNH+sXQXBg5FO8aVA8lVf6krgPbkRmkS0uAgb0Qd2P8HhnzZu81ag4Rf root@hadoop103
cd /root/.ssh/
1、权限不足,需要将读写权限传递给日志目录
sudo chmod -R 777 /usr/lib/JDK_2021/hadoop-3.3.1/logs
scp authorized_keys root@hadoop101:/root/.ssh/
[root@xiaoye004 .ssh]# scp authorized_keys root@xiaoye003:/root/.ssh/
远程复制传输文档:将authorized_keys文件复制传输到hadoop103的xiaoye文件夹下面
scp -r authorized_keys root@hadoop103:/xiaoye
远程同步传输文档:
rsync -av authorized_keys root@xiaoye003:/xiaoye_2021103/
删除文件夹
rm -rf xxx
查看文件大小
du -sh
/usr/lib/JDK_2021/hadoop-3.3.1
/usr/lib/JDK_2021/hadoop-3.3.1/etc/hadoop
/usr/lib/JDK_2021/hadoop-3.3.1/etc/hadoop
1、进入桌面路径为:vim /home/xiaoye/bin
在/home/xiaoye/bin文件夹下新建xsync脚本,内容如下:
!/bin/bash
获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); then
echo no args...;
exit;
fi
获取文件名称
p1=p1`
echo fname=$fname
获取上级目录到绝对路径
pdir=cd -P $(dirname $p1); pwd
echo pdir=$pdir
获取当前用户名称
user=whoami
循环
for((host=1; host<=3; host++)); do
echo fname host:host==================
rsync -rvl fname host:$pdir
done
备注:这里的ni对应自己主机名,需要做相应修改。另外,for循环中的host的边界值
2、修改脚本 xsync 具有执行权限,添加一个权限即可:
chmod 777 rsync
3、调用脚本形式:xsync 文件名称
xsync /home/xiaoye/bin
3台服务器同时配置workers ,路径是:cd /usr/lib/JDK_2021/hadoop-3.3.1/etc/hadoop
配置内容
hadoop101
hadoop102
hadoop103
二、初始化集群:
cd /usr/lib/JDK_2021/hadoop-3.3.1
格式化namenode, [root@xiaoye004 hadoop-3.3.1]#
1、命令:hdfs namenode -format
2、启动集群
hadoop101主机hadoop启动命令:sbin/start-dfs.sh
hadoop102主机hadoop启动命令:sbin/start-yarn.sh
hadoop101主机停止命令: sbin/stop-dfs.sh
hadoop102主机停止命令:sbin/stop-yarn.sh
异常:
两种解决ERROR: Attempting to operate on hdfs namenode as root的方法
https://www.cnblogs.com/nihilwater/p/13849396.html
解决方案一:可以利用xsync /etc/profile
输入如下命令,在环境变量中添加下面的配置
vi /etc/profile
然后向里面加入如下的内容
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
输入如下命令使改动生效
source /etc/profile
解决方案二: 可以利用xsync /etc/profile
将start-dfs.sh,stop-dfs.sh(在hadoop安装目录的sbin里)两个文件顶部添加以下参数
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
将start-yarn.sh,stop-yarn.sh(在hadoop安装目录的sbin里)两个文件顶部添加以下参数
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
******hadoop 异常处理1-4步:
1.停止进程
sbin/stop-dfs.sh
2.删除所有集群中hadoop-3.3.1文件夹中的data和logs文件
/usr/lib/JDK_2021/hadoop-3.3.1/data_save/dfs
rm -rf data/ logs/
格式化namenode, [root@xiaoye004 hadoop-3.3.1]#
命令:hdfs namenode -format
4.启动集群 cd /usr/lib/JDK_2021/hadoop-3.3.1
hadoop101主机hadoop启动命令:sbin/start-dfs.sh
hadoop102主机hadoop启动命令:sbin/start-yarn.sh
hadoop101主机停止命令: sbin/stop-dfs.sh
hadoop102主机停止命令:sbin/stop-yarn.sh
启动页面
http://hadoop101:9870
http://hadoop102:8088
hadoop 上传小文件
hadoop fs -mkdir /uploadFile
hadoop fs -put /opt/Software/jdk-8u301-linux-x64.tar.gz /
yarn
hadoop jar share/hadoop/
hadoop jar example110.jar /uploadFile/NOTICE.txt /output/helloCount.txt
https://blog.csdn.net/m0_46413065/article/details/116378004
六、集群时间同步:xiaoye004为时间服务器
服务器在外网环境,不需要时间同步
服务器在内网环境,必须时间同步
1.查看时间状态
systemctl status ntpd
2.开启时间
systemctl status ntpd
3.开机就开启时间
systemctl is-enabled ntpd
4.配置ntp.conf文件 路径 在 /etc
停止其他服务器ntpd
sudo systemctl stop ntpd
sudo systemctl disable ntpd
每分钟同步一次
sudo crontab -e
注意空格
*/1 * * * * /usr/sbin/ntpdate xiaoye004
sudo systemctl start ntpd
HDFS 对大数据进行储存
上传下载
hadoop fs -copyFromLocal ./shuguo.txt /sanguo
方法一:Usage:hadoop fs - copyFromLocal 本地文件 /本地文件的路径
hadoop fs -copyFromLocal ./shuguo.txt /sanguo
方法二:Usage:hadoop fs -put /本地文件 /本地文件的路径/重命名的文件
hadoop fs -put ./shuguo.txt /sanguo/shuguo1.txt
方法三:Usage:hadoop fs - moveFromLocal /本地文件/本地文件的路径/重命名的文件
hadoop fs -moveFromLocal ./shuguo.txt /sanguo/shuguo2.txt
hadoop fs -ls /sanguo
hadoop fs -cat /sanguo/wuguo.txt
hadoop fs -du -s -h /sanguo
hadoop fs -du -h /sanguo
hadoop fs -rm /sanguo/shuguo2.txt
hadoop-3.3.1.tar.gz
hadoop fs -copyFromLocal ./hadoop-3.3.1.tar.gz /jinguo