Centos7搭建hadoop分布式集群

    科技2022-08-20  103

    Hadoop搭建

    (其他组件安装最近更新)

    一.系统一些基本配置

    1.更改网卡配置(克隆之后把另外两台ip改了)

    vi /etc/sysconfig/network-scripts/ifcfg-ens33 #网卡里面的配置 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static #使用static配置 DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens33 UUID=316c77f2-75e6-47cd-ba71-227d4ac9457f DEVICE=ens33 ONBOOT=yes #开机启动配置 #查看自己的ip和网关 IPADDR=192.168.232.111 #静态ip GATEWAY=192.168.232.2 #默认网关 NETMASK=255.255.255.0 #子网掩码 DNS1=8.8.8.8 DNS2=0.0.0.0

    2.重启网卡

    service network restart

    3.测试网路是否连通

    ping www.baidu.com

    4.关闭防火墙:查看防火墙状态

    firewall-cmd --state

    5.临时关闭防火墙,开机还会启动

    systemctl stop firewalld

    6.设置开机不启动

    systemctl disable firewalld

    7.常用软件安装

    yum -y install vim yum -y install wget yum -y install lrzsz yum -y install net-tools yum -y install psmisc

    8.配置阿里yum源 备份当前yun源

    systemctl disable firewalld

    下载阿里云的yum源配置

    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

    清楚原来的缓存,构建新缓存

    yum clean all yum makecache

    9.添加节点信息

    vim /etc/hosts 192.168.232.111 master 192.168.232.112 slave1 192.168.232.113 slave2

    10.修改hostname(修改完成后重启生效)

    hostname(修改完成后重启生效) hostnamectl set-hostname master #修改hostname为master

    10.配置节点之间免密访问(在一台机器上执行,再将该节点克隆两份即可,克隆之后在做两次) 在家目录下,执行以下代码生成密钥对,一路回车即可:

    ssh-keygen -t rsa -P ''

    将公钥文件写入授权文件中,并赋予权限

    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys

    11.克隆虚拟机(看图 注意:虚拟机需要关闭)

    ##注意要修改克隆的ip地址以及名称(上面步骤1和10)

    12.节点间免密访问测试(任意两台节点都需要测试,第一次需要输入“yes”)

    二.开始安装jdk(可以去官网下载jdk)

    自行选择下载jdk(点击百度网盘可以下载) jdk百度网盘链接 提取码:d4cf 用xftp上传jdk-8u162-linux-x64.tar.gz文件到/usr/local/java(上传完解压文件,然后改名) mkdir /usr/local/java cd /usr/local/java tar -zxvf jdk-8u162-linux-x64.tar.gz mv jdk1.8.0_162 jdk 设置环境变量 vi /etc/profile #加入下面内容 export JAVA_HOME=/usr/local/java/jdk export PATH=$JAVA_HOME/bin:$PATH 执行命令使设置生效 source /etc/profile 验证java是否安装成功 java -version

    6.执行以下命令,在其他两台节点安装(如果ssh没有使文件生效就去子节点再去执行一下)

    #给子节点创建java文件夹 ssh slave1 mkdir /usr/local/java ssh slave2 mkdir /usr/local/java #将master节点上的安装包分发到其他节点 scp -r /usr/local/java slave1:/usr/local scp -r /usr/local/java slave2:/usr/local #将master节点的配置好的环境变量覆盖到其他节点 scp -r /etc/profile slave1:/etc/profile scp -r /etc/profile slave2:/etc/profile #使修改生效 ssh slave1 source /etc/profile ssh slave2 source /etc/profile #查看是否安装成功 ssh slave1 java -version ssh slave2 java -version

    三.Hadoop安装

    自行选择下载jdk(点击百度网盘可以下载) hadoop百度网盘链接 提取码:3bq4用xftp上传hadoop文件到/opt/hadoop(上传完解压文件,然后改名) mkdir /opt/hadoop cd /opt/hadoop tar -zxvf hadoop-2.7.5.tar.gz mv hadoop-2.7.5 hadoop 配置环境变量 vim /etc/profile #在末尾增加以下内容,然后保存 #HADOOP export HADOOP_HOME=/opt/hadoop/hadoop export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH #使文件生效 source /etc/profile 配置env文件(打开hadoop-env.sh,找到“export JAVA_HOME”这行配制jdk路径。) vi /opt/hadoop/hadoop/etc/hadoop/hadoop-env.sh #写入下列路径(编辑完保存退出即可。) export JAVA_HOME=/usr/local/java/jdk 配置核心组件文件(/opt/hadoop/hadoop/etc/hadoop/core-site.xml) vim /opt/hadoop/hadoop/etc/hadoop/core-site.xml #编辑的文件(将下列的配置代码放在文件的<configuration>和</configuration>,保存退出即可) <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/opt/hadoop/hadoopdata</value> </property> #创建hadoop数据目录 mkdir /opt/hadoop/hadoopdata

    6.配置文件系统(/opt/hadoop/hadoop/etc/hadoop/hdfs-site.xml)

    vim /opt/hadoop/hadoop/etc/hadoop/hdfs-site.xml #编辑的文件(将下列的配置代码放在文件的<configuration>和</configuration>,保存退出即可) <property> <name>dfs.replication</name> <value>1</value> </property> 配置yarn站点文件(/opt/hadoop/hadoop/etc/hadoop/yarn-site.xml) vim /opt/hadoop/hadoop/etc/hadoop/yarn-site.xml #编辑的文件(将下列的配置代码放在文件的<configuration>和</configuration>,保存退出即可) <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.resourcemanager.address</name> <value>master:18040</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>master:18030</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>master:18025</value> </property> <property> <name>yarn.resourcemanager.admin.address</name> <value>master:18141</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>master:18088</value> </property> 配置MapReduce计算框架文件()

    在“/opt/hadoop/hadoop/etc/hadoop”子目录下,系统已经有一个 mapred-site.xml.template文件,我们需要将其复制并改名,位置不变,命令是“

    cp /opt/hadoop/hadoop/etc/hadoop/mapred-site.xml.template /opt/hadoop/hadoop/etc/hadoop/mapred-site.xml vim /opt/hadoop/hadoop/etc/hadoop/mapred-site.xml

    ”,然后,用 vi编辑 mapred-site.xml 文件,需要将下面的代码填充到文件 中间

    <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property>

    编辑完毕,保存退出即可。

    配置Master的slaves文件 slaves 文件给出了 Hadoop 集群的 Slave 节点列表。该文件十分重要,因为启动Hadoop 的时候,系统总是根据当前 slaves 文件中 Slave 节点名称列表启动集群,不在列表中的Slave 节点便不会被视为计算节点。 用 vi编辑 slaves 文件,我们应当根据自己所搭建集群的实际情况进行编辑。例如,我们这里由于已经安装了 Slave0 和 Slave1,并且计划将它们全部投入 Hadoop 集群运行,所以应当输入如下代码。 vi /opt/hadoop/hadoop/etc/hadoop/slaves #写入下列(需要删除原来文件里面localhost那一行) slave1 slave2 复制 Master 上的 Hadoop 到 Slave 节点(通过复制 Master 节点上的hadoop,能够大大提高系统部署效率。由于我们这里有Slave1 和 Slave2,所以要复制两次。) scp -r /opt/hadoop root@slave1:/opt scp -r /opt/hadoop root@slave2:/opt 复制Master上的配置文件到Slave节点 #将master节点的配置好的环境变量覆盖到其他节点 scp -r /etc/profile slave1:/etc/profile scp -r /etc/profile slave2:/etc/profile #使修改生效 ssh slave1 source /etc/profile ssh slave2 source /etc/profile 格式化文件系统(该操作只需要在 Master 节点上进行,命令是“ hadoop namenode -format”) hadoop namenode -format 启动和关闭 Hadoop 可以使用 start-all.sh 命令启动 Hadoop 集群。 首先进入 Hadoop 安装主目录,然后执行 shin/start-all.sh 命令,执行命令后,系统提示“ Are you sure want to continue connecting(yes/no)”,请输入yes,之后系统即可启动。要关闭 Hadoop 集群,可以使用 stop-all.sh 命令, 下次启动 Hadoop 时候,无须 NameNode 的初始化,只需要使用start-dfs.sh 命令即可,然后接着使用 start-yarn.sh 启动 Yarn 。实际上,Hadoop 系统建议放弃(deprecated)使用 start-all. sh 和 stop-all.sh 一类的命令,而改用 start-dfs.sh 和 start-yarn .sh 命令。 验证 Hadoop 是否启动成功 用户可以在终端执行 jps 命令查看 Hadoop 是否启动成功。在 Master 节点,执行 jps后如果显示的结果是四个进程的名称: SecondaryNameNode、 ResourceManager、 Jps 和NameNode,如下图所示,则表明主节点( Master )启动成功 。

    在 Slave0 节点执行 jps 命令,打印的结果中会显示三个进程,分别是 NodeManager、 Jps 和 DataNode ,如下图所示,表明从节点(Slave0)启动成功。其他节点可以类似验证。

    四.Hive数据仓库安装(启动hive之前要启动Hadoop命令为:start-all.sh)

    1.自行选择下载hive(点击百度网盘链接可以下载) 百度网盘链接 提取码:vauh

    #创建文件夹 mkdir /opt/Hive

    2.用xftp上传压缩文件.gz文件到/opt/Hive(上传完解压文件,然后改名)

    #解压文件夹 tar -zxvf apache-hive-2.3.4-bin.tar.gz #给解压的文件改名为hive mv apache-hive-2.3.4-bin hive

    3.配置hive环境变量

    #打开文件 vim /etc/profile #打开文件后在对下面添加hive路径 export HIVE_HOME=/opt/Hive/hive #参考这个我的路径前面配置了jkd,Hadoop路经。“export PATH=$HIVE_HOME/bin:$PATH” export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$PATH #使文件生效 source /etc/profile #查看hive版本号(出现版本说明安装正确) hive --version

    4.修改hive配置文件

    进入conf文件夹查看文件

    cd /opt/Hive/hive/conf/ ls

    cp hive-env.sh.template hive-env.sh #添加hadoop环境变量 export HADOOP_HOME=/opt/hadoop/hadoop

    查看hive-site.xml(如果没有就复制一份模板)

    #复制模板(有hive-site.xml文件跳过这一步) cp hive-default.xml.template hive-site.xml

    配置hive-site.xml

    vim hive-site.xml

    在文件中添加(汉字是解释,把这一段放在文件最下面,在上面)

    <property> <name>javax.jdo.option.ConnectionUserName</name>用户名(这是新添加的,记住删除配置文件原有的哦!) <value>root</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name>密码 <value>123456</value> </property> <property> <name>javax.jdo.option.ConnectionURL</name>mysql <value>jdbc:mysql://192.168.232.111:3306/hive</value>mysql的ip端口号 </property> <property> <name>javax.jdo.option.ConnectionDriverName</name>mysql驱动程序 <value>com.mysql.jdbc.Driver</value> </property> <property> <name>system:java.io.tmpdir</name> <value>/opt/Hive/hive/logs/tmp</value> </property>

    5.用xftp复制mysql的驱动程序到hive/lib下面,百度网盘中的mysql的jar包链接,验证码:h4m1。我用的jar包为:mysql-connector-java-5.1.21-bin.jar

    6.在mysql中hive的schema(在此之前需要创建mysql下的hive数据库)

    cd /opt/Hive/hive/bin schematool -dbType mysql -initSchema

    7.执行hive命令

    hive

    1.出现报错

    show databases;

    进入hive文件夹下的conf文件下,找到hive-site.xml

    修改前: <property> <name>hive.exec.local.scratchdir</name> <value>${system:java.io.tmpdir}/${system:user.name}</value> <description>Local scratch space for Hive jobs</description> </property> 修改后: <property> <name>hive.exec.local.scratchdir</name> <value>${system:java.io.tmpdir}/${user.name}</value> <description>Local scratch space for Hive jobs</description> </property>

    在查看测试成功

    五.Sqoop安装

    1.自行选择下载sqoop(点击百度网盘链接可以下载) 百度网盘链接 提取码:bhpf

    #创建文件夹 mkdir /opt/Sqoop

    2.用xftp上传压缩文件.gz文件到/opt/Sqoop(上传完解压文件,然后改名)

    #解压文件 tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz 解压完改名 mv sqoop-1.4.7.bin__hadoop-2.6.0 sqoop

    3.配置环境变量

    #打开文件 vim /etc/profile #打开文件后在对下面添加hive路径 export SQOOP_HOME=/opt/Sqoop/sqoop #参考这个我的路径前面配置了jkd,Hadoop,hive路经。“export PATH=$PATH:$SQOOP_HOME/bin" export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$PATH:$SQOOP_HOME/bin:$PATH #使文件生效 source /etc/profile

    4.修改配置文件 Sqoop的配置文件与大多数大数据框架类似,在sqoop根目录下的conf目录中。

    #进入目录 cd /opt/Sqoop/sqoop/conf #复制文件并改名 cp sqoop-env-template.sh sqoop-env.sh #进入文件 vim sqoop-env.sh #文件里需要添加的参数 export HADOOP_COMMON_HOME=/opt/hadoop/hadoop export HADOOP_MAPRED_HOME=/opt/hadoop/hadoop export HIVE_HOME=/opt/Hive/hive

    5.拷贝mysql驱动

    拷贝上面hive用的mysql驱动到sqoop的lib目录下

    6.验证 Sqoop 我们可以通过某一个 command 来验证 sqoop 配置是否正确:

    sqoop help

    sqoop list-databases --connect jdbc:mysql://master:3306/ --username root --password xiwen123

    Processed: 0.020, SQL: 9