Hadoop伪分布式环境配置
环境
用VMware搭建 Ubuntu 18.04 64位虚拟机(方法可见)
Hadoop伪分布式环境
1.安装Java环境
1.下载Linux版Java到文件夹中
注:补充里面有不挂载共享直接将宿主机和虚拟机交互的工具
2.开启宿主机与虚拟环境共享
3.挂载共享文件
vmware-hgfsclient
//查看共享文件名称,判断是否共享成功
(查看 VMware 识别的共享文件夹名称)
sudo vmhgfs-fuse .host:/VMware_shared_folder /mnt/shared -o allow_other
//将共享的文件挂载
(挂载文件)
(需要输入用户密码‘不会显示’)
4.验证挂载并找到JDK安装包
ls /mnt/shared
//查看共享文件中的文件名称,帮助找到要解压的jdk文件
5.解压并安装JDK
cd /mnt/shared
//切换到挂载目录
sudo tar -zxvf jdk-8u162-linux-x64.tar.gz -C /opt/
//解压jdk-8u162-linux-x64.tar(是你共享文件中的名称,不一定是我这个)
6.配置环境
vim ~/.bashrc
//打开环境配置
export JAVA_HOME=/opt/jdk1.8.0_162
export JRE_HOME=${JAVA_HOME/jre}
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
7.使环境变量生效
source ~/.bashrc
//使环境变量生效
8.验证JDK
java -version
//检验安装是否成功
2.安装Hadoop
1.安装Hadoop文件
2.像Java安装一样挂载共享文件夹和查找文件中的压缩包并解压到/opt文件下
3.修改文件权限
cd /opt
sudo chown -R hadoop-3.1.3
//切换到/opt目录
//将文件的所有者改为hadoop用户
4.验证Hadoop是否安装成功
cd /opt/hadoop-3.1.3
./bin/hadoop version
//如果安装成功会跳出Hadoop版本信息
3.Hadoop单机配置(非分布式)
Hadoop非分布式不需要配置
案例(grep操作):
cd /opt/hadoop-3.1.3
//跳转到hadoop的目录mkdir ./input
//创建一个input文件cp ./etc/hadoop/*.xml ./input
//将./etc/hadoop/目录下的拓展名为.xml的配置文件复制到刚刚创建的./input目录中,作为grep操作的输入源./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar grep ./output 'dfs[a-z.]+'
//./bin/hadoop jar用于执行jar程序
//./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar包含grep示例的jar包路径
//grep是要运行的示例程序名称
//./output是结果存放的目录
//'dfs[a-z.]+'是正则表达式,匹配dfs开头,后面跟一个或多个小写字母或.字符串cat ./output/*
//查看./output目录下的所有文件内容,也就是grep操作运行后的结果rm -r ./output
//Hadoop默认不会覆盖文件再次运行实例会出错,需要将./output删除
(结果)
4.Hadoop伪分布式配置
1.用gedit编辑core-site.xml文件
cd /opt/hadoop-3.1.3/etc/hadoop
//跳转到该目录
gedit core-site.xml
//使用gedit编辑器编辑该文件
<configuration><property><name>hadoop.tep.dir</name><value>file:/opt/hadoop-3.1.3/hadoop/tmp</value><description>Abase for other temporary directories.</description></property><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property>
</configuration>//将此段代码加入<configuration>,</configuration>之间
2.用gedit编辑hdfs-site.xml文件
gedit hdfs-site.xml
//使用gedit编辑器编辑该文件
<configuration><property><name>dfs.replication</name><value>1</value></property><property><name>dfs.namenode.name.dir</name><value>file:/opt/hadoop-3.1.3/hadoop/tmp/dfs/name</value></property><property><name>dfs.datanode.data.dir</name><value>file:/opt/hadoop-3.1.3/hadoop/tmp/dfs/data</value></property>
</configuration>//将此段代码加入<configuration>,</configuration>之间
5.伪分布式下NameNode格式化
cd /opt/hadoop-3.1.3
./bin/hdfs namenode -format
//NameNode格式化命令
6.伪分布式运行实例
1.启动Hadoop相关服务
cd /opt/hadoop-3.1.3
./sbin/start-dfs.sh
//开启服务
2.在HDFS中创建用户目录
./bin/hdfs dfs -mkdir -p /user/hadoop
//-p表示如果父目录不在则递归创建
//以“./bin/hadoop dfs”开头的Shell命令方式有三种
1.hadoop fs 适用于任何不同的文件系统
2.hadoop dfs 只能适用于HDFS文件系统
3.hdfs dfs 只能适用于HDFS文件系统
3.创建input目录并复制指定xml文件到input目录
./bin/hdfs dfs -mkdir input
./bin/hdfs dfs -put ./etc/hadoop/*.xml input
//在HDFS创建中创建input目录
//将指定的xml文件复制到input目录
./bin/hdfs/dfs -ls input
//查看input目录
4.运行MapReduce作业
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar grep input output 'dfs[a-z.]+'
//./bin/hadoop jar运行Hadoop中的JAR包——这里指定运行hadoop-mapreduce-examples-3.1.3.jar这个实例JAR包
./bin/hdfs dfs -cat output/*
//查看运行结果
5.删除输出目录(不然下次运行会报错——运行程序时不能存在输出目录)
./bin/hdfs dfs -rm -r output
//删除输出目录
6.关闭Hadoop
./sbin/stop-dfs.sh
//关闭Hadoop运行
7.伪分布式切换回非分布式
删除core-site.xml、hdf-site.xml中的配置项
将Hadoop伪分布式配置中添加的配置项删除
补充
1.安装SSH,配置SSH无密码登录
1.安装SSH
sudo apt-get install openssh-server
//安装SSH server
2.登录本机
ssh localhost
//登录本机
3.生成密钥并授权
exit
//退出本机
cd ~/.ssh/
//进入目录,如果没有该目录,执行一次 ssh localhost
ssh-keygen -t rsa
//回车会有提示
ssh-copy-id localhost
//加入授权
//连续回车两次——不设置密码
2.安装宿主机和虚拟机的交互工具(可以不挂载共享文件直接得到要的安装包)
1.安装工具
sudo apt-get remove open-vm-tools
//删除
sudo apt-get install open-vm-tools
//下载
sudo apt-get install open-vm-tools-desktop
//优化
3.下载编辑器
sudo apt-get install vim
sudo apt-get install gedit
//下载命令