1.virtual box安装
到virtual box下载网页上下载virtual box和扩展程序
virtualbox.org/wiki/Downloads
下载好后点击打开安装程序
基本上不需要修改内容,一直下一步即可。
完成后打开的页面与下图类似(下图已创建虚拟机):
打开管理->全局设定->扩展 添加下载好的扩展程序(下图已添加)
2. 创建虚拟机
选择新建虚拟机创建一台虚拟机,这里只是做一下示范,名字可以任意,这里用node4,node5,node6作为三台机器的主机名。
分配内存为2G
新建虚拟硬盘
分配12G的虚拟硬盘
创建成功
然后设置该虚拟机的网络连接方式为桥接网卡,让机器有自己的IP地址,独立于宿主机。
3.下载centos8镜像
到镜像网站上下在centos8的光盘映像,下载链接如下:http://iso.mirrors.ustc.edu.cn/centos/8.4.2105/isos/x86_64/CentOS-8.4.2105-x86_64-dvd1.iso
4.安装centos8系统
如果是第一次安装需要手动注册选择安装映像
选择第一项直接安装,等待加载完成后出现系统安装引导页面,默认语言选择英语,点击continue继续
一共需要进行5处设置:网络选项需要打开网卡并修改主机名为node4,时区选择亚洲上海并打开网络时间,软件选项选择服务器,安装位置选择创建好的硬盘,,最后设置管理员密码为123456。
然后开始安装。
完成后点击重启系统。
选择第一个系统启动,安装成功
建立新的虚拟机只要进行同样的 *** 作,在创建过程中改一下主机名即可。
5.安装FinalShell
为了方便对虚拟机进行 *** 作,我们要下载一个ssh工具,这里用FinalShell进行 *** 作。
下载网页为:https://www.hostbuf.com/t/988.html 选择windows版进行下载,安装过程不再赘述。
打开FinalShell,依次点击如下图标,选择ssh连接
使用密码连接,密码为安装centos8时设置的密码,我设置为123456
开始连接到虚拟机,第一次连接选择接受虚拟机的密钥
连接成功,后续对虚拟机的 *** 作都在FinalShell上进行。
6.安装java1.8
由于hive是基于hadoop运行的,hadoop是用java写的,所以需要在虚拟机上安装java,为了和较新版本的hadoop和hive兼容,我们选择安装java1.8版本。到华为的镜像站上下载java1.8的安装包。
可以直接点击下载链接下载: https://repo.huaweicloud.com/java/jdk/8u151-b12/jdk-8u151-linux-x64.tar.gz
下载好后在/usr目录下创建java文件夹,然后在FinalShell中进入该目录,把文件拖动到该目录下完成上传。
mkdir /usr/java cd /usr/java
用tar命令进行解压
tar zxvf jdk-8u151-linux-x64.tar.gz
解压完成后出现jdk文件,我们把压缩包删除,只留下jdk文件,节省后面进行文件夹复制的时间。
rm jdk-8u151-linux-x64.tar.gz
然后进行java的环境变量设置,到~/.bashrc中添加java环境变量如下:
vi ~/.bashrc
export JAVA_HOME=/usr/java/jdk1.8.0_151 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH
source一下使文件生效
source ~/.bashrc
输入 java -version命令可以看到java安装成功
7.安装hadoop
到清华镜像站中下载hadoop安装包,下载链接如下:
https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/stable/hadoop-3.3.1.tar.gz
在根目录下建立export文件夹,在export文件夹下建立sever、data、software三个文件夹,我们将hadoop安装在server目录下。
上传安装包到/export/server下并解压
tar zxvf hadoop-3.3.1.tar.gz
删除压缩文件方便后续将hadoop复制到其他机器
rm -f hadoop-3.3.1.tar.gz
配置环境变量,这次我们在/etc/profile中配置hadoop的环境变量
vi /etc/profile
添加如下内容:
export HADOOP_HOME=/export/server/hadoop-3.3.1 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source一下以使文件生效
source /etc/profile
输入hadoop version命令可以看到安装成功
8.配置hadoop
我们配置的是一个hadoop集群,一共需要设置6个文件的内容,这里不对配置内容做详细的说明。
进入hadoop的配置文件目录下
cd /export/server/hadoop-3.3.1/etc/hadoop
(1)hadoop-env.sh
在该文件中添加如下内容:
export JAVA_HOME=/usr/java/jdk1.8.0_151 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
(2)core-site.xml
把configuration修改如下:
fs.defaultFS hdfs://node4:8020 hadoop.tmp.dir /export/data/hadoop-3.3.1 hadoop.http.staticuser.user root hadoop.proxyuser.root.hosts * hadoop.proxyuser.root.groups *
(3)hdfs-site.xml
把configuration修改如下:
dfs.namenode.secondary.http-address node5:9868
(4)mapred-site.xml
把configuration修改如下:
mapreduce.framework.name yarn yarn.app.mapreduce.am.env HADOOP_MAPRED_HOME=${HADOOP_HOME} mapreduce.map.env HADOOP_MAPRED_HOME=${HADOOP_HOME} mapreduce.reduce.env HADOOP_MAPRED_HOME=${HADOOP_HOME}
(5)yarn-site.xml
把configuration修改如下:
yarn.resourcemanager.hostname node4 yarn.nodemanager.aux-services mapreduce_shuffle yarn.scheduler.minimum-allocation-mb 512 yarn.scheduler.maximum-allocation-mb 2048 yarn.nodemanager.vmem-pmem-ratio 4
(6) 在该目录下新建一个文件workers,添加集群各个机器的主机名如下
node4 node5 node6
9.设置ssh和防火墙
为了搭建hadoop集群,需要让node4能跟三台机器都进行ssh免密通信,这样才能正常启动和关闭hadoop,如果不设置node4自己的ssh通信,在启动和关闭hadoop时会提示没有权限。
首先设置node4的hosts文件,把三台机器的ip和主机名对应关系添加到/etc/hosts文件。这里的ip地址是新建系统时随机生成的。可以通过ip addr命令查看机器ip地址。
192.168.123.216 node4 192.168.123.50 node5 192.168.123.204 node6
在node4上用ssh-keygen -t rsa命令生成ssh的公钥和私钥,命令会询问你生成的地址和是否设置口令,这里采用默认的地址,不设置口令,直接回车即可。然后用ssh-copy-id 用户名@主机名命令把公钥分发到node5和node6。
ssh-keygen -t rsa ssh-copy-id root@node4 ssh-copy-id root@node5 ssh-copy-id root@node6
接着在关闭三台机器的防火墙并设置禁止防火墙自启动,可以用其他两台机器可以用ssh直接在原窗口登录设置,然后按ctrl+D退出登录。
systemctl stop firewalld.service systemctl disable firewalld.service
10.配置其他机器的hadoop
在其他机器上配置hadoop较简单,只需要把node4上配置好的hadoop文件、Java文件和环境变量文件通过scp命令复制过去即可。
scp命令中, -r 表示递归地复制整个文件夹,后面第一个参数是代复制的文件夹或文件,第二个参数是用户名@主机名:目标目录
scp -r /export root@node5:/ scp -r /usr/java root@node5:/usr scp -r ~/.bashrc root@node5:~ scp -r /etc/profile root@node5:/etc scp -r /export root@node6:/ scp -r /usr/java root@node6:/usr scp -r ~/.bashrc root@node6:~ scp -r /etc/profile root@node6:/etc
11.启动hadoop
首先进行初始化:
hdfs namenode -format
然后启动hadoop
start-all.sh
这时使用jps命令查看后台运行的java进程是可以看到已经启动成功了,node4上运行了hadoop4个节点的java进程。
hadoop提供了WebUI可以更好地管理hadoop程序,通过在宿主机即windows系统访问node4的9870端口和8088端口可以看到hdfs文件管理界面和yarn资源管理界面。
最后用命令关闭hadoop。
stop-all.sh
12.安装mysql
hive有三种安装模式,这里采用最常用的远程安装模式,需要先安装一个数据库,我们安装mysql8.0版本的数据库。
我们用rpm的方式进行安装。首先进入到/export/software目录,创建mysql文件夹,然后在该文件夹中下载mysql的rpm包。
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
然后安装
rpm -ivh mysql-community-release-el7-5.noarch.rpm
然后用yum安装mysql服务器,中间询问都回y
yum install mysql-server
初始化mysql
mysqld --initialize
修改/var/lib/mysql/的权限。由于初始化后/var/lib/mysql的下文件的所有者都是root,如果不修改所有者和所有组是mysql的话,启动mysql服务时日志里会报没有权限的错误。
chown -R mysql:mysql /var/lib/mysql
启动mysql服务
systemctl start mysqld
查看mysql服务运行状态
systemctl status mysqld
看到状态为active表示mysql服务成功启动了。接下来登录mysql,首先到mysql的日志中记录下初始化时生成的临时密码
vi /var/log/mysql/mysqld.log
然后登录mysql
mysql -u root -p
输入复制的临时密码登录,然后修改密码。
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
接下来修改数据库中mysql库的远程连接权限,首先进入mysql库
USE mysql;
新建用户root
CREATE USER 'root'@'%' IDENTIFIED BY '123456';
然后赋予root权限
GRANT ALL ON *.* TO 'root'@'%';
刷新权限
FLUSH PRIVILEGES;
接下来退出mysql,设置mysql开机自启动
systemctl enable mysqld
可以通过下面命令查看是否设置成功
systemctl list-unit-files | grep mysqld
13.安装hive
到镜像站上下载hive安装包,下载链接如下:
https://dlcdn.apache.org/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz
上到node4的/export/server文件夹下,解压缩
tar zxvf apache-hive-3.1.2-bin.tar.gz
为了方便 *** 作,我们把文件夹名字改为hive
mv apache-hive-3.1.2-bin hive
到MySQL :: Download Connector/J下载jdbc驱动,用于hive连接数据库
下载后在windows解压,把mysql-connector-java-8.0.26.jar文件上传到hive的lib文件夹下
为了解决hive和hadoop之间的guava版本差异,我们把hadoop中较新版本的guava替换到hive中
cd /export/server/hive rm -rf lib/guava-19.0.jar cp /export/server/hadoop-3.3.1/share/hadoop/common/lib/guava-27.0-jre.jar ./lib/
接着修改hive的环境变量文件
cd /export/server/hive/conf mv hive-env.sh.template hive-env.sh vi hive-env.sh
将以下代码添加到hive-env.sh文件中
export HADOOP_HOME=/export/server/hadoop-3.3.1 export HIVE_CONF_DIR=/export/server/hive/conf export HIVE_AUX_JARS_PATH=/export/server/hive/lib
新建一个hive-site.xml文件配置mysql等相关信息
vi hive-site.xml
在hive-site.xml中添加如下代码:
javax.jdo.option.ConnectionURL jdbc:mysql://node4:3306/hive?createDatabaseIfNotExist=true&allowPublicKeyRetrieval=true&serverTimezone=GMT&useSSL=false&useUnicode=true&characterEncoding=UTF-8 javax.jdo.option.ConnectionDriverName com.mysql.cj.jdbc.Driver javax.jdo.option.ConnectionUserName root javax.jdo.option.ConnectionPassword 123456 hive.server2.thrift.bind.host node4 hive.metastore.uris thrift://node4:9083 hive.metastore.event.db.notification.api.auth false hive.metastore.schema.verification false hive.server2.enable.doAs false
为了方便在命令行 *** 作,我们在/etc/profile中添加如下hive的环境变量
export HIVE_HOME=/export/server/hive export PATH=$PATH:$HIVE_HOME/bin
记得source /etc/profile使文件生效
接着在命令行初始化hive
schematool -initSchema -dbType mysql -verbos
初始化成功在mysql数据库的hive库中会看到74张表
14.启动hive
要运行hive要先启动hadoop,因为hive是基于hadoop运行的。把另外node5、node6开启,然后用start-all.sh启动hadoop
要运行hive需要先启动hive的metastore服务,前台启动的命令如下,运行时会一直占用窗口
hive --service metastore
metastore服务也可以用如下命令后台启动,并把日志输出到当前目录下的nohub.out文件
nohup hive --service metastore &
我们另外开一个ssh连接启动hive,在命令行输入hive回车,进入hive的命令行模式,表示hive启动成功。
另外,hive官方推荐使用第二代客户端beeline,beeline比hive有更好的性能和安全性。
启动beeline前除了metastore服务外,还需要再启动hiveserver2服务
hive --service hiveserver2
这条命令也是前台运行的,由于hiveserver2的启动需要时间,我们用命令查看10000端口的状态,当出现端口活动时表示hiveserver2启动成功。
netstat -nlpt|grep 10000
另外打开一个窗口连接到node4,输入beeline启动beeline,然后用以下命令进行连接
! connect jdbc:hive2://node4:10000
用户名和密码为空即可,然后出现 0: jdbc:hive2://node4:10000> 的命令行模式表示连接成功。
这样,hadoop和hive就在虚拟机上安装成功了!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)