Linux操作系统下搭建Hadoop、Zookeeper、Hbase、Hive集群(1)----Hadoop及Hadoop集群搭建

    技术2022-07-11  79

    Linux操作系统下安装Hadoop以及集群搭建

    准备工作:

    VMware新建虚拟机(虚拟机时间需要与主机同步)在根目录下新建software目录,把jdk、hadoop、hadoop-native、hive、hbase、zookeeper、mysql和java连接数据库jar包导入software目录下 将jdk、hadoop、hive、hbase、zookeeper解压到opt目录下hadoop-native解压到hadoop/etc/bin和hadoop/etc/bin/native目录下

    配置环境变量(集群环境变量一次配置完成):

    vi /etc/profile 按shift+g、o 插入以下代码: export JAVA_HOME=/opt/jdk8 export JRE_HOME=/opt/jdk8/jre export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin export HADOOP_HOME=/opt/hadoop export HBASE_HOME=/opt/hbase export HIVE_HOME=/opt/hive export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export YARN_HOME=$HADOOP_HOME export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib" export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$HBASE_HOME/bin:$HIVE_HOME/bin

    source /etc/profile 刷新并执行环境变量测试环境变量是否配置成功 java -version、hadoop version、hive version、hbase version 修改主机名 vi /etc/hostname #主机名 hadoop101 修改主机列表 vi /etc/hosts 集群内的虚拟机都加入主机列表 虚拟机设置免密登录 生成免密密钥:ssh-keygen -t rsa -P ""将生成的免密私钥复制到公钥: cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys (>>为追加,>为替换)为集群虚拟机添加互信: ssh-copy-id -i .ssh/id_rsa.pub -p22 root@192.168.128.101(或主机名)免密登录验证: ssh -p 22 root@192.168.128.101(或主机名)

    配置Hadoop

    进入hadoop/etc/hadoop目录下配置hadoop-env.sh vi hadoop-env.sh JAVA_HOME后的路径修改为虚拟机的java路径 配置core-site.xml vi core-site.xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://192.168.128.101:9000</value> //主机ip </property> <property> <name>hadoop.tmp.dir</name> <value>/opt/hadoop/tmp</value> //hadoop临时文件存放目录,此处放在hadoop根目录下 </property> <property> <name>hadoop.proxyuser.root.hosts</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.root.groups</name> <value>*</value> </property> </configuration> 配置hdfs-site.xml vi hdfs-site.xml <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>hadoop01:50090</value> //主机名 </property> </configuration> 配置mapred-site.xml vi mapred-site.xml <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>hadoop01:10020</value> //主机名 </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>hadoop01:19888</value> //主机名 </property> </configuration> 配置yarn-site.xml vi yarn-site.xml <configuration> <!-- Site specific YARN configuration properties --> <!-- reducer获取数据方式 --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> <!-- 指定YARN的ResourceManager的地址 --> <property> <name>yarn.resourcemanager.hostname</name> <value>hadoop01</value> </property> <!-- 日志聚集功能使用 --> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <!-- 日志保留时间设置7--> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>604800</value> </property> </configuration> 配置slaves vi slaves #集群主机名添加到slaves(当前单机模式只需输入主节点主机名) hadoop101 hadoop102 hadoop103 格式化HDFS hadoop namenode -format (检查是否有报错,根据报错信息查改配置文件)启动Hadoop start-all.sh (配置完hadoop环境变量才可以无视目录启动,否则进入hadoop的bin目录下启动) 启动完成后输入jps检查节点 登录网页50070端口查看是否能够正常连接 8088端口查看yarn管理页面 19888端口查看hadoop历史服务页面 检查无误后关闭hadoop stop-all.sh

    搭建Hadoop集群

    将搭建好单机Hadoop的虚拟机复制两个 VMware复制虚拟机时要重新生成MAC地址否则会网卡冲突无法连接网络 修改两个新建虚拟机的IP和主机名 vi /etc/sysconfig/network-scripts/ifcfg-ens33hostnamectl set-hostname 主机名 修改集群所有虚拟机的主机列表 vi /etc/hosts将所有主机名加入主机列表 将集群内所有虚拟机设置为免密登录 ssh-keygen -t rsa -P "" 将集群内所有虚拟机私钥复制到公钥 cat /root/.ssh/id_rsa.pub > /root/.ssh/authorized_keys 为集群内所有虚拟机添加互信 ssh-copy-id -i /root/.ssh/id_rsa.pub -p22 root@192.168.128.xxx(或主机名) 检验集群内虚拟机是否互相之间能免密登录 ssh -p 22 root@192.168.128.xxx 将集群内所有虚拟机切换到/opt/hadoop/etc/hadoop目录下配置hdfs-site.xml(每台虚拟机都要配置) vi hdfs-site.xml <configuration> <property> <name>dfs.replication</name> <value>3</value> //将数值改为集群虚拟机数量的值 </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>hadoop02:50090</value> //备用节点主机名 </property> </configuration> 配置slaves(每台虚拟机都需要配置) vi slaves将所有虚拟机名加入slaves中 格式化HDFS 删除集群内所有虚拟机/opt/hadoop/tmp目录:rm -rf /opt/hadoop/tmp格式化HDFS:hadoop namenode -format 在集群主节点虚拟机上启动hadoop集群 start-all.sh检查节点数量若缺少节点,就停止集群,并删除所有虚拟机上/opt/Hadoop/tmp文件夹,再重新格式化HDFS,再启动hadoop集群 以上,Hadoop及Hadoop集群搭建完成
    Processed: 0.012, SQL: 9