Hadoop单机伪分布式安装详解


这里是一段防爬虫文本,请读者忽略。
本文原创首发于CSDN,作者IDYS
博客首页:https://blog.csdn.net/weixin_41633902/
本文链接:https://blog.csdn.net/weixin_41633902/article/details/105874991


写在开头的话

  • 请记住:实践是掌握知识的最快方法
  • 如果你只是怀着看看的态度去快速浏览文章,而不去认认真真的把文章里面讲的任何一个知识点去实践一遍,那么你永远也掌握不了它
  • 生命不息,折腾不止!

前提环境准备

配置JAVA环境

将jdk安装包传输至你的Linux宿主机中
  1. 将jdk安装包传输到Linux当中
  • 方法一:sftp方式(当然也可以用scp,或者是xshel的xftp,还有很多其它的sftp工具都可以)
    • 在CRT里面按住ALT+P即可进入sftp模式
    • put 你的Windows下jdk安装包的位置,如:
      • put D:\Users\dayuanshuai\Desktop\jdk-8u212-linux-x64.tar.gz,现在即上传文件到你的Linux当中
  • 方法二:lrzsz工具安装
    • 在Linux中安装lrzsz安装包
    • 执行rz(receive)从Linux中接收客户端文件
      • sz(send)就是从linux中发送文件到客户端
[root@dayuanshuai java]#  yum -y install lrzsz
[root@dayuanshuai java]# rz
  • 方法三:安装VMware工具,最后直接将jdk安装包拖进去就ok了
    • 挂载VMware-tool的ISO文件,然后将文件复制到/usr/local 下
    • 解压VMware压缩包
    • 直接vmware的脚本文件,不停回车即可安装完vmware-tool
    • 最后直接可以把jdk安装包拖进虚拟机当中
  • 方法四:建立VMware的磁盘映射,将jdk文件传到VMware当中
    • 这种方式即为少见,我就不介绍了
操作jdk安装包,然后配置java环境
  • 将jdk安装包移动到/usr/local/java下,并且解压
mkdir /usr/local/java 
mv jdk-8u212-linux-x64.tar.gz /usr/local/java/
tar -zxvf jdk-8u212-linux-x64.tar.gz
  • 编辑/etc/profile文件
JAVA_HOME=/usr/local/java/jdk1.8.0_212
JRE_HOME=/usr/local/java/jdk1.8.0_212/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

# 以上路径均为你jdk包存放的路径
  • 重新执行profile文件

source /etc/source

  • 查看java是否安装成功
[root@dayuanshuai ~]# java -version
java version "1.8.0_212"

[root@dayuanshuai ~]# java
用法: java [-options] class [args...]
           (执行类)
   或  java [-options] -jar jarfile [args...]
           (执行 jar 文件)
....... #省略

[root@dayuanshuai ~]# javac
用法: javac <options> <source files>
其中, 可能的选项包括:
..... #省略
  • 到此java安装成功

配置ssh免密登录

  1. 生成一对密钥对,执行ssh-keygen -t rsa -b 2048命令,这时你的家目录的.ssh目录下就有一对rsa密钥
  • 关于ssh-keygen命令的参数解释
    • -t 指定加密类型
    • -b指定密码长度
  1. 执行ssh-copy-id 用户名@主机名命令,然后输入对应的用户名密码,这时你就能实现免密登录某台主机对应的用户
#最开始登录自己主机对应的用户是需要输入密码的
[root@dayuanshuai ~]# ssh root@192.168.200.135
root@192.168.200.135's password: 
Last login: Mon Apr 27 00:19:40 2020 from 192.168.200.1
your UID=0 your home=/root

# 生成密钥对
[root@dayuanshuai ~]# ssh-keygen -t rsa -b 2048

# 复制自己的公钥到主机对应用户的~/.ssh/authorized_keys里面
[root@dayuanshuai ~]# ssh-copy-id root@192.168.200.135
#输入主机对应用户的密码
root@192.168.200.135's password: 
Now try logging into the machine, with "ssh 'root@192.168.200.135'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

# 这时再次登录,可以不用输入主机名对应用户的密码了,直接免密登录
[root@dayuanshuai ~]# ssh root@192.168.200.135
Last login: Mon Apr 27 00:33:39 2020 from dayuanshuai
your UID=0 your home=/root

安装Hadoop,及其hadoop配置

  1. /usr/local/下创建目录,然后再将Hadoop安装包复制到该目录下,之后再解压
#在/usr/local下创建bigdata_software目录
mkdir /usr/local/bigdata_software

# 移动hadoop安装包到/usr/local/bigdata_software/ 下
mv hadoop-2.4.1.tar.gz /usr/local/bigdata_software/

#解压Hadoop安装包
tar -zxvf hadoop-2.4.1.tar.gz 
  1. /etc/profile下配置Hadoop环境
# 编辑/etc/profile文件
vim /etc/profile

HADOOP_HOME=/usr/local/bigdata_software/hadoop-2.4.1
# 前面PATH下前面的是java的配置,后面才是Hadoop的环境配置
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
# 环境变量导入
export JAVA_HOME JRE_HOME CLASS_PATH HADOOP_HOME PATH
  1. 编辑Hadoop的配置文件,文件包括:core-site.xml;hdfs-site.xml;mapred-site.xml;yarn-site.xml
  • hdfs-site.xml的配置
# 配置分布式文件系统里面副本的备份个数,因为此为单机分布式,所以配置value值为1即可
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
  • core-site.xml 的配置
<configuration>
# fs.defaultFS配置uri,用户唯一资源标识符
<property>
<name>fs.defaultFS</name>
<value>hdfs://dayuanshuai:9000/</value>
</property>
# hadoop.tmp.dir即可配置Hadoop里hdfs生成的文件的存储目录
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/bigdata_software/hadoop-2.4.1/tmp</value>
</property>
</configuration>
  • mapred-site.xml配置
# 首先完成改名,hadoop只会识别mapred-site.xml而是不mapred-site.xml.template
cp mapred-site.xml.template mapred-site.xml

# 编辑文件
vim mapred-site.xml

<configuration>
# 配置mapreduce的资源调度框架是基于谁的
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
  • yarn-site.xml配置
<property>
# 资源调度的主机名,此处填写你的主机名,或者localhost都可以,dayuanshuai是我的主机名
<name>yarn.resourcemanager.hostname</name>
<value>dayuanshuai</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
  • 添加Hadoop用户,并将Hadoop目录及其目录下所有的子目录文件的所属主和所属组全部分配给Hadoop
# 添加Hadoop组
useradd hadoop

# 分配所属主和所属组
chown -R hadoop:hadoop hadoop-2.4.1
  • 跳转到hadoop用户下,格式化namenode
su - Hadoop
hadoop namenode -format
  • 运行Hadoop
[hadoop@dayuanshuai ~]$ start-dfs.sh
[hadoop@dayuanshuai ~]$ start-yarn.sh
  • 查看运行状态
[hadoop@dayuanshuai hadoo_tmp]$ jps
6630 DataNode
6535 NameNode
6810 SecondaryNameNode
7370 Jps
7054 NodeManager #yarn开启
  • 查看开启端口数量
[hadoop@dayuanshuai hadoo_tmp]$ netstat -lntp
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:50010               0.0.0.0:*                   LISTEN      6630/java           
tcp        0      0 0.0.0.0:50075               0.0.0.0:*                   LISTEN      6630/java           
tcp        0      0 0.0.0.0:50020               0.0.0.0:*                   LISTEN      6630/java           
tcp        0      0 192.168.200.135:9000        0.0.0.0:*                   LISTEN      6535/java           
tcp        0      0 0.0.0.0:50090               0.0.0.0:*                   LISTEN      6810/java           
tcp        0      0 0.0.0.0:50070               0.0.0.0:*                   LISTEN      6535/java 
.... 省略

你可以通过浏览器进入Hadoop的50070端口查看Hadoop的使用情况

  • 访问连接http://192.168.200.135:50070/;ip地址为你的Hadoop的IP地址

关于安装过程中的报错及其解决办法

提示信息:

WARN org.apache.hadoop.util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

  • 其实就是无法加载Hadoop的本地库文件,因为本地库为32位,而我的机器,系统,包括安装包都是64位
解决办法:
  1. 升级依赖库文件
yum -y update glibc
  1. 编辑/etc/profile文件,添加如下配置
HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_PREFIX}/lib/native
HADOOP_OPTS="-Djava.library.path=$HADOOP_PREFIX/lib"
export HADOOP_COMMON_LIB_NATIVE_DIR HADOOP_OPTS
  1. 编辑hadoop-env.sh文件,在末尾处添加如下文本
HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_PREFIX}/lib/native
HADOOP_OPTS="-Djava.library.path=$HADOOP_PREFIX/lib"
export HADOOP_COMMON_LIB_NATIVE_DIR HADOOP_OPTS
  1. 编辑yarn-env.sh文件,在末尾添加如下文本
HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_PREFIX}/lib/native
HADOOP_OPTS="-Djava.library.path=$HADOOP_PREFIX/lib"
export HADOOP_COMMON_LIB_NATIVE_DIR HADOOP_OPTS
  1. 上传hadoop-native-64-2.4.0.tar文件,将其解压到$HADOOP_HOME/lib/native/$HADOOP_HOME/lib/
tar -xvf hadoop-native-64-2.4.0.tar -C hadoop-2.4.1/lib/native/
tar -xvf hadoop-native-64-2.4.0.tar -C hadoop-2.4.1/lib/
  • 关于hadoop-native-64-2.4.0.tar文件的下载,链接如下:

hadoop-native-64-2.4.0.tar

hadoop-native-64-2.4.1.tar

hadoop-native-64-2.5.0.tar

hadoop-native-64-2.5.2.tar

hadoop-native-64-2.6.0.tar

hadoop-native-64-2.7.0.tar

hadoop-native-64.tar

  • 重新读取/etc/profile文件,让配置的环境变量生效
source /etc/profile

至此Hadoop单机伪分布式已经全部安装完成



写在最后的话:

  • 无论每个知识点的难易程度如何,我都会尽力将它描绘得足够细致
  • 欢迎关注我的CSDN博客,IDYS’BLOG
  • 持续更新内容
    linux基础 | 数据通信(路由交换,WLAN) | Python基础 | 云计算
  • 如果你有什么疑问,或者是难题。欢迎评论或者私信我。你若留言,我必回复!
  • 虽然我现在还很渺小,但我会做好每一篇内容。谢谢关注!

在这里插入图片描述


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值