0


Linux虚拟机系统Ubuntu搭建Hadoop集群

一、安装VMware Workstation 15.1

安装路径:VMware Workstation 15.1兼容win10 https://www.aliyundrive.com/s/uUNpgqctbi9

提取码: ix71

二、下载Ubuntu镜像

这里推荐直接进入Ubuntu的官网进行下载:Ubuntu20.04

三、安装Ubuntu镜像

6.可以自己改虚拟机的名称,这里建议存储放在除C盘外的其他盘里。然后【下一步】

9.默认【下一步】

14.选择【编辑虚拟机设置】->【CD/DVD(SATA)】->【使用ISO映像(M)】,然后选择下载好的ubuntu20.04镜像文件。 (图片安装的是Ubuntu19.04镜像,但是操作是一样的。有想要安装Ubuntu19.04的朋友,可以参考这篇文章。)

15.安装Ubuntu

向下滚动找到中文简体

默认键盘设置,点击【继续】

默认选项,点击【继续】

点击【现在安装】

时间选择shanghai,点击【继续】

设置用户名和密码(登录方式可按照自己需求来设置)点击【继续】

上个步骤完成后,就要等待安装,安装过程下载解压的文件较多,会很慢,要保证电脑常亮,不要进入待机状态,不然虚拟机可能会出现卡顿。安装完成后,点击【现在重启】

重启进入后,点击自己的用户,输入密码,【回车】

然后就是一些基础的设置

打开之后,Ubuntu系统界面不是全屏,可以右击桌面,点击【显示设置】,【显示器】,将分辨率调成如图数值就可以了。

以上安装过程建议在使用有线网环境下进行,因为本人是按照这个步骤安装的,安装完成后并没有出现IP地址上的问题,虚拟机上的网络是可用的。显示也是有线已连接。

利用终端 ping www.baidu.com,也是可以ping通的。

下载vim数据包

sudo apt-get install vim

更改阿里云镜像源

点击左下角九个点的方块,然后找到并点击【软件和更新】

点击【重新载入】

sudo apt-get update

四、配置JAVA环境

打开下载Java JDK的文件夹,右键【在终端打开】,输入命令

tar -zxvf jdk-19_linux-x64_bin.tar.gz

然后将解压后的文件夹移动到 /usr/java 下(需要输入管理员密码),输入命令

sudo mv jdk-19.0.1 /usr/java

显示主目录的隐藏文件 .profile 文件,进行环境配置。

用文本编辑器打开它,然后在末尾添加如下代码,然后点击【保存】。

export JAVA_HOME=/usr/java

# JDK8 添加 JRE_HOME 和 CLASSPATH 配置
export JRE_HOME=$JAVA_HOME/jre
CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

export PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:$PATH

输入命令,运行配置环境。

source ~/.profile

建立系统软链接

sudo update-alternatives --install /usr/bin/javac javac /usr/java/bin/javac 1
sudo update-alternatives --install /usr/bin/javac java /usr/java/bin/java 1

输入命令查看Java版本

java -version

五、配置安装Hadoop

解压压缩包,然后将解压后的文件夹移动到 /usr/hadoop 下(需要输入管理员密码),输入命令

tar -zxvf hadoop-3.3.2.tar.gz
sudo mv hadoop-3.3.2 /usr/hadoop

配置JDK路径

打开文件管理器,找到 Hadoop 安装目录下的 /etc/hadoop/hadoop-env.sh 并使用文本编辑器打开(默认双击)
注意此处是 hadoop-env.sh 而不是 hadoop-env.cmd
在文件末尾添加以下代码(建议直接复制)并保存退出

export JAVA_HOME=/usr/java

配置Hadoop

在刚刚的目录下找到 core-site.xml 文件,用文本编辑器打开
<configuration> 标签中添加下面的配置,保存并退出

  <property>
    <name>hadoop.tmp.dir</name>
    <value>file:/usr/hadoop/tmp</value>
  </property>

  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://localhost:9000</value>
  </property>

继续在文件夹中找到 hdfs-site.xml 文件,用文本编辑器打开
<configuration> 标签中添加下面的配置,保存并退出

  <property>
    <name>dfs.replication</name>
    <value>3</value>
  </property>

  <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/usr/hadoop/tmp/dfs/name</value>
  </property>

  <property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/usr/hadoop/tmp/dfs/data</value>
  </property>

  <property>
    <name>dfs.http.address</name>
    <value>0.0.0.0:50070</value>
  </property>

以上全部配置完成。

修改虚拟机名称

hostname
hostnamectl set-hostname ‘hadoop01’
hostname
ifconfig
#分别得到三台设备的IP地址
sudo vim /etc/hosts
#将IP地址和用户名编辑在后面    

配置SSH免密登录

sudo apt-get install openssh-server

ssh localhost #登录主机,要输入yes
exit #退出主机
cd ~/.ssh/ #进入到ssh里面
ssh-keygen -t rsa #按四次回车

用户名改为自己的即可。

#三台机器互相免密登录
cd ~/.ssh               # 如果没有该目录,先执行一次ssh localhost         
rm ./id_rsa*            # 删除之前生成的公匙(如果有)                  
ssh-keygen -t rsa       # 一直按回车就可以       
cat ./id_rsa.pub >> ./authorized_keys   #让master 节点可以无密码 SSH 本机,在 master 节点上执行
ssh master       #在主结点上实现ssh免密登录
scp ~/.ssh/id_rsa.pub hadoop@slave01:/home/hadoop/ #slave1是结点名称hadoop是自己主机名,发送公钥至从结点
mkdir ~/.ssh        # 如果不存在该文件夹需先创建,若已存在则忽略        
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys                                   
rm ~/id_rsa.pub    # 用完就可以删掉了

#上述操作需要虚拟机之间互相操作,即主节点要发给从节点,确认后从节点还要发给主节点,少操作一步都会使SSH免密登录不成功。

配置集群环境

配置集群模式时,需要修改“/usr/local/hadoop/etc/hadoop”目录下的配置文件,包括workers、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml。【主机名和路径需要自己修改】

vim workers
#命令

#以下是写入文件的内容(按【i】编辑,只能用键盘方向键移动光标,按【Esc】退出编辑,输入【:wq】保存并退出文件)
hadoopWyc
hadoopWyc2 
hadoopWyc3
vim core-site.xml
#命令

<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://hadoopWyc:9000</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>file:/usr/local/hadoop/tmp</value>
        </property>
</configuration>
vim hdfs-site.xml
#命令

<configuration>
        <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>hadoopWyc2:50090</value>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>3</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>
vim mapred-site.xml
#命令

<configuration>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.address</name>
                <value>hadoopWyc:10020</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.webapp.address</name>
                <value>hadoopWyc:19888</value>
        </property>
        <property>
                <name>yarn.app.mapreduce.am.env</name>
                <value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
        </property>
        <property>
                <name>mapreduce.map.env</name>
                <value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
        </property>
        <property>
                <name>mapreduce.reduce.env</name>
                <value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
        </property> 
</configuration>
vim yarn-site.xml
#命令

<configuration>
        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>hadoopWyc</value>
        </property>
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
</configuration>

分发文件

此步骤也可以将上个步骤重复操作。

cd /usr/local
sudo rm -r ./hadoop/tmp     # 删除 Hadoop 临时文件
sudo rm -r ./hadoop/logs/*   # 删除日志文件
tar -zcf ~/hadoop.master.tar.gz hadoop  # 先压缩再复制
cd ~
scp hadoop.master.tar.gz hadoopWyc2:/home/
scp hadoop.master.tar.gz hadoopWyc3:/home/

#从节点虚拟机解压缩
sudo rm -r /usr/local/hadoop    # 删掉旧的(如果存在)
sudo tar -zxf /home/hadoop.master.tar.gz -C /usr/local
sudo chown -R wyc /usr/local/hadoop

启动Hadoop

cd /usr/hadoop/bin
#打开任意终端,进入 /hadoop/bin 路径 

./hdfs namenode -format 
#进行格式化

cd /usr/hadoop/sbin
#进入 /hadoop/sbin 路径 
./start-all.sh 
#启动 hadoop
jps
#查看进程

cd /usr/local/hadoop
./bin/hadoop version
#查询Hadoop版本

如果出现如下图中的报错,参考此文。

root@hadoopWyc3:/usr/local/hadoop# ./sbin/start-dfs.sh
Starting namenodes on [hadoopWyc]
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
Starting datanodes
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.
Starting secondary namenodes [hadoopWyc2]
ERROR: Attempting to operate on hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.

数据分析

安装配置好Hadoop之后,可以利用Hadoop来进行数据分析。【相关资源点这里】

unzip bdintro-master.zip  #解压缩
cd bdintro-master  #进入解压文件
unzip hadoop-yangyaru-datanode-dell119.log.zip
hdfs dfs -copyFromLocal hadoop-yangyaru-datanode-dell119.log /
#下载bigdata-0.0.1.jar

#分析日志文件
hadoop jar bigdata-0.0.1.jar bigdata.bigdata.Grep WARN /hadoop-yangyaru-datanode-dell119.log /output

#数据分析交通文件
hadoop jar bigdata-0.0.1.jar bigdata.bigdata.TrafficTotal /Traffic_Violations.csv /output/traffic

创作不易,请多支持!

标签: linux ubuntu hadoop

本文转载自: https://blog.csdn.net/CG_MPX/article/details/128126093
版权归原作者 CG〓MPX 所有, 如有侵权,请联系我们删除。

“Linux虚拟机系统Ubuntu搭建Hadoop集群”的评论:

还没有评论