服务器搭建Hadoop伪分布式

125 阅读3分钟
1. 修改主机名
    服务器主机名连接之后是随机生成的,设置成自己想要的主机名: 主机名称  
    注意:这里主机名称尽量保证是小写的英文名,小编发现后续在启动hadoop的时候好像主机名中如果出现大写字母会造成主机名无法识别,小编这里并不知道是什么原因。
    文件是 /etc/hostname,命令:
             vim /etc/hostname;
    修改主机名映射的ip地址,可以通过ifconfig查看本机ip地址;
    命令:         vim /etc/hosts
    添加本机: ip  主机名hostname
    同时添加:ip  localhost
    避免某些位置出现localhost导致无法识别本机ip地址
    重启主机!!!
设置令牌
    使用xshell连接服务器后先生成本地ip的ssh令牌
           ssh-keygen -t rsa
           cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    再添加一个自己可以免密登录的令牌
           ssh-copy-id 当前用户@主机名
JAVA的安装
   下载jdk安装包,我这里下载的是openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz,放在了 ~ 目录下面
   解压到想要安装的文件夹,我这里以/opt/module/为例,后面涉及到添加环境时也是该路径下
   解压:tar -zxvf ~/openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz -C /opt/module/
   使用 ll /opt/module/查看解压后的文件,为方便后续环境配置,给解压后的文件重命名:
   mv /opt/module/解压后的包名 java
   配置环境变量,直接自己新建一个环境文件,执行vim /etc/profile.d/my_env.sh
   在/etc/profile.d/my_env.sh文件中添加环境变量
       #JAVA_HOME
       export JAVA_HOME=/opt/module/java
       export JRE_HOME=${JAVA_HOME}/jre      #可不添加
       export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib    #可不添加
       export PATH=$PATH:$JAVA_HOME/bin
   按下esc退出编辑后, :wq 编辑保存后,一定要通过source /etc/profile命令使配置生效,配置生效后通过java -version验证java环境变量是否配置成功,如果成功,会显示

image.png

Hadoop的安装
    hive的安装是对hadoop有依赖的,因此优先安装hadoop并启动后再hive会比较好,hadoop这里下载的是hadoop-3.2.4.tar.gz,hive下载的是apache-hive-2.3.10-bin.tar.gz,将它们均解压到/opt/module/文件夹下面,并重命名为hadoop3.2.4和hive。
                tar -zxvf ~/hadoop-3.2.4.tar.gz -C /opt/module/
                mv hadoop-3.2.4 hadoop3.2.4
                tar -zxvf ~/apache-hive-2.3.10-bin.tar.gz -C /opt/module/
                mv apache-hive-2.3.10 hive
    至此,hadoop和hive的包已经全部在/opt/module/文件夹下面了,剩下的就是进行环境变量的配置和内部部分文件的修改了,先将hadoop和hive的环境变量配置到上面创建的/etc/profile.d/my_env.sh文件中
                #HADOOP_HOME
                export HADOOP_HOME=/opt/module/hadoop3.2.4
                export PATH=$PATH:$HADOOP_HOME/bin
                export PATH=$PATH:$HADOOP_HOME/sbin
    hadoop的环境变量已经配置成功,source /etc/profile之后从命令台输入hadoop version 就可以查看hadoop相关的版本信息了。
    后面就是相关文件的配置了,总共涉及到10个文件,分别是/opt/module/hadoop3.2.4/etc/hadoop/ 下面的core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、hadoop-env.sh、yarn-env.sh这6个文件
    以及/opt/module/hadoop3.2.4/sbin/下面的start-dfs.sh、stop-dfs.sh、start-yarn.sh、stop-yarn.sh这4个文件,接下来我们分别配置。
    对于hadoop-env.sh和yarn-env.sh这两个文件,主要是要和java进行关联,因此需要在里面添加上java环境的变量分别使用vim /opt/module/hadoop3.2.4/etc/hadoop/hadoop-env.sh和vim /opt/module/hadoop3.2.4/etc/hadoop/yarn-env.sh打开两个文件,在中间部分添加
        export JAVA_HOME=/opt/module/java
    然后是/opt/module/hadoop3.2.4/etc/hadoop/文件夹下另外四个文件的配置,首先是core-site.xml文件的配置,命令行vim /opt/module/hadoop3.2.4/etc/hadoop/core-site.xml打开文件,添加
            <configuration>
                <!--指定hadoop数据的存储位置-->
                <property>
                    <name>hadoop.tmp.dir</name>
                    <value>file:/opt/module/hadoop3.2.4/tmp</value>
                    <description>location to store temporary files</description>
                </property>
                <!--指定NameNode的访问地址-->
                <property>
                    <name>fs.defaultFS</name>
                    <value>hdfs://主机名称:9000</value>
                </property>
            </configuration>
   退出编辑并保存文件
   其次是hdfs-site.xml文件的配置,命令行vim /opt/module/hadoop3.2.4/etc/hadoop/hdfs-site.xml打开文件,添加
            <configuration>
                <!--最主要的是配置这个值为1,服务器只有一台-->
                <property>
                    <name>dfs.replication</name>
                    <value>1</value>
                </property>
                <!--可不指定位置,使用默认位置-->
                <property>
                    <name>dfs.namenode.name.dir</name>
                    <value>file:/opt/module/hadoop3.2.4/tmp/dfs/name</value>
                </property>
                <property>
                    <name>dfs.datanode.data.dir</name>
                    <value>file:/opt/module/hadoop3.2.4/tmp/dfs/data</value>
                </property>
            </configuration>
   保存文件并退出,命令行vim /opt/module/hadoop3.2.4/etc/hadoop/mapred-site.xml打开文件,添加
            <configuration>
                <!--指定mapreduce程序运行在Yarn上-->
                    <property>
                            <name>mapreduce.framework.name</name>
                     <value>yarn</value>
                </property>
            </configuration>
   保存并退出,命令行vim /opt/module/hadoop3.2.4/etc/hadoop/yarn-site.xml打开文件,添加
            <configuration>
                    <!-- Site specific YARN configuration properties -->
                    <property>
                           <name>yarn.resourcemanager.hostname</name>
                    <value>主机名</value>
                </property>
                   <!-- 指定MR走shuffle -->
                <property>
                    <name>yarn.nodemanager.aux-services</name>
                    <value>mapreduce_shuffle</value>
                </property>
                    <!-- 3.2以上的版本不需要指定环境变量的继承 -->
            </configuration>
   此时文件已经基本配置完成,关于/opt/module/hadoop3.2.4/sbin/下面的start-dfs.sh、stop-dfs.sh、start-yarn.sh、stop-yarn.sh这4个文件的配置,主要是在start-dfs.sh和stop-dfs.sh的文件中添加,vim /opt/module/hadoop3.2.4/sbin/start-dfs.sh 和vim /opt/module/hadoop3.2.4/sbin/stop-dfs.sh打开
            HDFS_DATANODE_USER=root
            HDFS_DATANODE_SECURE_USER=hdfs
            HDFS_NAMENODE_USER=root
            HDFS_SECONDARYNAMENODE_USER=root
    然后使用vim /opt/module/hadoop3.2.4/sbin/start-yarn.sh 和vim /opt/module/hadoop3.2.4/sbin/stop-yarn.sh打开,添加命令
            YARN_RESOURCEMANAGER_USER=root
            HDFS_DATANODE_SECURE_USER==yarn
            YARN_NODEMANAGER_USER=root
    这些是为了保证后面启动hadoop时能以root用户的权限去启动,避免报错
    至此,单服务器的hadoop的文件配置已经配置完成,对hadoop进行格式化,使用命令hdfs namenode -format即可,然后启动集群start-all.sh。如果启动成功不报错的情况下,输入jps即可看到命令台输出

image.png

    先查看防火墙的状态,如果在开启中请先关闭防火墙,然后通过网页输入http://<公网ip>:9870和http://<公网ip>:8088即可打开hadoop提供的页面。hadoop安装成功。
Hive的最小化安装
    hive的最小化安装,上面我们已经把hive解压到/opt/module/文件夹下,同样我们在/etc/profile.d/my_env.sh文件中配置hive的环境变量,配置如下:
                #HIVE_HOME
                export HIVE_HOME=/opt/module/hive
                export PATH=$PATH:$HIVE_HOME/bin
    然后source /etc/profile刷新一下
    初始化元数据库,默认是hive自带的derby数据库,后续可以安装mysql载进行其他配置,初始化命令为:
        /opt/module/hive/bin/schematool -dbType derby -initSchema
    ***注意***这里可能会报错,因为hive的lib目录下的guava-27.0-jre.jar文件和log4j-slf4j-impl-2.17.2.jar文件会和hadoop的/opt/module/hadoop-3.2.4/share/hadoop/common/lib/文件夹下的同名文件产生版本冲突,可以将hive的lib目录下的两个文件先备份之后再删除,这样再重新初始化就没问题了。(当然,你也可以去hive官网查找hive和hadoop的对应关系,然后再下载,避免产生冲突)
    在/opt/module/hive目录下使用命令bin/hive即可启动hive,启动成功会显示如下:

image.png

Mysql的安装
   https://juejin.cn/post/7299389919953272883 ,能够轻松完美安装mysql。
   要使用外部navicat连接服务器上的mysql数据库,首先检查防火墙设置,确保 MySQL 端口(默认为 3306)未被阻止。运行命令:
                   firewall-cmd --list-ports
   可以使用以下命名开放3306端口:
                   firewall-cmd --zone=public --add-port=3306/tcp --permanent
                   firewall-cmd --reload
   执行成功都会提示success,然后在服务器上使用命令mysql -u root -p并输入密码启动mysql,进入mysql后,对于mysql8.0以上的版本,执行以下命令:
                   #进入MySQL数据库后进入MySQL数据库。
                    mysql -u root -p ;
                    #将root用户的主机设置为任意主机
                    mysql> update user set host = '%' where user = 'root';
                    #刷新权限
                    mysql> flush privileges;
   到此你就可以从自己本地电脑连接服务器上的mysql服务了。

到此本文章已经基本结束,本文是经过多天重复卸载和安装后的总结,希望本文的内容能够对各位初学大数据的朋友带来一些帮助。