业余菜鸟第一次使用云服务器搭建大数据集群,下面是所有步骤
一、基础环境设置 1、修改三台主机的名字为 master、slave1、slave2: hostnamectl set-hostname master 2、重启系统后,更新yum源 # 使用阿里yum源 yum install -y yum-utils device-mapper-persistent-data lvm2 git yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 3、# 更新yum源 yum update -y 二、jdk 和 网络环境 搭建 1、创建安装jdk1.8的文件夹(jdk从网上下载后传到服务器, 三台服务器都需要安装jdk环境) mkdir -p /export/install mkdir -p /data/big_data 2、解压 tar -zxvf /data/big_data/jdk-8u144-linux-x64.tar.gz -C /export/install/ 3、配置java环境变量 yum -y install vim vim /etc/profile.d/java.sh # 复制下诉到文件中 export JAVA_HOME=/export/install/jdk1.8.0_144 export PATH=$PATH:$JAVA_HOME/bin 3、更新profile文件使java环境生效 source /etc/profile 4、查看jdk是否安装成功 java -version 5、修改网络 vim /etc/hosts # 将下列添加到文件中 服务器自己的配置文件ip改为内网ip # master master内网ip master slave1的外网ip slave1 slave2的外网ip slave2 # slave1 master的外网ip master slave1内网ip slave1 slave2的外网ip slave2 # slave2 master的外网ip master slave1的外网ip slave1 slave2内网ip slave2 6、时钟同步 ntpdate cn.pool.ntp.org 7、配置 SSH 免密码登录(在3台服务器分别执行) cd ~ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa 8、mater 服务器免密保存(mater服务器执行) cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 9、将 slave1 节点的公钥复制到 mater (slave1服务器执行) ssh-copy-id -i ~/.ssh/id_rsa.pub mater 10、将 slave2 节点的公钥复制到 mater (slave2服务器执行) ssh-copy-id -i ~/.ssh/id_rsa.pub mater 11、现 master 服务器已经保存了所有节点的公钥, 将 master 的公钥复制到 其他节点即可实现每台服务器之间的免密登录 scp ~/.ssh/authorized_keys slave1:~/.ssh/ scp ~/.ssh/authorized_keys slave2:~/.ssh/ 12、测试免密登录(在自己的节点测试连接其他节点, 连接上后使用exit即可退出) ssh master ssh slave1 ssh slave2 三、hadoop集群环境部署 1、 解压Hadoop安装包 tar -zxvf /data/big_data/hadoop-3.1.3.tar.gz -C /opt/ mv /opt/hadoop-3.1.3 /opt/hadoop 2、配置Hadoop (1、) vim /opt/hadoop/etc/hadoop/core-site.xml # 在 <configuration></configuration> 中间添加以下命令,fs.defaultFS 是用来定义 HDFS 的默认名 #称节点路径。就是我们将来访问 HDFS 文件时,如果没有指定路径,就会联系这里定义的路径的主机,去联系这台主机去寻找其路径。 <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/opt/hadoop/tmp</value> </property> (2、) vim /opt/hadoop/etc/hadoop/hdfs-site.xml 配置文件 在 <configuration></configuration>中间添加 <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:///opt/hadoop/hdfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:///opt/hadoop/hdfs/data</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>slave1:9001</value> </property> (3、) vim /opt/hadoop/etc/hadoop/workers 配置文件 第一行的localhost改成hadoop1,并在第二行中加入 slave1 和 slave2 master slave1 slave2 (4、) vim /opt/hadoop/etc/hadoop/mapred-site.xml 在 <configuration></configuration>中间添加 <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.application.classpath</name> <value> /opt/hadoop/etc/hadoop, /opt/hadoop/share/hadoop/common/*, /opt/hadoop/share/hadoop/common/lib/*, /opt/hadoop/share/hadoop/hdfs/*, /opt/hadoop/share/hadoop/hdfs/lib/*, /opt/hadoop/share/hadoop/mapreduce/*, /opt/hadoop/share/hadoop/mapreduce/lib/*, /opt/hadoop/share/hadoop/yarn/*, /opt/hadoop/share/hadoop/yarn/lib/* </value> </property> (5、) vim /opt/hadoop/etc/hadoop/yarn-site.xml 在 <configuration></configuration>中间添加 <property> <name>yarn.resourcemanager.webapp.address</name> <value>master:8088</value> </property> <property> <name>yarn.resourcemanager.hostname</name> <value>master</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!-- 取消yarn运行模式的运行内存检测,这样就算内存达不到要求也不会kill掉任务 --> <property> <name>yarn.nodemanager.pmem-check-enabled</name> <value>false</value> </property> <property> <name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value> </property> (6、) vim /opt/hadoop/etc/hadoop/hadoop-env.sh # 在后面添加下面jdk路径 export JAVA_HOME=/export/install/jdk1.8.0_144 (7、) 更新配置hadoop-env文件 source /opt/hadoop/etc/hadoop/hadoop-env.sh (8、) vim /opt/hadoop/sbin/start-dfs.sh # 配置文件,在第二行中添加以下命令 export HDFS_NAMENODE_SECURE_USER=root export HDFS_DATANODE_SECURE_USER=root export HDFS_SECONDARYNAMENODE_USER=root export HDFS_NAMENODE_USER=root export HDFS_DATANODE_USER=root export HDFS_SECONDARYNAMENODE_USER=root export YARN_RESOURCEMANAGER_USER=root export YARN_NODEMANAGER_USER=root (9、) vim /opt/hadoop/sbin/stop-dfs.sh # 配置文件,在第二行中添加以下命令 export HDFS_NAMENODE_SECURE_USER=root export HDFS_DATANODE_SECURE_USER=root export HDFS_SECONDARYNAMENODE_USER=root export HDFS_NAMENODE_USER=root export HDFS_DATANODE_USER=root export HDFS_SECONDARYNAMENODE_USER=root export YARN_RESOURCEMANAGER_USER=root export YARN_NODEMANAGER_USER=root (10、) vim /opt/hadoop/sbin/start-yarn.sh # 在第二行中添加以下命令 export YARN_RESOURCEMANAGER_USER=root export HADOOP_SECURE_DN_USER=root export YARN_NODEMANAGER_USER=root (11、) vim /opt/hadoop/sbin/stop-yarn.sh # 在第二行中添加以下命令 export YARN_RESOURCEMANAGER_USER=root export HADOOP_SECURE_DN_USER=root export YARN_NODEMANAGER_USER=root (12、) vim /opt/hadoop/etc/hadoop/log4j.properties # 取消打印警告信息 添加以下内容 log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR 3、 vim /etc/profile 配置三台 hadoop 主机的 profile 文件 添加以下内容 #SET HADOOP HADOOP_HOME=/opt/hadoop PATH=$HADOOP_HOME/bin:$PATH export HADOOP_HOME PATH 4、 更新环境变量 source /etc/profile # 更新配置hadoop-env文件 source /opt/hadoop/etc/hadoop/hadoop-env.sh 5、同步 master 配置到 slave1、slave2 cd /opt/ scp -r hadoop root@slave1:/opt/ scp -r hadoop root@slave2:/opt/ 6、格式化 HDFS 文件系统 在 master 上通过 hdfs namenode -format 命令来格式化 HDFS 文件系统 hdfs namenode -format # 如果不成功,先 cd /opt/hadoop/etc/hadoop 后再试试 7、启动集群 cd /opt/hadoop/sbin/ ./start-all.sh jps 8、看是否可访问 http://master的外网ip:8088/cluster http://master的外网ip:9870 9、如果没有访问成功,则到 /opt/hadoop/logs 查看对应的 Exception 四、Zookeeper 集群搭建 1、解压Zookeeper tar -zxvf /data/big_data/zookeeper-3.4.14.tar.gz -C /opt/ mv /opt/zookeeper-3.4.14 /opt/zookeeper 2、vim /etc/profile # 设置Zookeeper环境变量,打开文件后,添加以下内容 #SET ZOOKEEPER export ZOOKEEPER_HOME=/opt/zookeeper export PATH=$PATH:$ZOOKEEPER_HOME/bin 3、source /etc/profile # 使Zookeeper环境变量生效 4、设置 zookeeper 配置文件 (1、) cd /opt/zookeeper/conf cp zoo_sample.cfg zoo.cfg # 复制 zoo_sample.cfg 文件为 zoo.cfg mkdir /opt/zookeeper/data # 创建存放数据的文件夹 vim /opt/zookeeper/data/myid #创建 myid 文件,并加入数字 0 (主节点为 0,从节点分别为 1,2) vim /opt/zookeeper/conf/zoo.cfg # 将配置文件中 dataDir 的路径改为/opt/zookeeper/data 并在底部中加入以下参数: server.0=master:2888:3888 server.1=slave1:2888:3888 server.2=slave2:2888:3888 5、将 master 上配置好的 zookeeper 文件同步到 slave1、slave2 节点上 scp -r /opt/zookeeper/ root@slave1:/opt/ scp -r /opt/zookeeper/ root@slave2:/opt/ 6、使其它节点上环境生效 (1、) vim /etc/profile # slave1、slave2 服务器下添加以下内容 #SET ZOOKEEPER export ZOOKEEPER_HOME=/opt/zookeeper export PATH=$PATH:$ZOOKEEPER_HOME/bin (2、) source /etc/profile # slave1、slave2服务器下 7、vim /opt/zookeeper/data/myid 修改 slave1 和 slave2 上的 myid 为1、2 31、启动 zookeeper 集群并测试 cd /opt/zookeeper/conf zkServer.sh start # 分别在服务器 master、slave1、slave2 上运行 8、查看是否启动成功 zkServer.sh status 如果3888端口没开放或被占用显示 JMX enabled by default Using config: /home/hadoop/app/zookeeper/bin/../conf/zoo.cfg Error contacting service. It is probably not running. # 查看是否被占用 netstat -lnpt 如果成功会显示 JMX enabled by default Using config: /home/hadoop/app/zookeeper/bin/../conf/zoo.cfg Mode: follower 五、HBase 安装与配置 1、 解压 hbase-1.3.6-bin.tar.gz tar -zxvf /data/big_data/hbase-1.3.6-bin.tar.gz -C /opt/ mv /opt/hbase-1.3.6 /opt/hbase 2、vim /etc/profile # 给每台服务器配置安装路径, 在文件的最底部加入下面内容 # SET HBASE export HBASE_HOME=/opt/hbase export PATH=$PATH:$HBASE_HOME/bin 3、source /etc/profile # 使环境生效 4、搭建 Hbase 完全分布模式 (1、) vim /opt/hbase/conf/hbase-site.xml # hbase-site.xml 文件 在 <configuration></configuration>中加 <!-- 指定本机的 hbase 的存储目录 --> <property> <name>hbase.rootdir</name> <value>hdfs://master:9000/hbase</value> </property> <!-- 指定 hbase 的运行模式,true 代表全分布模式 --> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <!--关于 Zookeeper 集群的配置--> <property> <name>hbase.zookeeper.quorum</name> <value>master,slave1,slave2</value> </property> (2、) vim /opt/hbase/conf/regionservers # master服务器regionservers删除localhost添加下面内容, slave1服务器和slave2服务器只保留localhost master slave1 slave2 (3、) vim /opt/hbase/conf/hbase-env.sh # hbase-env.sh 文件 设置 JAVA_HOME 和 使用我们自己搭建的 zookeeper 集群 export JAVA_HOME=/export/install/jdk1.8.0_144 export HBASE_MANAGES_ZK=false (4、) 将在 master 上配置好的复制到 slave1 和 slave2 上 scp -r /opt/hbase/ slave1:/opt scp -r /opt/hbase/ slave2:/opt 5、启动 hbase 集群 # 如果报内存不够不需要理它(每一个服务器都需要启动) cd /opt/hbase/bin/ ./start-hbase.sh 6、# 在每个节点上分别用 jps 查看进程 7、开放16010端口,验证是否成功 http://master的外网ip:8088/cluster http://master的外网ip:9870 http://master的外网ip:16010 五、Hive 安装与配置 1、安装Hive tar -zxvf /data/big_data/apache-hive-3.1.2-bin.tar.gz -C /opt/ mv /opt/apache-hive-3.1.2-bin /opt/hive 2、vim /etc/profile # 修改配置在文件的最底部加入下面内容 # SET HIVE export HIVE_HOME=/opt/hive export PATH=$HIVE_HOME/bin:$HIVE_HOME/conf:$PATH 3、使配置生效 source /etc/profile 4、配置hive (1、) 配置前准备 cd /opt/hive/conf/ # 复制hive-env.sh.template 一份并重命名为hive-env.sh cp hive-env.sh.template hive-env.sh (2、) vim hive-env.sh # 添加配置 #添加环境变量 export JAVA_HOME=/export/install/jdk1.8.0_144 export HADOOP_HOME=/opt/hadoop export HIVE_CONF_DIR=/opt/hive/conf (3、) vim hive-site.xml # 新建hive-site.xml 文件 添加以下内容 <?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <!-- 设置成远程连接 --> <property> <name>hive.metastore.local</name> <value>false</value> </property> <!-- mysql连接路径 如果mysql不在本服务器则用mysql所在的服务器公网代替localhost --> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://dexinkeji.mysql.polardb.rds.aliyuncs.com:3306/kcnet_dev?characterEncoding=UTF-8&useSSL=false</value> <description>JDBC connect string for a JDBC metastore</description> <!-- <value>jdbc:mysql://localhost:3306/hive?characterEncoding=UTF-8</value> --> </property> <!-- 驱动 --> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <!-- 用户名 --> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>dexin_dev</value> </property> <!-- 密码 --> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>Abc123456</value> </property> </configuration> 5、配置mysql的驱动 # 用ftp工具将mysql-connector-java-5.1.47-bin.jar放到 /opt/hive/lib/目录下 6、将下面路径中的 guava-*.jar 换成 guava-23.0.jar /opt/hadoop/share/hadoop/common/lib/ /opt/hadoop/share/hadoop/hdfs/lib/ /opt/hive/lib/ 7、初始化元数据 schematool -dbType mysql -initSchema # 看到下面信息表示初始化完成 Initalization script completed schemaTool completed # 如果报 java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument错误,表示这是因为hive内依赖的guava.jar和hadoop内的版本不一致造成的 解决方法: 查看/opt/hadoop/share/hadoop/common/lib内guava-27.0-jre.jar版本 查看/opt/hive/lib内guava.jar的版本 如果两者不一致,删除版本低的,并拷贝高版本的 问题解决! # Error: .. (state=42000,code=1061) 的错误是因为之前格式化成功过,需要将数据库中的表全部删除或者换库 8、hive # 输入hive看是否启动成功,若启动成功会直接进入到hive里 # 报java.net.ConnectException: Call From master/192.168.0.3 to master:9000 failed on connection exception: java.net.ConnectException: Connection refused; 错误 # 是因为集群的namenode关闭了,查看hadoop1的web是否可以访问 http://master的外网ip:8088/cluster http://master的外网ip:9870 http://master的外网ip:16010 # 如果不行,先把三台服务器都重启,再启动hadoop、zookeeper、hbase、tomcat、jstorm 六、安装 tomcat 1、解压安装 tar -zxvf /data/big_data/apache-tomcat-8.5.56.tar.gz -C /export/install/ mv /export/install/apache-tomcat-8.5.56 /export/install/tomcat/ 2、启动tomcat /export/install/tomcat/bin/startup.sh 七、jstorm 安装 1、上传jstorm-2.1.1.zip文件 到/opt/ 2、解压安装 # 先安装unzip # yum install -y unzip zip unzip jstorm-2.1.1.zip mv jstorm-2.1.1 jstorm 3、vim /opt/jstorm/conf/storm.yaml # 修改配置文件 (1、) 将storm.zookeeper.servers:修改为 storm.zookeeper.servers: - "master" - "slave1" - "slave2" (2、) 将 nimbus.host:修改为 nimbus.host: "master" (3、) 将 storm.local.dir: 修改为 storm.local.dir: "/opt/jstorm/data" (4、) 将 supervisor.slots.ports: 修改为 supervisor.slots.ports: - 6800 - 6801 - 6802 - 6803 5、将storm复制到其他服务器 scp -r /opt/jstorm/ slave1:/opt/ scp -r /opt/jstorm/ slave2:/opt/ 6、在master主机执行 mkdir ~/.jstorm cp /opt/jstorm/conf/storm.yaml ~/.jstorm/ 7、配置 storm ui管理界面 (1、) cp /opt/jstorm/jstorm-ui-2.1.1.war /export/install/tomcat/webapps/ (2、) cd /export/install/tomcat/webapps/ (3、) mv ROOT ROOT.old # 备份原来的 (4、) ln -s jstorm-ui-2.1.1 ROOT # 建立软连接 8、启动tomcat /export/install/tomcat/bin/startup.sh 9、master启动nimbus cd /opt/jstorm/ nohup bin/jstorm nimbus & 10、slave1、slave2启动nimbus cd /opt/jstorm/ nohup bin/jstorm supervisor & 11、查看是否安装成功 http://master的外网ip:8080 http://master的外网ip:8088/cluster http://master的外网ip:9870 http://master的外网ip:16010
微信扫码关注公众号,有意想不到的惊喜哦!!!