大数据集成环境准备
本次大数据环境准备由于时间有限,环境搭建是简易版本,只搭建了hadoop伪分布式,和hive数仓工具,但是不影响使用。
一、软件准备
大数据集成的数据仓库的安装我们需要使用到软件有:
- Ubantu16
- jdk-8u162-linux-x64.tar.gz
- hadoop-2.7.1.tar.gz
- apache-hive-1.2.1-bin.tar.gz
- mysql-connector-java-5.1.17.jar
软件安装放在Ubantu下/usr/local/Download中,没有的话可以创建使用mkdir Download
那么如何将软件传到虚拟机的系统中呢 ?
这里提供两种方式:
1、开源软件FileZilla,可以直接下载
2、使用远程上传命令 rz(直接输入rz)如果没有的话,可以根据提示安装:
sudo apt install lrzsz #具体查看报错解释
安装之后再根据xshell 的ip主机连接
注意:
1、rz命令上传文件,就在当前文件
2、服务器拒接连接原因: 可能不在一个局域网中、防火墙没有关闭、没有安装ssh,可以使用如下安装:
sudo yum install openssh-server
一般来说不会有问题的,可以直接连接。
二、hadoop环境准备
2.1、创建hadoop用户
如果你安装Ubantu 的时候不是用的 “hadoop” 用户,那么需要增加一个名为 hadoop 的用户。
useradd -m hadoop -s /bin/bash
接着使用如下命令修改密码,按提示输入两次密码,可简单的设为 “1”,在命令行中输入密码时候,不会有所现实的,你要知道你已经输入过了。
passwd hadoo
然后为 hadoop 用户增加管理员权限,方便部署,避免一些对新手来说比较棘手的权限问题
sudo adduser hadoop sudo
2.2、安装SSH、配置SSH无密码登陆
集群、单节点模式都需要用到 SSH 登陆(类似于远程登陆,你可以登录某台 Linux 主机,并且在上面运行命令),Ubuntu 默认已安装了 SSH client,此外还需要安装 SSH server:
sudo apt-get install openssh-server
此时会有如下提示(SSH首次登陆提示),输入 yes 。然后按提示输入密码 hadoop,这样就登陆到本机了。
但这样登陆是需要每次输入密码的,我们需要配置成SSH无密码登陆比较方便。
首先退出刚才的 ssh,就回到了我们原先的终端窗口,然后利用 ssh-keygen 生成密钥,并将密钥加入到授权中:
exit # 退出刚才的 ssh localhost cd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhost ssh-keygen -t rsa # 会有提示,按三次回车就可以 cat ./id_rsa.pub >> ./authorized_keys # 加入授权
2.3、安装java环境
由于hadoop许多生态多是基于jvm上面的所以需要安装java环境,确保机器有java环境,之前已经把压缩格式的文件jdk-8u162-linux-x64.tar.gz下载到本地电脑,可以使用上述方法传入虚拟机,保存在“/home/Downloads/”目录下。
之后输入:
cd /usr/lib sudo mkdir jvm #创建/usr/lib/jvm目录用来存放JDK文件 cd ~ #进入hadoop用户的主目录 cd Downloads #注意区分大小写字母,刚才已经通过FTP软件把JDK安装包jdk-8u162-linux-x64.tar.gz上传到该目录下 sudo tar -zxvf ./jdk-8u162-linux-x64.tar.gz -C /usr/lib/jvm #把JDK文件解压到/usr/lib/jvm目录下
JDK文件解压缩以后,可以执行如下命令到/usr/lib/jvm目录查看一下:
cd /usr/lib/jvm ls # 其中可以看到解压文件
之后配置环境变量:
cd ~ vim ~/.bashrc
在这个文件.bashrc的开头位置,添加如下几行内容
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_162 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH
保存.bashrc文件并退出vim编辑器。然后,继续执行如下命令让.bashrc文件的配置立即生效:
source ~/.bashrc
查看java是否安装成功:
java -version
如果能够在屏幕上返回如下信息,则说明安装成功:
成功之后可以说你已经成功一半了。接下来安装hadoop。
三、hadoop安装
一般选择下载最新的稳定版本,即下载 “stable” 下的 hadoop-2.x.y.tar.gz 这个格式的文件,这是编译好的,另一个包含 src 的则是 Hadoop 源代码,需要进行编译才可使用。
解压hadoop,切换到Downloads下使用如下命令:
sudo tar -zxvf hadoop-2.7.1.tar.gz -C /usr/local # 解压到/usr/local中 cd /usr/local/ sudo mv ./hadoop-2.7.1/ ./hadoop # 将文件夹名改为hadoop sudo chown -R hadoop ./hadoop # 修改文件权限
加入权限的目的是为了后来的修改文件内容,与后来启动程序能力。
检验启动结果:
cd /usr/local/hadoop ./bin/hadoop version
hadoop文件配置:
修改配置文件 core-site.xml (通过 vim 编辑会比较方便: vim ./etc/hadoop/core-site.xml):
进入目录
cd /usr/local/hadoop • 1
配置 core-site.xml
<configuration> <property> <name>hadoop.tmp.dir</name> <value>file:/usr/local/hadoop/tmp</value> <description>Abase for other temporary directories.</description> </property> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration>
修改配置文件 hdfs-site.xml
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/usr/local/hadoop/tmp/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/usr/local/hadoop/tmp/dfs/data</value> </property> </configuration>
配置完成后,执行 NameNode 的格式化:
cd /usr/local/hadoop ./bin/hdfs namenode -format
成功的话,会看到 “successfully formatted” 和 “Exitting with status 0” 的提示,若为 “Exitting with status 1” 则是出错。出错的话建议删除从新来,想要进阶的话,查看错误信息,修改配置文件之后,删除版本信息重新格式化。如何删除版本文件,可以自行百度。
启动hadoop
cd /usr/local/hadoop ./sbin/start-dfs.sh #start-dfs.sh是个完整的可执行文件,中间没有空格
如果没有启动成功,查看信息如果是JAVA_HOME问题,那么,请到hadoop的安装目录修改配置文件“/usr/local/hadoop/etc/hadoop/hadoop-env.sh”,在里面找到“export JAVA_HOME=${JAVA_HOME}”这行,然后,把它修改成JAVA安装路径的具体地址,比如,“export JAVA_HOME=/usr/lib/jvm/default-java”,然后,再次启动Hadoop
使用jps来判断是否启动成功:
四、hive安装
4.1 hive解压安装
- 下载并解压hive源程序
sudo tar -zxvf ./apache-hive-1.2.1-bin.tar.gz -C /usr/local # 解压到/usr/local中 cd /usr/local/ sudo mv apache-hive-1.2.1-bin hive # 将文件夹名改为hive sudo chown -R hadoop:hadoop hive # 修改文件权限
- 配置环境变量
为了方便使用,我们把hive命令加入到环境变量中去,编辑~/.bashrc文件vim ~/.bashrc,在最前面一行添加:
export HIVE_HOME=/usr/local/hive export PATH=$PATH:$HIVE_HOME/bin
- 修改/usr/local/hive/conf下的hive-site.xml
将hive-default.xml.template重命名为hive-default.xml;新建一个文件touch 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>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value> <description>JDBC connect string for a JDBC metastore</description> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> <description>Driver class name for a JDBC metastore</description> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hive</value> <description>username to use against metastore database</description> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>hive</value> <description>password to use against metastore database</description> </property> </configuration>
4.2 安装并配置mysql
使用以下命令即可进行mysql安装,注意安装前先更新一下软件源以获得最新版本:
sudo apt-get update #更新软件源 sudo apt-get install mysql-server #安装mysql
启动和关闭mysql服务器:
service mysql start service mysql stop
认是否启动成功,mysql节点处于LISTEN状态表示启动成功:
sudo netstat -tap | grep mysql
进入mysql shell界面:
mysql -u root -p
解决利用sqoop导入MySQL中文乱码的问题(可以插入中文,但不能用sqoop导入中文)
导致导入时中文乱码的原因是character_set_server默认设置是latin1,如下图。
可以单个设置修改编码方式set character_set_server=utf8;但是重启会失效,建议按以下方式修改编码方式。
(1)编辑配置文件。sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
(2)在[mysqld]下添加一行character_set_server=utf8。如下图
(3)重启MySQL服务。service mysql restart
(4)登陆MySQL,并查看MySQL目前设置的编码。
注意
- 在这里我们直接使用ubantu下的命令安装的,所以这里安装mysql服务器的时候自动弹出可以使设置密码;
- 如果没有设置密码的选项,那就是mysql版本问题,直接生成密码或者默认无密码状态,我们需要对mysql进行root权限的获取才能存储元数据,所以需要设置root密码,在这里就不在阐述,具体可以百度了解。
2、下载mysql的jdbc包,让解压到hive的lib中
tar -zxvf mysql-connector-java-5.1.40.tar.gz #解压 cp mysql-connector-java-5.1.40/mysql-connector-java-5.1.40-bin.jar /usr/local/hive/lib #将mysql-connector-java-5.1.40-bin.jar拷贝到/usr/local/hive/lib目录下
- 启动并登陆mysql shell
service mysql start #启动mysql服务 mysql -u root -p #登陆shell界面
- 新建hive数据库。
mysql #进入数据库 mysql> create database hive; #这个hive数据库与hive-site.xml中localhost:3306/hive的hive对应,用来保存hive元数据
- 配置mysql允许hive接入:
mysql> grant all on *.* to hive@localhost identified by 'hive'; #将所有数据库的所有表的所有权限赋给hive用户,后面的hive是配置hive-site.xml中配置的连接密码 mysql> flush privileges; #刷新mysql系统权限关系表
- 启动hive
启动hive之前,请先启动hadoop集群。
start-all.sh #启动hadoop hive #启动hive
注意:
1、解决Hive启动,Hive metastore database is not initialized的错误。出错原因:重新安装Hive和MySQL,导致版本、配置不一致。在终端执行如下命令:
schematool -dbType mysql -initSchema
Hive 分布现在包含一个用于 Hive Metastore 架构操控的脱机工具,名为 schematool.此工具可用于初始化当前 Hive 版本的 Metastore 架构。此外,其还可处理从较旧版本到新版本的架构升级
总结: