Hadoop 安装与配置

  1. 创建虚拟机

这里需要下载ubuntu操作系统

  1. 创建一个hadoop用户,并使用/bin/bash 作为shell

虚拟机打开成功后,打开终端Terminal,开始创建hadoop用户

sudo useradd -m hadoop -s /bin/bash

为hadoop设置一个密码

sudo passwd hadoop

为后续操作方便,这里对hadoop用户添加管理员的权限

sudo adduser hadoop sudo

右上角注销登录,使用我们新添加的hadoop用户

选择 Switch User,更换到我们刚刚创建的新用户hadoop

以上可以在创建虚拟机时直接创建为hadoop。

这里我们先对电脑上的软件更新一下,避免后续软件安装时因为软件没有更新而失败

sudo apt-get update
3.hadoop 中的集群单点模式需要使用到SSH登录,Ubuntu默认参数了SSH client,我们需要再安装SSH Server
sudo apt-get install openssh-server

我们使用SSH登录远程服务器

ssh localhost

这里需要输入yes

因为每次需要输入密码,同时hadoop启动需要免密,我们须配置成无密码登录

首先退出ssh,回到终端窗口

exit

进入到ssh目录中

cd ~/.ssh/

然后利用ssh-keygen生成密钥

ssh-keygen -t rsa

会有提示,都按回车就可以

然后将密钥加入到授权中,此时再使用ssh localhost命令就无需登录密码了

cat ./id_rsa.pub >> ./authorized_keys
4.安装jdk

接下来我们需要安装java环境,cd返回主目录,安装jdk-8

sudo apt-get install openjdk-8-jdk

查看java版本

java -version

然后配置java环境

gedit ~/.bashrc

在文件最前面添加

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

使环境变量生效

source ~/.bashrc

查看设置的环境变量是否生效

echo $JAVA_HOME

查看是否是自己安装的java路径和版本

java -version
whereis java

以上安装和配置好后,就可以安装hadoop了.

5.下载hadoop
5.1 方法一

hadoop的安装包可以从火狐浏览器直接下载

链接:https://hadoop.apache.org/releases.html

解压

sudo tar -zxf ~/Downloads/hadoop-3.2.4.tar.gz  -C /usr/local/
5.2 方法二

或者通过手动下载,共享hadoop压缩包的文件夹

接着进入共享文件夹

cd /mnt/hgfs
ls

共享文件夹的地址,根据实际情况

cd BaiduNetdiskDownload/  
ls

注意版本不同要修改,根据实际下载版本

sudo tar -zxvf hadoop-3.1.0.tar.gz  -C /usr/local/   
6. 进入local目录,查看hadoop安装情况
cd /usr/local/

使用ls可以看到,现在的文件夹名为hadoop-3.2.4(根据下载版本),为了方便,我们将文件夹名称改为hadoop

sudo mv hadoop-3.2.4 hadoop

然后修改文件权限

sudo chown -R hadoop ./hadoop

可以来查看我们解压的hadoop是否可用

cd hadoop
./bin/hadoop version
7.hadoop 单机模式调试

Hadoop 默认模式为非分布式模式,无需进行其他配置即可运行。非分布式即单 Java 进程,方便进行调试。

我们可以执行例子来感受下 Hadoop 的运行。选择运行 grep 例子,我们将 input 文件夹中的所有文件作为输入,筛选当中符合正则表达式 dfs[a-z.]+ 的单词并统计出现的次数,最后输出结果到 output 文件夹中。

mkdir ./input
cp ./etc/hadoop/*.xml ./input
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+'
cat ./output/*    

可以看到符合正则的单词出现了一次

Hadoop默认不会覆盖结果文件,因此再次运行上面实例会提示出错,需要先将./output删除

rm -r ./output
8.hadoop伪分布式配置

接下来是hadoop伪分布式配置。Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。

Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。

gedit ./etc/hadoop/core-site.xml
<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/hadoop/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

接着配置hdfs文件

gedit ./etc/hadoop/hdfs-site.xml
<configuration>
        <property>
                <name>dfs.replication</name>
                <value>1</value>
        </property>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:/usr/local/hadoop/tmp/dfs/name</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:/usr/local/hadoop/tmp/dfs/data</value>
        </property>
</configuration>

Hadoop 的运行方式是由配置文件决定的(运行 Hadoop 时会读取配置文件),因此如果需要从伪分布式模式切换回非分布式模式,需要删除 core-site.xml 中的配置项。

配置完成后,执行 NameNode 的格式化:

./bin/hdfs namenode -format

接着开启 NameNode 和 DataNode 守护进程。

./sbin/start-dfs.sh

或者使用all来开启/结束hadoop全部进程

./sbin/start-all.sh
./sbin/stop-all.sh

启动完成后,可以通过命令 jps 来判断是否成功启动

jps

成功启动后,可以访问 Web 界面 http://localhost:9870 查看 NameNode 和 Datanode 信息

上面的单机模式,grep 例子读取的是本地数据,伪分布式读取的则是 HDFS 上的数据。要使用 HDFS,首先需要在 HDFS 中创建用户目录:

./bin/hdfs dfs -mkdir -p /user/hadoop

接着将 ./etc/hadoop 中的 xml 文件作为输入文件复制到分布式文件系统中

./bin/hdfs dfs -mkdir input
./bin/hdfs dfs -put ./etc/hadoop/*.xml input

复制完成后,可以通过如下命令查看文件列表

./bin/hdfs dfs -ls input

伪分布式运行 MapReduce 作业的方式跟单机模式相同,区别在于伪分布式读取的是HDFS中的文件

./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+'

查看运行结果的命令

./bin/hdfs dfs -cat output/*

我们也可以将运行结果取回到本地:

rm -r ./output 

先删除本地的 output 文件夹(如果存在)

将 HDFS 上的 output 文件夹拷贝到本机

./bin/hdfs dfs -get output ./output 
cat ./output/*

# 删除 output 文件夹

./bin/hdfs dfs -rm -r output 

关闭Hadoop

./sbin/stop-dfs.sh
9.问题总结
9.1 gedit出现无法连接的情况

修改java环境时,gedit可能会出现Unable to init server 无法连接的情况,使用命令:

xhost local:gedit

出现non-network local connections being added to access control list 表示解决,若出现xhost: unable to open display “”,则使用命令:

export DISPLAY=:0
xhost local:gedit

即可解决。或者不使用gedit命令,使用nano或者vim命令替代。

9.2 开启守护进程时出现Permission denied (publickey,password).

原因未配置ssh 免密登录。

9.3 安装SSH server时,sudo apt-get install openssh-server 命令后出现:

解决:

sudo rm /var/lib/dpkg/lock-frontend
sudo rm /var/lib/dpkg/lock
sudo rm /var/cache/apt/archives/lock

三个都用了一遍,不知道哪个起了作用。

10.参考资料

【什么是Hadoop,浅谈大数据框架Hadoop】https://www.bilibili.com/video/BV1WN411Q7wC?vd_source=d238ba72fa82353a469bcc36b64d8aa2

(63条消息) Hadoop史诗级入门详解_hadoop详解_红糖番薯的博客-CSDN博客

Hadoop安装教程_单机/伪分布式配置 - 简书 (jianshu.com)

  • 64
    点赞
  • 528
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
Hadoop是一个开源的分布式计算系统,用于处理大规模数据集的分布式存储和处理。下面是Hadoop的安装步骤: 1. 下载Hadoop:你可以从Apache官方网站上下载Hadoop的最新版本。选择合适的版本和文件类型进行下载。 2. 解压Hadoop压缩包:将下载的压缩包解压到你想要安装Hadoop的路径下。 3. 配置环境变量:编辑你的环境变量文件(如.bashrc或.profile),将Hadoop的bin目录添加到PATH变量中。例如,在.bashrc文件中添加以下行: export HADOOP_HOME=/path/to/hadoop export PATH=$PATH:$HADOOP_HOME/bin 保存文件后,运行以下命令使其生效: source ~/.bashrc 4. 配置Hadoop:进入Hadoop的安装目录,在conf目录下找到core-site.xml、hdfs-site.xml、mapred-site.xml和yarn-site.xml这四个配置文件,进行必要的配置。主要配置项包括文件系统的URI、数据存储路径、任务调度器等。 5. 设置SSH无密码登录:Hadoop使用SSH来管理集群节点之间的通信,因此需要设置SSH无密码登录。确保你可以通过SSH无密码登录到本地和所有集群节点。 6. 格式化HDFS文件系统:在Hadoop安装目录下执行以下命令,格式化HDFS文件系统: hdfs namenode -format 7. 启动Hadoop集群:执行以下命令启动Hadoop集群: start-dfs.sh # 启动HDFS start-yarn.sh # 启动YARN 执行以上命令后,你可以通过Web界面访问Hadoop的各个组件。 以上是基本的Hadoop安装步骤,请根据自己的需求进行相应的配置和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值