1.
概述.......................................................................................................................................................................
12.服务列表...............................................................................................................................................................
23.搭建步骤...............................................................................................................................................................
4 3.1安装虚拟机....................................................................................................................................................
43.2准备工作........................................................................................................................................................
6 3.2.1关闭防火墙和Selinux.......................................................................................................................
63.2.2安装软件.............................................................................................................................................
63.2.3检查网卡是否开机自启.....................................................................................................................
63.2.4修改hosts...........................................................................................................................................
83.2.5检查网络是否正常.............................................................................................................................
83.2.6新建hadoop用户...............................................................................................................................
93.2.7生成ssh密钥并分发.......................................................................................................................
103.2.8安装NTP服务.................................................................................................................................
103.3安装MySQL...............................................................................................................................................
113.3.1安装...................................................................................................................................................
113.3.2测试...................................................................................................................................................
123.4安装JDK.....................................................................................................................................................
133.4.1安装...................................................................................................................................................
133.4.2测试...................................................................................................................................................
143.5安装ZooKeeper...........................................................................................................................................
143.6安装Kafka...................................................................................................................................................
173.6.1安装...................................................................................................................................................
173.6.2测试...................................................................................................................................................
183.6.3可能遇到的问题...............................................................................................................................
193.7安装Hadoop................................................................................................................................................
203.7.1安装...................................................................................................................................................
203.7.2测试...................................................................................................................................................
253.8安装HBase..................................................................................................................................................
293.8.1安装...................................................................................................................................................
293.8.2测试...................................................................................................................................................
323.8.3可能遇到的问题...............................................................................................................................
333.9安装Hive.....................................................................................................................................................
333.9.1安装...................................................................................................................................................
333.9.2测试...................................................................................................................................................
363.10安装Scala..................................................................................................................................................
373.11安装Spark.................................................................................................................................................
373.11.1安装.................................................................................................................................................
373.11.2测试.................................................................................................................................................
393.12安装Storm.................................................................................................................................................
40 数据仓库与大数据工程笔记本虚拟机搭建Hadoop集群操作文档1.概述 《数据仓库与大数据工程》实验一需要学生在笔记本上搭建Hadoop集群,本文档对笔记本上创建虚拟机搭建Hadoop集群的步骤进行了说明。
包含所有需要安装的软件与服务的版本,安装路径,安装方法等。
主要流程为:安装虚拟机管理程序,创建三台虚拟服务器,在三台虚拟服务器上搭建以Hadoop集群为核心的大数据平台。
1 2.服务列表 数据仓库与大数据工程笔记本虚拟机搭建Hadoop集群操作文档 实验一要求学生搭建的大数据平台以Hadoop为核心,HDFS、MySQL、HBase组成了存储系统,通过Kafka实时接入数据,使用Storm对数据进行实时分析,Map/Reduce和Spark负责离线数据分析。
Zookeeper负责为分布式应用程序协调服务。
图2-1大数据平台架构图 用于搭建笔记本集群的虚拟机工具为OracleVMVirtualBox5.1.26,使用其他工具也可用。
Hadoop大数据平台所需工具、软件包、版本及安装目录见表2-
1. 软件包名jdk-7u80-linux-x64.tar.gz mysql-5.6.37-linux-glibc2.12x86_64.tar.gzzookeeper-3.4.6.tar.gzkafka_2.10-0.8.2.1.tgz 表2-1Hadoop大数据平台所需的软件包 软件名称 版本 java软件开发工具1.7.80 包 MySQL 5.6.37 安装目录/usr/local/jdk1.7.0_80 /usr/local/mysql ZookeeperKafka
2 3.4.62.10.-0.8.2.1 /usr/local/zookeeper-3.4.6/usr/local/kafka_2.10.-0.8.2.1 hadoop-2.6.5.tar.gzhbase-1.2.6-bin.tar.gzapache-hive-1.1.0-bin.tar.gzmysql-connector-java-5.1.43-bin.jarscala-2.10.6.tgzspark-1.6.3-bin-hadoop2.6.tgz apache-storm-1.1.1.tar.gz 数据仓库与大数据工程笔记本虚拟机搭建Hadoop集群操作文档 HadoopHBaseHiveMySQLJDBC驱动ScalaSpark 2.6.51.2.61.1.05.1.432.10.61.6.3 Storm 1.1.1 /usr/local/hadoop-2.6.5/usr/local/hbase-1.2.6/usr/local/apache-hive-1.1.0-bin /usr/local/scala-2.10.6/usr/local/spark-1.6.3-binhadoop2.6/usr/local/apache-storm-1.1.1 所有虚拟机上需要安装的软件与服务如表2-2所示。
主机名cluster1cluster2cluster3 表2-2虚拟机运行的服务列表 服务zookeeper,Kafka,HDFS(主),YARN(主),HBase(主),Hive,Spark(主),storm(主)zookeeper,Kafka,MySQL,HDFS,YARN,HBase,Hive,Spark,stormzookeeper,Kafka,HDFS,YARN,HBase,Hive,Spark,storm
3 3.搭建步骤 数据仓库与大数据工程笔记本虚拟机搭建Hadoop集群操作文档 3.1安装虚拟机 注意:请关闭360安全卫士等软件!下载系统镜像,可从交大知行论坛上下载,CentOS-7-x86_64-Minimal-1511.iso。
虚拟机软件使用OracleVMVirtualBox5.1.26。
批注[宋超1]:2.03更新 网络设置:选择左上角的管理->全局设定->网络->NAT网络->右侧添加网卡->双击新增的网卡->网络CIDR:10.0.2.0/24->选OK->仅主机(Host-Only)网络->右侧添加网卡->双击新增的网卡->IPv4地址:192.168.56.1->IPv4网络掩码:255.255.255.0->DHCP服务器->取消勾选“启用服务器”->OK->点OK保存。
这里的NAT网络是为了创建出一个包含三台虚拟机的局域网环境,而Host-Only网络是为了使笔记本能与虚拟机通信,这样在虚拟机成功安装后,就可以使用putty或secureCRT等SSH工具从笔记本连接到虚拟机,然后将文档中提供的配置文件内容复制粘贴进去,若不配置Host-Only网络,本文档所有的配置文件全部需要手动输入。
4 数据仓库与大数据工程笔记本虚拟机搭建Hadoop集群操作文档 内存1536M,选择现在创建虚拟硬盘,虚拟硬盘文件类型选择VHD(虚拟硬盘),存储分配选择动态分配(D),大小选择8G,然后选择创建。
右键选择创建好的虚拟机cluster1,选择设置 存储->没有盘片->右侧的光盘图标,选择下载好的CentOS-7-x86_64-Minimal-1511.iso,选择OK。
选择网络->网卡1->启用网络连接->连接方式->NAT->界面名称->选择刚才先建立的那块虚拟网卡即可->网卡2->启用网络连接->连接方式->仅主机(Host-Only)网络->界面名称->选择刚才后建立的那块虚拟网卡->OK。
双击cluster1进入虚拟机,选择InstallCentOS7,选择English->continue。
DATE&TIME,Region选择Asia,City选择Shanghai,左上角Done。
INSTALLATIONDESTINATION,点进去后直接点左上角的Done。
NETWORK&HOSTNAME,两张网卡右侧都选择ON,下面的Hostname改为cluster1,左上角Done。
选择右下角Begininstallation。
进入安装界面后选择rootpassword随意。
右侧usercreation,Fullname设置为cluster1,密码随意,不要选择makethisuseradministrator。
待下方进度条结束后,会有reboot这个选项,点击重启后,即可登陆。
再做两台这样的虚拟机分别是cluster2和cluster3即可。
5 3.2准备工作 数据仓库与大数据工程笔记本虚拟机搭建Hadoop集群操作文档 注:以下内容“//”后面的内容为下一行语句的注释,“#”后面的语句是使用root用户执行的,“$”后面的语句是使用普通用户(3.2.5创建的hadoop用户)执行的。
红色是必须要注意的内容! 3.2.1关闭防火墙和Selinux 每台都要执行(我们安装的centOS最小版没有防火墙,在其他centOS上操作时必须要关闭防火墙)//关闭防火墙和selinux#systemctlfirewalld.service //禁止firewall开机启动#systemctldisablefirewalld.service //开机关闭Selinux,编辑Selinux配置文件#vi/etc/selinux/config将SELINUX设置为disabled如下:SELINUX=disabled //重启#reboot //重启机器后root用户查看Selinux状态#getenforce 3.2.2安装软件 以下软件是安装时需要的依赖环境,安装MySQL时需要使用perl和libaio,ntpdate负责集群内服务器时间,screen用于新建后台任务。
每台都要执行#yuminstallperl*#yuminstallntpdate#yuminstalllibaio#yuminstallscreen 3.2.3检查网卡是否开机自启 每台都要执行//查看网卡名,看里面一个enp0s开头的是多少,由于我们开启了两块网卡,注意这两张都是什么名字//我的网卡名分别是enp0s3和enp0s8,还有一个lo,这个可以忽略不计。
#ipaddr
6 批注[宋超2]:2.0更新 数据仓库与大数据工程笔记本虚拟机搭建Hadoop集群操作文档 使用这条命令可以查看所有网卡的信息,注意记录每张网卡的网卡名:前面序号后面的即为网卡名。
还需记录每张网卡的ip地址,后面的就是。
注意:此处有两张网卡,分别是2:enp0s3和3:enp0s8,如果没有,可能是因为在安装系统的过程中,没有打开网络服务,或是网卡没有设定为开机自启。
接下来编辑网卡配置文件编辑的第一个网卡的配置文件,应该是ip为10.0.2开头的那张网卡,网卡名为enp0s3//编辑网卡配置文件#vi/etc/work-scripts/ifcfg-enp0s3//确认ONBOOT为yes,这个设置为yes后,该网卡会开机自启,不会开机连不上网ONBOOT=yes接下来编辑第二张网卡的配置文件,是enp0s8#vi/etc/work-scripts/ifcfg-enp0s8将BOOTPROTO设置为noneONBOOT=yes新增IPADDR=192.168.56.121(cluster2设置为192.168.56.122,cluster3为192.168.56.123)NETMASK=255.255.255.0NETWORK=192.168.56.0保存后关闭文件。
//重启网络服务#workrestart重启成功后会出现一个绿色的OK,失败则显示红色的failed,若失败,则使用reboot重启服务器即可。
重启后,就可以使用putty或其他SSH工具连接虚拟机了。
7 数据仓库与大数据工程笔记本虚拟机搭建Hadoop集群操作文档 以下以putty为例:在windows中,下载putty,打开后,输入192.168.56.121 然后点击右下角的Open,即可连接到cluster1上。
同样的,可以使用Filezilla传输文件。
主机为:sftp://192.168.56.121,用户名为root,端口号不用设定,快速连接即可。
3.2.4修改hosts 每台都要执行//记录当前ip地址,要记录第一张网卡的ip地址#ipaddr //修改hosts#vi/etc/hosts//在最下面添加以下几行内容,下面的红色的ip地址写你用ipaddr里面显示的第一张网卡(enp0s3)的ip10.0.2.6cluster110.0.2.8cluster210.0.2.7cluster3 3.2.5检查网络是否正常 //在cluster1上#pingcluster2如果出现如下界面
8 批注[宋3]:2.2更新 数据仓库与大数据工程笔记本虚拟机搭建Hadoop集群操作文档 可以看到time=多少秒,说明可以从cluster1连接到cluster2,同理,检查能否连接到cluster3,使用Ctrl+C中断命令ping。
//检查能否连接到cluster3#pingcluster3 如果出现如下界面 可能导致该问题的原因:1.hosts配置有误,hosts中的cluster2的ip地址,与cluster2的实际ip地址不同,请返回检查cluster2的ip 地址。
2.cluster2处于关机状态,没有开机。
3.2.6新建hadoop用户 每台都要执行新建hadoop用户,这个用户专门用来维护集群,因为实际中使用root用户的机会很少,而且不安全。
//新建hadoop组#groupaddhadoop //新建hadoop用户#useradd-s/bin/bash-ghadoop-d/home/hadoop-mhadoop //修改hadoop这个用户的密码#passwdhadoop 批注[宋超4]:1.9更新
9 3.2.7生成ssh密钥并分发 数据仓库与大数据工程笔记本虚拟机搭建Hadoop集群操作文档 只在cluster1上执行//生成ssh密钥(cluster1上),切换到hadoop用户$ssh-keygen-trsa然后一路回车 //接下来分发密钥,请仔细观察显示的内容,会让你输入yes$ssh-copy-idcluster1$ssh-copy-idcluster2$ssh-copy-idcluster3 3.2.8安装NTP服务 //三台都要安装#yuminstallntpdate//cluster1上装ntp#yuminstallntp //cluster1上执行以下操作#vi/etc/ntp.conf注释掉以下4行,也就是在这4行前面加#serveriburstserveriburstserveriburstserveriburst最下面加入以下内容,红色部分分别为网关和掩码restrictdefaultignorerestrict10.0.2.0mask255.255.255.0nomodifynotrapserver127.127.1.0 //重启ntp服务#servicentpdrestart //设置ntp服务器开机自动启动#chkconfigntpdon //以下为客户端的配置(除cluster1外其他所有的机器,即cluster2和cluster3):设定每天00:00向服务器同步时间,并写入日志#crontab-e输入以下内容后保存并退出:00***/usr/sbin/ntpdatecluster1>>/root/ntpd.log 10 批注[宋超5]:2.0更新批注[宋6]:V2.2更新 数据仓库与大数据工程笔记本虚拟机搭建Hadoop集群操作文档 //手动同步时间,需要在每台机器上(除ntpserver),使用ntpdatecluster1同步时间#ntpdatecluster1 3.3安装MySQL 3.3.1安装 只在cluster2上做以下内容,因为我们的集群中,只有cluster2上需要安装一个MySQL#yumremovemysqlmysql-serverpat-mysql51#rm-rf/var/lib/mysql#rm-rf/etc/f 下载mysql-5.6.37-linux-glibc2.12-x86_64#cpmysql-5.6.37-linux-glibc2.12-x86_64.tar.gz/usr/local/ //解压到/usr/local/#tar-zxvfmysql-5.6.37-linux-glibc2.12-x86_64.tar.gz //改名为mysql#mvmysql-5.6.37-linux-glibc2.12-x86_64mysql //删除安装包#rmmysql-5.6.37-linux-glibc2.12-x86_64.tar.gz //修改环境变量#vi/etc/profile在最下面添加exportMYSQL_HOME=/usr/local/mysqlexportPATH=$MYSQL_HOME/bin:$PATH //刷新环境变量#source/etc/profile //新建mysql用户#groupaddmysql在/etc/group中可以看到#useradd-r-gmysql-s/bin/falsemysql在/etc/passwd中可以看到#cd/usr/local/mysql#chown-Rmysql:mysql.#scripts/mysql_install_db--user=mysql //修改当前目录拥有者为root用户#chown-Rroot. 11 //修改当前data目录拥有者为mysql用户#chown-Rmysqldata 数据仓库与大数据工程笔记本虚拟机搭建Hadoop集群操作文档 #bin/mysqld_safe--user=mysql& #cd/usr/local/mysql //登陆mysql#bin/mysql //登陆成功后退出即可mysql>exit; //进行root账户密码的修改等操作#bin/mysql_secure_installation 首先要求输入root密码,由于我们没有设置过root密码,括号里面说了,如果没有root密码就直接按回车。
是否设定root密码,选y,设定密码为cluster,是否移除匿名用户:y。
然后有个是否关闭root账户的远程登录,选n,删除test这个数据库?y,更新权限?y,然后ok。
#cpsupport-files/mysql.server/etc/init.d/mysql.server //查看mysql的进程号#ps-ef|grepmysql //如果有的话就kill掉,保证mysql已经中断运行了,一般kill掉/usr/local/mysql/bin/mysqld开头的即可#kill进程号 //启动mysql#/etc/init.d/mysql.serverstart-user=mysql#exit 还需要配置一下访问权限:$mysql-uroot-pmysql>GRANTALLPRIVILEGESON*.*TO'root'@'%'IDENTIFIEDBY'cluster'WITHGRANTOPTION;mysql>FLUSHPRIVILEGES; //关闭mysql的指令(不需要执行)#mysqladmin-uroot-pshutdown 批注[宋7]:V2.2更新批注[宋超8]:2.0更新批注[宋超9]:2.0更新 3.3.2测试 mysql>createdatabasetest_table;mysql>usetest_table; 12 mysql>createtableuserinfo(idintnotnull);mysql>insertintouserinfovalues
(1);mysql>select*fromuserinfo;mysql>dropdatabasetest_table;mysql>showdatabases; 3.4安装JDK 数据仓库与大数据工程笔记本虚拟机搭建Hadoop集群操作文档 3.4.1安装 每台都要安装$suroot#cpjdk-7u80-linux-x64.tar.gz/usr/local/#tar-zxvfjdk-7u80-linux-x64.tar.gz //修改环境变量#vi/etc/profile //添加以下内容exportJAVA_HOME=/usr/local/jdk1.7.0_80/exportJRE_HOME=/usr/local/jdk1.7.0_80/jreexportCLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATHexportPATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH //复制jdk到其他的服务器上#scp-r/usr/local/jdk1.7.0_80/cluster2:/usr/local/#scp-r/usr/local/jdk1.7.0_80/cluster3:/usr/local/ //cluster2上#vi/etc/profile //添加以下内容exportJAVA_HOME=/usr/local/jdk1.7.0_80/exportJRE_HOME=/usr/local/jdk1.7.0_80/jreexportCLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATHexportPATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH //cluster3上#vi/etc/profile //添加以下内容exportJAVA_HOME=/usr/local/jdk1.7.0_80/exportJRE_HOME=/usr/local//jdk1.7.0_80/jre 13 批注[宋超10]:2.0更新 数据仓库与大数据工程笔记本虚拟机搭建Hadoop集群操作文档 exportCLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATHexportPATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH 3.4.2测试 $java-version可以看到java版本为1.7.0_80即为安装成功 3.5安装ZooKeeper 每台都要安装//cluster1上将zookeeper解压到/usr/local目录下,配置环境变量#vi/etc/profile //添加以下内容exportZOOKEEPER_HOME=/usr/local/zookeeper-3.4.6exportPATH=$ZOOKEEPER_HOME/bin:$PATH #cd/usr/local/zookeeper-3.4.6 //在conf中新建zoo.cfg文件#viconf/zoo.cfg //输入以下内容#客户端心跳时间(毫秒)tickTime=2000#允许心跳间隔的最大时间initLimit=10#同步时限syncLimit=5#数据存储目录dataDir=/home/hadoop_files/hadoop_data/zookeeper#数据日志存储目录dataLogDir=/home/hadoop_files/hadoop_logs/zookeeper/dataLog#端口号clientPort=2181#集群节点和服务端口配置server.1=cluster1:2888:3888server.2=cluster2:2888:3888server.3=cluster3:2888:3888 //创建zookeeper的数据存储目录和日志存储目录 14 批注[宋超11]:2.0更新批注[宋超12]:2.0更新 批注[宋13]:2.3更新 数据仓库与大数据工程笔记本虚拟机搭建Hadoop集群操作文档 #mkdir-p/home/hadoop_files/hadoop_data/zookeeper#mkdir-p/home/hadoop_files/hadoop_logs/zookeeper/dataLog#mkdir-p/home/hadoop_files/hadoop_logs/zookeeper/logs //修改文件夹的权限#chown-Rhadoop:hadoop/home/hadoop_files#chown-Rhadoop:hadoop/usr/local/zookeeper-3.4.6 //在cluster1号服务器的data目录中创建一个文件myid,输入内容为1//myid应与zoo.cfg中的集群节点相匹配#echo"1">>/home/hadoop_files/hadoop_data/zookeeper/myid //修改zookeeper的日志输出路径(注意CDH版与原生版配置文件不同)#vibin/zkEnv.sh //将配置文件里面的以下项替换为红字的内容if["x${ZOO_LOG_DIR}"="x"]then ZOO_LOG_DIR="/home/hadoop_files/hadoop_logs/zookeeper/logs"fiif["x${ZOO_LOG4J_PROP}"="x"]then ZOO_LOG4J_PROP="INFO,ROLLINGFILE"fi //修改zookeeper的日志配置文件#viconf/log4j.properties //修改为以下内容:zookeeper.root.logger=INFO,ROLLINGFILE.apache.log4j.DailyRollingFileAppender 将这个zookeeper-3.4.6的目录复制到其他的两个节点上#scp-r/usr/local/zookeeper-3.4.6cluster2:/usr/local/#scp-r/usr/local/zookeeper-3.4.6cluster3:/usr/local/ //退回hadoop用户#exit //刷新环境变量$source/etc/profile //启动zookeeper$zkServer.shstart 15 数据仓库与大数据工程笔记本虚拟机搭建Hadoop集群操作文档 //cluster2上面改环境变量,加入以下内容exportZOOKEEPER_HOME=/usr/local/zookeeper-3.4.6exportPATH=$ZOOKEEPER_HOME/bin:$PATH //创建zookeeper的数据存储目录和日志存储目录$suroot#mkdir-p/home/hadoop_files/hadoop_data/zookeeper#mkdir-p/home/hadoop_files/hadoop_logs/zookeeper/dataLog#mkdir-p/home/hadoop_files/hadoop_logs/zookeeper/logs //添加myid#echo"2">>/home/hadoop_files/hadoop_data/zookeeper/myid //修改文件夹的权限#chown-Rhadoop:hadoop/home/hadoop_files#chown-Rhadoop:hadoop/usr/local/zookeeper-3.4.6 //退回hadoop用户#exit //刷新环境变量$source/etc/profile //启动zookeeper$zkServer.shstart //cluster3上面加环境变量#vi/etc/profileexportZOOKEEPER_HOME=/usr/local/zookeeper-3.4.6exportPATH=$ZOOKEEPER_HOME/bin:$PATH //创建zookeeper的数据存储目录和日志存储目录#mkdir-p/home/hadoop_files/hadoop_data/zookeeper#mkdir-p/home/hadoop_files/hadoop_logs/zookeeper/dataLog#mkdir-p/home/hadoop_files/hadoop_logs/zookeeper/logs //添加myid#echo"3">>/home/hadoop_files/hadoop_data/zookeeper/myid //修改文件夹的权限#chown-Rhadoop:hadoop/home/hadoop_files#chown-Rhadoop:hadoop/usr/local/zookeeper-3.4.6 16 //退回hadoop用户#exit 数据仓库与大数据工程笔记本虚拟机搭建Hadoop集群操作文档 //刷新环境变量$source/etc/profile //启动zookeeper(每台都要执行,而且三台要接连执行,都启动后再做下面的)$zkServer.shstart //三台zookeeper都启动后,使用jps命令查看进程是否启动#jps 可以看到一个叫QuorumPeerMain的进程,说明zookeeper启动成功 //退出root用户#exit //查看zookeeper状态$zkServer.shstatus可以看到三台中有一个是leader,两个是follower //关闭zookeeper的命令(关机前在每台上都要执行,这里不需要执行)$zkServer.sh 3.6安装Kafka 3.6.1安装 //cluster1上kafka_2.10-0.8.2.1解压到/usr/local //添加环境变量exportKAFKA_HOME=/usr/local/kafka_2.10-0.8.2.1exportPATH=$KAFKA_HOME/bin:$PATH //修改配置文件#vi/usr/local/kafka_2.10-0.8.2.1/config/server.properties //修改下面3项//第一项:这个值要唯
一,不同的机器不能相同,cluster1就写1,cluster2就写2,cluster3就写3broker.id=1 //第二项:修改日志路径 17 批注[宋超14]:2.0更新 log.dirs=/home/hadoop_files/hadoop_logs/kafka 数据仓库与大数据工程笔记本虚拟机搭建Hadoop集群操作文档 //第三项:此处要写zookeeper集群的ip+端口号,逗号隔开zookeeper.connect=cluster1:2181,cluster2:2181,cluster3:2181 //第四项:此处要写对应机器的ip地址!advertised.host.name=192.168.56.121 //修改完环境变量,更新配置文件#source/etc/profile //保存退出后创建logs文件夹#mkdir-p/home/hadoop_files/hadoop_logs/kafka //修改权限#chown-Rhadoop:hadoop/home/hadoop_files#chown-Rhadoop:hadoop/usr/local/kafka_2.10-0.8.2.1 //复制文件夹#scp-r/usr/local/kafka_2.10-0.8.2.1cluster2:/usr/local/#scp-r/usr/local/kafka_2.10-0.8.2.1cluster3:/usr/local/ //cluster2上#vi/usr/local/kafka_2.10-0.8.2.1/config/server.propertiesbroker.id=
2 //cluster3上#vi/usr/local/kafka_2.10-0.8.2.1/config/server.propertiesbroker.id=
3 //使用hadoop用户启动kafka集群先启动zookeeper集群,然后在kafka集群中的每个节点使用$kafka-server-start.sh/usr/local/kafka_2.10-0.8.2.1/config/server.properties&启动完成后按回车即可 批注[宋超15]:2.1更新 3.6.2测试 //创建ic$ics.sh--create--zookeepercluster1:2181,cluster2:2181,cluster3:2181--replication-factor3--partitions1icmykafka //查看Topic:$ics.sh--list--zookeepercluster1:2181,cluster2:2181,cluster3:2181 18 此时会显示Topic:mykafka 数据仓库与大数据工程笔记本虚拟机搭建Hadoop集群操作文档 //查看详细信息$ics.sh--describe--zookeepercluster1:2181,cluster2:2181,cluster3:2181Topic:mykafkaPartitionCount:1ReplicationFactor:3Configs:Topic:mykafkaPartition:0Leader:133Replicas:133,134,132Isr:134 //发送消息(cluster1上执行)$kafka-console-producer.sh--broker-listlocalhost:9092icmykafka //接收消息(cluster2上执行)$kafka-console-consumer.sh-zookeepercluster1:2181,cluster2:2181,cluster3:2181icmykafka--frombeginning //在cluster1输入以下内容testmyclustertest 可以在cluster2上看到相应的信息按Ctrl+C退出 //关闭kafka,在每台上执行$.sh //新建虚拟窗口kafka,在每台上执行$screen-Skafka //启动kafka集群,在每台上执行$kafka-server-start.sh/usr/local/kafka_2.10-0.8.2.1/config/server.properties //退出虚拟窗口kafka,在每台上执行$Ctrl+A+D在每台服务器上面执行jps可以看到Kafka进程在运行 //关闭kafka的命令为,在每台服务器上进入虚拟窗口kafka,然后使用.sh即可。
3.6.3可能遇到的问题
1.如果出现以下信息,则需要下载slftj-nop-1.5.jar,并将其复制至kafka的libs目录下:SLF4J:Failedtoloadclass.slf4j.impl.StaticLoggerBinder".SLF4J:Defaultingtono-operation(NOP)loggerimplementationSLF4J:See#StaticLoggerBinderforfurtherdetails.2.Error:whilemandreplicationfactor:3largerthanavailablebrokers:1 19 这是因为没有将3台机器的kafka都启动。
3.7安装Hadoop 数据仓库与大数据工程笔记本虚拟机搭建Hadoop集群操作文档 3.7.1安装 Hadoop启动的先决条件是zookeeper已经成功启动//在cluster1节点/usr/local/解压hadoop安装包$suroot#tar-zxvfhadoop-2.6.5.tar.gz //删除安装包#rmhadoop-2.6.5.tar.gz //切换到存有hadoop配置文件的目录#cd/usr/local/hadoop-2.6.5/etc/hadoop //修改hadoop-env.sh文件#vihadoop-env.sh将exportJAVA_HOME=${JAVA_HOME}替换为exportJAVA_HOME=/usr/local/jdk1.7.0_80exportHADOOP_PID_DIR=/home/hadoop_files //配置mapred-env.sh#vimapred-env.shexportHADOOP_MAPRED_PID_DIR=/home/hadoop_files //配置core-site.xml文件#vicore-site.xml
点击上面标签栏的第二项Datanodes,可以看到如下界面 25 数据仓库与大数据工程笔记本虚拟机搭建Hadoop集群操作文档 这个页面显示了当前HDFS中的可用节点。
启动YARN后,可以通过浏览器访问192.168.56.121:8088,查看YARN的web界面 该页面展示了所有提交到YARN上的程序,点击左侧的Nodes可以看到YARN的节点 26 数据仓库与大数据工程笔记本虚拟机搭建Hadoop集群操作文档 注意,此处可以看到每个节点的可用内存MemAvail为8G,我们的虚拟机每台内存只有1.5G,之所以出现这个问题是因为我们没有在yarn-site.xml这个文件中对节点的可用内存进行配置,可以增加一下内容进行配置:--配置nodemanager可用的资源内存-->
命令行测试://cluster1//切换至hadoop用户的主目录$cd~///新建一个测试文件$vitestfile输入 27 123//保存退出 数据仓库与大数据工程笔记本虚拟机搭建Hadoop集群操作文档 //查看HDFS根目录的文件$hdfsdfs-ls/ //在HDFS的根目录创建test目录$hdfsdfs-mkdir/test //如果出现了mkdir:Cannotcreatedirectory/test.Namenodeisinsafemode.说明HDFS刚启动不久,还在安全检查中。
由于我们的笔记本性能不够强,安全检查的时间会很长,可以使用命令退出安全模式,看到SafemodeisOFF,再执行上面的创建目录的命令$hdfsdfsadmin-safemodeleave //创建完文件夹后再次查看根目录,查看目录是否新建成功$hdfsdfs-ls/ //将测试文件testfile上传至HDFS根目录下的test目录中$hdfsdfs-puttestfile/test //在cluster2上//切换至hadoop用户的主目录$cd~/ //查看HDFS根目录$hdfsdfs-ls/ //查看HDFS根目录下的test目录,可以看到我们刚才在cluster1上上传的文件testfile$hdfsdfs-ls/test //查看HDFS上的/test/testfile文件的内容$hdfsdfs-cat/test/testfile //将HDFS上的/test/testfile下载到本地$hdfsdfs-get/test/testfile //查看本地当前目录内的内容,可以看到刚才下载的testfile$ls 28 批注[宋超21]:2.0更新 3.8安装HBase 数据仓库与大数据工程笔记本虚拟机搭建Hadoop集群操作文档 3.8.1安装 HBase启动的先决条件是zookeeper和Hadoop已经启动//切换至root用户$suroot //在cluster1节点/usr/local/解压hbase安装包#tar-zxvfhbase-1.2.6-bin.tar.gz //进入hbase的conf目录#cd/usr/local/hbase-1.2.6/conf/ //修改hbase-env.sh#vihbase-env.sh将JAVA_HOME,HADOOP_HOME,HBASE_LOG_DIR,HBASE_MANAGES_ZK修改为以下内容:记得去掉前面的##配置JDK安装路径exportJAVA_HOME=/usr/local/jdk1.7.0_80#配置Hadoop安装路径exportHADOOP_HOME=/usr/local/hadoop-2.6.5#设置HBase的日志目录exportHBASE_LOG_DIR=/home/hadoop_files/hadoop_logs/hbase/logs#使用独立的ZooKeeper集群exportHBASE_MANAGES_ZK=false#设置pid的路径exportHBASE_PID_DIR=/home/hadoop_files //配置hbase-site.xml#vihbase-site.xml
32 数据仓库与大数据工程笔记本虚拟机搭建Hadoop集群操作文档 删除刚才建立的表:hbase>disable'userinfotable'hbase>drop'userinfotable'hbase>exit 3.8.3可能遇到的问题
1.HRegionServer闪退,在cluster1上使用start-hbase.sh启动后,用jps查看进程,可以看到HRegionServer,过一会儿再看就消失了。
解决方法:有可能是时间不同步导致的问题,检查三台服务器的时间是否还同步。
3.9安装Hive 3.9.1安装 以下内容除在MySQL中创建hive用户和创建hive数据库只用操作一次,其他操作需要在每个Hadoop结点上都执行一次。
注:hive能启动的先决条件是MySQL已经安装并配置完成,而且HDFS也要启动之后才能运行hive$suroot#cpapache-hive-1.1.0-bin.tar.gz/usr/local#cd/usr/local#tar-zxvf./apache-hive-1.1.0-bin.tar.gz#vi/etc/profile 33 批注[宋超23]:2.0更新 数据仓库与大数据工程笔记本虚拟机搭建Hadoop集群操作文档 //在下面加上两行:exportHIVE_HOME=/usr/local/apache-hive-1.1.0-binexportPATH=$HIVE_HOME/bin:$HIVE_HOME/conf:$PATH //root用户登陆MySQL#mysql-uroot-p//创建用户hive,密码hivemysql>GRANTUSAGEON*.*TO'hive'@'%'IDENTIFIEDBY'hive'WITHGRANTOPTION;//创建数据库hivemysql>createdatabasehive;//允许任意ip以hive登陆数据库mysql>grantallonhive.*tohive@'%'identifiedby'hive';mysql>grantallonhive.*tohive@'localhost'identifiedby'hive';mysql>grantallonhive.*tohive@'cluster2'identifiedby'hive';//刷新权限mysql>flushprivileges;//退出mysql>exit; //验证hive用户,密码hive #mysql-uhive-p //查看当前的数据库 mysql>showdatabases; 若看到下面有hive这个库,则说明创建成功 +-------------------------------+ |Database | +-------------------------------+ |information_schema| |hive | +-------------------------------+ 2rowsinset(0.00sec) //退出mysql mysql>exit; //修改hive-site.xml#cpapache-hive-1.1.0-bin/conf/hive-default.xml.templateapache-hive-1.1.0-bin/conf/hive-site.xml#viapache-hive-1.1.0-bin/conf/hive-site.xml找到以下property项,value值修改成如下,其他的在hive-site.xml中出现,但是下文没出现的就不需要更改了:
1,”test”); //换台服务器hive>showtables;应该可以看到刚才创建的test_tablehive>select*fromtest_table;hive>droptabletest_table;hive>showtables;hive>exit; 36 3.10安装Scala 在cluster1上$suroot#mvscala-2.10.6.tgz/usr/local#tar-zxvfscala-2.10.6.tgz#vi/etc/profile最下面加两行:exportSCALA_HOME=/usr/local/scala-2.10.6exportPATH=$SCALA_HOME/bin:$PATH//刷新环境变量#source/etc/profile//查看版本,验证安装是否成功#scala-version //复制到所有的服务器上#scp-r/usr/local/scala-2.10.6cluster2:/usr/local/#scp-r/usr/local/scala-2.10.6cluster3:/usr/local/ //在每一个节点上修改环境变量#vi/etc/profileexportSCALA_HOME=/usr/local/scala-2.10.6exportPATH=$SCALA_HOME/bin:$PATH //刷新环境变量#source/etc/profile //修改文件夹权限(每一个节点都要操作)#chown-Rhadoop:hadoop/usr/local/scala-2.10.6 3.11安装Spark 数据仓库与大数据工程笔记本虚拟机搭建Hadoop集群操作文档 3.11.1安装 (所有节点都要操作)下载spark-1.6.3-bin-hadoop2.6.tgz//解压#cpspark-1.6.3-bin-hadoop2.6.tgz/usr/local#cd/usr/local/#tar-zxvfspark-1.6.3-bin-hadoop2.6.tgz#cdspark-1.6.3-bin-hadoop2.6//环境变量 37 数据仓库与大数据工程笔记本虚拟机搭建Hadoop集群操作文档 #vi/etc/profile添加以下内容:exportSPARK_HOME=/usr/local/spark-1.6.3-bin-hadoop2.6exportPATH=$SPARK_HOME/bin:$PATH主节点要再加一行(cluster1):exportPATH=$SPARK_HOME/sbin:$PATH //复制conf文件夹里面template一份,改名为spark-env.sh#cpconf/spark-env.sh.templateconf/spark-env.sh //在conf/spark-env.sh最下面加入以下7行:#viconf/spark-env.shexportJAVA_HOME=/usr/local/jdk1.7.0_80exportSCALA_HOME=/usr/local/scala-2.10.6exportSPARK_MASTER_IP=cluster1exportHADOOP_CONF_DIR=/usr/local/hadoop-2.6.5/etc/hadoopexportSPARK_DIST_CLASSPATH=$(/usr/local/hadoop-2.6.5/bin/hadoopclasspath)exportSPARK_CLASSPATH=$HIVE_HOME/lib/mysql-connector-java-5.1.43-bin.jarexportSPARK_PID_DIR=/home/hadoop_files //在conf下面新建一个叫slaves的文件#viconf/slaves添加以下几行cluster1cluster2cluster3 //将hive目录下conf文件夹中的hive-site.xml复制到spark的conf目录下#cd/usr/local/#cpapache-hive-1.1.0-bin/conf/hive-site.xmlspark-1.6.3-bin-hadoop2.6/conf/ //将hadoop/etc/hadoop文件中的hdfs-site.xml和core-site.xml文件复制到spark的conf目录下#cphadoop-2.6.5/etc/hadoop/hdfs-site.xmlhadoop-2.6.5/etc/hadoop/core-site.xmlspark-1.6.3-bin-hadoop2.6/conf/ //将conf目录下的spark-defaults.conf.template复制一份,改名为spark-default.conf#cdspark-1.6.3-bin-hadoop2.6/conf/#cpspark-defaults.conf.templatespark-defaults.conf#vispark-defaults.conf //在最下面加上下面这一行spark.filesfile:///usr/local/spark-1.6.3-bin-hadoop2.6/conf/hdfs-site.xml,file:///usr/local/spark-1.6.3-binhadoop2.6/conf/core-site.xml
保存后退出即可。
38 数据仓库与大数据工程笔记本虚拟机搭建Hadoop集群操作文档 //复制到所有的服务器上#scp-r/usr/local/spark-1.6.3-bin-hadoop2.6cluster2:/usr/local/#scp-r/usr/local/spark-1.6.3-bin-hadoop2.6cluster3:/usr/local/ //修改spark文件夹的权限(每个spark结点)#chown-Rhadoop:hadoop/usr/local/spark-1.6.3-bin-hadoop2.6 //运行Spark(cluster1上)运行spark前需启动hadoop的HDFS和YARN$start-master.sh$start-slaves.sh //关闭Spark的命令(cluster1上)$-slaves.sh$-master.sh 批注[宋超26]:2.0更新 3.11.2测试 在cluster1上使用jps命令可以看到Master和Worker,cluster2和3上可以看到Worder用浏览器访问192.168.56.121:8080可以看到Spark的web界面,可以看到3个worker 批注[宋超27]:2.0更新 39 3.12安装Storm 数据仓库与大数据工程笔记本虚拟机搭建Hadoop集群操作文档 storm需要python2.6以上的版本//查看python版本#python 可以在最上面一行看到python的版本//退出python交互式界面>>>exit()如果版本低于2.6,使用yuminstallpython,安装Python2.7 (以下都要在所有节点上操作)将下载的storm解压到/usr/local下 //添加环境变量#vi/etc/profileexportSTORM_HOME=/usr/local/apache-storm-1.1.1exportPATH=$STORM_HOME/bin:$PATH //改一下权限#chown-Rhadoop:hadoopapache-storm-1.1.1//更改配置文件#viapache-storm-1.1.1/conf/storm.yaml 里面有两个要改的地方第一个是storm.zookeeper.servers: -“cluster1”-“cluster2”-“cluster3”第二个是加入一行storm.local.dir:“/home/hadoop_files/hadoop_tmp/storm/tmp”切记:冒号左右要有空格,否则会报错couldnotfoundexpected‘:’storm.local.dir的最左边也要有一个空格//然后新建tmp文件夹,改权限#mkdir-p/home/hadoop_files/hadoop_tmp/storm/tmp#chown-Rhadoop:hadoop/home/hadoop_files#chown-Rhadoop:hadoop/usr/local/apache-storm-1.1.1 //新建storm-master的虚拟窗口(cluster1)$screen-Sstorm-master$stormnimbus$Ctrl+A+D 40 数据仓库与大数据工程笔记本虚拟机搭建Hadoop集群操作文档 //新建storm-supervisor的虚拟窗口(cluster2,cluster3)$screen-Sstorm-supervisor$stormsupervisor$Ctrl+A+D//新建storm-ui的虚拟窗口(cluster1)$screen-Sstorm-ui$stormui$Ctrl+A+D//新建storm-logviewer的虚拟窗口(cluster1,cluster2,cluster3)$screen-Sstorm-logviewer$stormlogviewer$Ctrl+A+D使用jps可以看到以下进程cluster1:nimbus,core,logviewercluster2:Supervisor,logviewercluster3:Supervisor,logviewer关闭的过程就是按逆向的顺序进入虚拟窗口后,使用Ctrl+C退出即可。
41