概要
hadoop 单节点模式安装
一、系统安装
1、工具环境
(1)虚拟机:VMware woekstation 16 Player
程序:VMware-player-full-16.2.3-19376536.exe
官网:https://www.vmware.com/
下载地址:https://www.vmware.com/cn/products/workstation-player.html
https://customerconnect.vmware.com/cn/downloads/info/slug/desktop_end_user_computing/vmware_workstation_player/16_0
https://www.vmware.com/cn/try-vmware.html
(2)操作系统
操作系统:ubuntu的桌面版
程序版本:ubuntu-20.04.4-desktop-amd64.iso
下载地址:https://ubuntu.com/#download
2、系统安装
(1)使用简易安装
账号:hadoopsingle
虚拟机名称:hadoopsingle
虚拟机位置选择D盘:D:\Virtual Machines\hadoopsingle
分配磁盘100G,内存8G,cpu8核,选择磁盘为单个磁盘,网络选择桥接模式,其他默认
(2)安装Ubuntu
使用笔记本安装的,使用无线网络上网,通过虚拟机软件将络连接选择桥接模式,勾选或不勾选复制物理网络连接都可以;
激活root账号并设置密码,sudo passwd root ,输入root密码即可;
更新所有软件
apt update
apt upgrade
如何在VMware虚拟机的Ubuntu下实现与windows系统的文件(文字)互相复制粘贴
1.sudo apt autoremove open-vm-tools
2.sudo apt install open-vm-tools-desktop
3.重启系统即可
若复制失效或者报错,可使用以下办法解决:
1.apt -f install
2.reboot
配置windows主机和ubuntu虚拟机文件通过ftp传输
安装查看虚拟机IP程序
sudo apt install net-tools
查看IP
ifconfig -a
查看ftp服务
ps -ef|grep ftp
安装ftp服务
sudo apt install vsftpd
查看ftp版本
vsftpd -version
修改vsftpd.conf配置文件
安装vim编辑器
sudo apt install vim
sudo vim /etc/vsftpd.conf
去掉如下两个内容的注释通常在28和31行
local_enable=YES
write_enable=YES
重启ftp服务
sudo /etc/init.d/vsftpd restart
windows安装和配置FileZilla
FileZilla 客户端下载和安装
FileZilla工具可以去官网下载即可,https://www.filezilla.cn/download
安装配置即可
FileZilla或者SecureCRT连接虚拟机过慢的解决方法
问题原因:
当我们更换网络环境时,可能会发现终端工具连接Linux虚拟机的速度变得很慢,这是因为ssh的服务端在连接时会自动检测dns环境是否一致导致的
解决方案
我们把它修改为不检测
修改文件位置:vim /etc/ssh/sshd_config
把
#UseDNS yes
修改为
UseDNS no
然后,重启ssh服务
systemctl restart sshd
修改国外apt更新国外镜像源为国内镜像源
到/etc/apt下面更改sources.list更换国外镜像为国内镜像,是将us的地址换为cn;
cd /etc/apt
ls -l
cat sources.list
cp sources.list sources.list.bak
vim sources.list
将us的地址换成cn的地址(系统22版默认安装已换)
更新软件列表
sudo apt update
更新软件
sudo apt upgrade
查看系统版本
sudo lsb_release -a
二、hadoop安装前提
1、需要的软件
(1)jdk
3.3.3对应jdk目前支持的版本为java8或Java11,编译只能是Java8,所以安装java8;
链接地址为:https://www.oracle.com/java/technologies/downloads/
java8下载地址为:https://www.oracle.com/java/technologies/downloads/#java8-linux
对应版本地址:https://www.oracle.com/webapps/redirect/signon?nexturl=https://download.oracle.com/otn/java/jdk/8u341-b10/424b9da4b48848379167015dcc250d8d/jdk-8u341-linux-x64.tar.gz
#sudo apt install openjdk-8-jre-headless # version 8u312-b07-0ubuntu1~20.04
#apt install openjdk-8-jdk-headless # version 8u342-b07-0ubuntu1~20.04
#可以使用ubuntu推荐自带的java8
(2)hadoop
目前安装的版本为3.3.3;
链接地址为:https://dlcdn.apache.org/hadoop/common/hadoop-3.3.3/hadoop-3.3.3.tar.gz
2、配置
(1)ssh免密登录
查看是否安装ssh
rpm -qa | grep ssh
sudo apt install rpm
查询ssh安装路径
which ssh
usr/bin/ssh
查询pdsh安装路径
which pdsh
#卸载程序和所有配置文件。在终端中输入以下命令,把替换成你希望完全移除的程序:
#sudo apt --purge remove pdsh
系统默认没有安装pdsh
安装SSH,配置SSH无密码登录
sudo apt install openssh-server
安装ssh
apt install ssh
安装pdsh
apt install pdsh
查询ssh安装路径
which ssh
usr/bin/ssh
因为 ssh 默认禁止 root 用户访问,需要修改 sshd_config 文件中的 PermitRootLogin 数据为 yes;
vim /etc/ssh/sshd_config
找到:
# Authentication:
#LoginGraceTime 2m
#PermitRootLogin prohibit-password
修改为:
PermitRootLogin yes
再重启sshd服务 ,重启命令:systemctl restart sshd.service
进入 ~/.ssh/ 目录
若不存在,需要执行一次
使命令登陆本机:
ssh localhost
输入 yes
然后按提示输入主机密码
按四下回车
再重启sshd服务 ,重启命令:systemctl restart sshd.service
cd ~/.ssh/
ssh-keygen -t rsa
按回车即可
授权
cat ./id_rsa.pub >> ./authorized_keys
查看服务进程
ps -ef|grep ssh
下一次连接就不用输入密码了,exit可退出当前主机
cd /
cd ~
ssh localhost
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
(2)关闭防火墙
sudo ufw status: 查看防火墙状态,inactive是关闭状态,active是开启状态
sudo ufw enable:开启防火墙
sudo ufw default deny:启动默认防御,作用:关闭所有外部对本机的访问(本机访问外部正常)
sudo ufw disable:关闭防火墙
sudo ufw allow|deny [service]:禁用防火墙
选择关闭状态
(3)创建用户
单机版,为了避免权限限制,我们使用root安装,省略创建用户过程;
useradd hadoop
passwd hadoop (直接输入两次密码即可)
注意:我都是用root用户操作,故这一步可以不用切换到hadoop用户。
(4)修改机器名
获取主机名:hostname或uname -a
临时修改主机名,命令行下运行命令:“hostname 新主机名”
其中“新主机名”可以用任何合法字符串来表示。不过采用这种方式,新主机名并不保存在系统中,重启系统后主机名将恢复为原先的主机名称。
永久修改主机名,在Ubuntu系统中永久修改主机名也比较简单。主机名存放在/etc/hostname文件中,修改主机名时,编辑hostname文件,在文件中输入新的主机名并保存该文件即可
查看网卡相关信息:ifconfig
如果没有,安装:sudo apt install net-tools
修改/etc/hosts配置文件
/etc/hosts存放的是域名与ip的对应关系,域名与主机名没有任何关系,你可以为任何一个IP指定任意一个名字。
修改主机名与IP地址映射关系:vim /etc/hosts
在最后一行添加 ip地址 主机名,如:192.168.1.252 ubuntu
修改后重启系统
sudo reboot
3、安装jdk
安装 OpenJDK 8
sudo apt update
sudo apt upgrade
验收是否有jdk安装:java -version
没有安装
#sudo apt install openjdk-8-jre-headless # version 8u312-b07-0ubuntu1~20.04
#apt install openjdk-8-jdk-headless # version 8u342-b07-0ubuntu1~20.04
我自定义安装
1、下载linux版jdk jdk-8u341-linux-x64.tar.gz
2、将jdk拷贝到安装目录,jdk存放地址为/opt/jdk/
3、执行命令 tar -zxvf jdk-8u341-linux-x64.tar.gz,解压jdk
首先使用which找到 Java 安装路径:
which java
/opt/jdk/jdk1.8.0_341/bin/java
4、配置环境变量
sudo vim /etc/profile,文件末尾加上如下环境变量配置
export JAVA_HOME=/opt/jdk/jdk1.8.0_341
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
5 5、重启配置 source /etc/profile
6、查看是否配置成功。输入命令 java -version
JAVA_HOME 环境变量
(1)Java 安装路径
/opt/jdk/jdk1.8.0_341
(2)打开/etc/environment文件:
/** sudo nano /etc/environment
sudo apt install vim
sudo vim /etc/environment
在文件的末尾,添加下面的行:
JAVA_HOME=/opt/jdk/jdk1.8.0_341
想要让修改在当前 shell 生效,你可以登出系统,再登入系统,或者运行下面的命令:
source /etc/environment
验证 JAVA_HOME 环境变量被正确设置:
echo $JAVA_HOME
(3)配置环境变量
vim /etc/profile
在这个文件最后添加如下两行:
export JAVA_HOME=/opt/jdk/jdk1.8.0_341
export PATH=$JAVA_HOME/bin:$PATH
使这个配置文件生效
source /etc/profile
验证
java -version
(4)root用户如果关闭终端后,依旧没有,支持如下操作
但是此方法有时退出终端后,再进入终端又会失效,所以可以:
su root
cd /root
vim /root/.bashrc
//在尾部添加:
source /etc/profile
4、安装hadoop
上传或下载hadoop-3.3.3.tar.gz
#官网下载:hadoop3.3.3
#wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.3/hadoop-3.3.3.tar.gz
cp /home/hadoopsingle/Desktop/share/hadoop-3.3.3.tar.gz /opt/hadoop/.
tar -zxvf /opt/hadoop/hadoop-3.3.3.tar.gz -C /opt/hadoop/
至目录 /opt/hadoop/
#重命名 mv hadoop-3.3.3 hadoop
修改文件权限 sudo chown -R 0600 /opt/hadoop/hadoop-3.3.3
进入hadoop目录
cd /opt/hadoop/hadoop-3.3.3
验证hadoop版本
./bin/hadoop version
5、配置env和profile
配置env文件 修改JDK路径
vim /opt/hadoop/hadoop-3.3.3/etc/hadoop/hadoop-env.sh
vim /opt/hadoop/hadoop-3.3.3/etc/hadoop/mapred-env.sh
vim /opt/hadoop/hadoop-3.3.3/etc/hadoop/yarn-env.sh
添加:export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
配置环境变量
vim /etc/profile
在文件最后添加如下三行
export JAVA_HOME=/opt/jdk/jdk1.8.0_341
export HADOOP_HOME=/opt/hadoop/hadoop-3.3.3
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
使这个配置文件生效
source /etc/profile
验证
hadoop version
6、hadoop独立操作配置
独立操作,默认情况下,Hadoop 配置为以非分布式模式运行,作为单个 Java 进程。这对于调试很有用。
The following example copies the unpacked conf directory to use as input and then finds and displays every match of the given regular expression. Output is written to the given output directory.
pwd /opt/hadoop/hadoop-3.3.3
mkdir input
cp etc/hadoop/*.xml input
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.3.jar grep input output 'dfs[a-z.]+'
cat output/*
7、修改核心组件文件
vim /opt/hadoop/hadoop-3.3.3/etc/hadoop/core-site.xml
创建临时目录,mkdir tmp
配置里面添加:
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/opt/hadoop/hadoop-3.3.3/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
8、修改文件系统文件
vim /opt/hadoop/hadoop-3.3.3/etc/hadoop/hdfs-site.xml
配置里面添加:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/opt/hadoop/hadoop-3.3.3/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/opt/hadoop/hadoop-3.3.3/tmp/dfs/data</value>
</property>
<!-- 注释>
<property>
<name>dfs.namenode.http-address</name>
<value>0.0.0.0:50700</value>
</property>
<!-->
</configuration>
9、修改yarn文件
vim /opt/hadoop/hadoop-3.3.3/etc/hadoop/yarn-site.xml
配置里面添加:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</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_HOME,PATH,LANG,TZ,HADOOP_MAPRED_HOME</value>
</property>
<!--注释>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>ubuntu:8088</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>ubuntu</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>ubuntu:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>ubuntu:8030</value>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>ubuntu:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>ubuntu:8033</value>
</property>
<!-->
</configuration>
10、修改文件mapreduce文件
vim /opt/hadoop/hadoop-3.3.3/etc/hadoop/mapred-site.xml
配置里面添加:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.application.classpath</name>
<value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
</property>
</configuration>
11、root用户启动hadoop需要的配置
在start-dfs.sh,stop-dfs.sh 两个文件顶部添加以下参数
vim /opt/hadoop/hadoop-3.3.3/sbin/start-dfs.sh
vim /opt/hadoop/hadoop-3.3.3/sbin/stop-dfs.sh
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
在start-yarn.sh,stop-yarn.sh两个文件顶部添加以下参数
vim /opt/hadoop/hadoop-3.3.3/sbin/start-yarn.sh
vim /opt/hadoop/hadoop-3.3.3/sbin/stop-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
12、配置完成,执行 NameNode 的格式化
进入目录cd /opt/hadoop/hadoop-3.3.3
格式化命令./bin/hdfs namenode -format
13、启动 NameNode 守护进程和 DataNode 守护进程
./sbin/start-dfs.sh
浏览 NameNode 的 Web 界面;默认情况下,它位于:默认端口号9870
http://localhost:9870/,或http://127.0.0.1:9870/,或http://192.168.1.253:9870/;
14、创建执行 MapReduce 作业所需的 HDFS 目录:
su root
cd /opt/hadoop/hadoop-3.3.3
./bin/hdfs dfs -mkdir /user
./bin/hdfs dfs -mkdir /user/root
15、将输入文件复制到分布式文件系统中
su root
cd /opt/hadoop/hadoop-3.3.3
./bin/hdfs dfs -mkdir input
./bin/hdfs dfs -put etc/hadoop/*.xml input
16、运行提供的一些示例
su root
cd /opt/hadoop/hadoop-3.3.3
./bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.3.jar grep input output 'dfs[az.]+'
17、检查输出文件:将输出文件从分布式文件系统复制到本地文件系统并检查它们
su root
cd /opt/hadoop/hadoop-3.3.3
./bin/hdfs dfs -get output output
cat output/*
或者
./bin/hdfs dfs -cat output/*
18、启动 ResourceManager 守护进程和 NodeManager 守护进程
./sbin/start-yarn.sh
19、浏览 ResourceManager 的 Web 界面;默认情况下,它位于:
http://localhost:8088/
20、运行 MapReduce 作业
21、完成后,使用以下命令停止守护进程
./sbin/stop-yarn.sh
./sbin/stop-dfs.sh
22、hadoop环境变量配置
Ubuntu搭建hadoop时,在/bin、/sbin等路径下有一些经常使用的工具.为了能够在任何路径下都能使用这些工具,而不必切换到bin/sbin路径下,需要设置hadoop的环境变量(注意:前提是已经设置好jdk环境变量,jdk环境变量参考前面的配置)
我使用的是root用户,所以进入root用户目录下
(1)hadoop的安装路径
/opt/hadoop/hadoop-3.3.3
(2)打开/etc/environment文件:
vim /etc/environment
在文件的末尾,添加下面的行:
HADOOP_HOME="/opt/hadoop/hadoop-3.3.3"
想要让修改在当前 shell 生效,你可以登出系统,再登入系统,或者运行下面的命令:
source /etc/environment
验证 HADOOP_HOME 环境变量被正确设置:
echo $HADOOP_HOME
/opt/hadoop/hadoop-3.3.3
(3)配置环境变量
vim /etc/profile
在这个文件最后添加如下两行:
export HADOOP_HOME=/opt/hadoop/hadoop-3.3.3
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
使这个配置文件生效
source /etc/profile
验证
hadoop version
(4)root用户如果关闭终端后,依旧没有,支持如下操作
但是此方法有时退出终端后,再进入终端又会失效,所以可以:
su root
cd /root
vim /root/.bashrc
//在尾部添加:
source /etc/profile
版权归原作者 hutu2022 所有, 如有侵权,请联系我们删除。