1、前置
**注:本文中并未说起mysql的安装,在安装hive时须要安装mysql,并设置权限,请读者自行查询方法。
且:把包放在系统目录下,如/usr或/opt此类目录下,须要使用chmod命令修改权限,不然颇有可能出现权限不足没法执行的状况。**html
1.1建立Hadoop用户java
$ sudo useradd -m hadoop -s /bin/bash #建立hadoop用户,并使用/bin/bash做为shell $ sudo passwd hadoop #为hadoop用户设置密码 $ sudo adduser hadoop sudo #为hadoop用户增长管理员权限 $ su - hadoop #切换当前用户为用户hadoop $ sudo apt-get update #更新hadoop用户
1.2安装SSHnode
$ sudo apt-get install openssh-server #安装SSH server $ ssh localhost #登录SSH,第一次登录输入yes $ exit #退出登陆的ssh localhost $ cd ~/.ssh/ #若是无法进入该目录,执行一次ssh localhost $ ssh-keygen -t rsa
在输入完 $ ssh-keygen -t rsa 命令时,须要连续敲击回车三次mysql
其中,第一次回车是让KEY存于默认位置,以方便后续的命令输入。第二次和第三次是肯定passphrase,相关性不大。两次回车输入完毕之后,若是出现相似于下图所示的输出,即成功:
图片描述sql
以后输入shell
$ cat ./id_rsa.pub >> ./authorized_keys #加入受权 $ ssh localhost #此时已不需密码便可登陆localhost,并可见下图。若是失败则能够搜索SSH免密码登陆来寻求答案
2、安装JDK1.8.0_221
首先在oracle官网下载JDK1.8.0_221
http://www.oracle.com/technet... 接下来进行安装与环境变量配置,也能够在百度直接搜索下载安装(避免oracle的平常抽风)数据库
$ mkdir /usr/lib/jvm #建立jvm文件夹 $ sudo tar zxvf 你的jdk文件名 -C /usr/lib #/解压到/usr/lib/jvm目录下 $ cd /usr/lib/jvm #进入该目录 $ mv jdk1.8.0_221 java #重命名为java $ vi ~/.bashrc #给JDK配置环境变量
注:其中若是权限不够,没法在相关目录下建立jvm文件夹,那么可使用 $ sudo -i 语句进入root帐户来建立文件夹。apache
$ vim ~/.bashrc
注:若没有vim能够用gedit代替或使用sudo apt安装vim
在 ~/.bashrc 文件中添加以下代码vim
#Java Environment export JAVA_HOME=/usr/lib/jvm/java export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH
修改完成后,使用以下命令浏览器
$ source ~/.bashrc #使新配置的环境变量生效 $ java -version #检测是否安装成功,查看java版本
若出现Java版本即为安装成功
3、安装Hadoop3.2.0
先下载hadoop-3.2.0.tar.gz
hadoop-3.2.1与hive会产生包冲突异常,因此使用hadoop-3.2.0,具体解决办法未知。
连接以下:
https://archive.apache.org/dist/hadoop/common/
进行安装
$ sudo tar -zxvf hadoop-3.2.0.tar.gz -C /usr/local #解压到/usr/local目录下 $ cd /usr/local $ sudo mv hadoop-3.2.0 hadoop #重命名为hadoop $ sudo chown -R hadoop ./hadoop #修改文件权限
给hadoop配置环境变量,将下面代码添加到.bashrc文件:
#Hadoop Environment export HADOOP_HOME=/usr/local/hadoop export CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath):$CLASSPATH export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
一样,执行source ~./bashrc使设置生效,并查看hadoop是否安装成功,若出现hadoop版本即为安装成功
4、伪分布式配置
Hadoop 能够在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既做为 NameNode 也做为 DataNode。同时,读取的是 HDFS 中的文件。Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式须要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每一个配置以声明 property 的 name 和 value 的方式来实现。首先将jdk1.8的路径添(export JAVA_HOME=/usr/lib/jvm/java )加到hadoop-env.sh文件
接下来修改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> <property> <name>dfs.http.address</name> <value>0.0.0.0:50070</value> </property>
</configuration>
Hadoop 的运行方式是由配置文件决定的(运行 Hadoop 时会读取配置文件),所以若是须要从伪分布式模式切换回非分布式模式,须要删除 core-site.xml 中的配置项。此外,伪分布式虽然只须要配置 fs.defaultFS 和 dfs.replication 就能够运行(可参考官方教程),不过若没有配置 hadoop.tmp.dir 参数,则默认使用的临时目录为 /tmp/hadoo-hadoop,而这个目录在重启时有可能被系统清理掉,致使必须从新执行 format 才行。因此咱们进行了设置,同时也指定 dfs.namenode.name.dir 和 dfs.datanode.data.dir,不然在接下来的步骤中可能会出错。
配置完成后,执行 NameNode 的格式化
$ ./bin/hdfs namenode -format
启动namenode和datanode进程,并查看启动结果
$ ./sbin/start-dfs.sh $ jps
启动完成后,能够经过命令 jps 来判断是否成功启动,若成功启动则会列出以下进程: “NameNode”、”DataNode” 和 “SecondaryNameNode”
图中只需有四个进程"JPS" "NameNode" "DateNode" "SecondaryNameNode"便可
此时也有可能出现要求输入localhost密码的状况 ,若是此时明明输入的是正确的密码却仍没法登入,其缘由是因为若是不输入用户名的时候默认的是root用户,可是安全期间ssh服务默认没有开root用户的ssh权限
输入代码:
$vim /etc/ssh/sshd_config
检查PermitRootLogin 后面是否为yes,若是不是,则将该行代码 中PermitRootLogin 后面的内容删除,改成yes,保存。以后输入下列代码重启SSH服务:
$ /etc/init.d/sshd restart
成功启动后,在浏览器中输入localhost:50070会出现如下页面
5、安装Hive-3.1.2
一、经过百度下载Hive-3.1.2的tar包
连接以下:
http://mirror.bit.edu.cn/apac...
二、解压Hive到/opt目录下
$ tar zxf apache-hive-3.1.2-bin.tar.gz $ sudo mv apache-hive-3.1.2-bin /opt/hive-2.3.3
三、配置Hive环境变量
$ vim ~/.bashrc
在bashrc文件中添加以下代码,如需修改权限请使用chmod命令
#Hive Enviroment export HIVE_HOME=/opt/hive export PATH=$PATH:$HIVE_HOME/bin
四、在/opt/hive/conf目录下建立hive-site.xml,并添加如下代码在文件中
<configuration> <property> <name>hive.metastore.schema.verification</name> <value>false</value> <description> Enforce metastore schema version consistency. True: Verify that version information stored in metastore matches with one from Hive jars. Also disable automatic schema migration attempt. Users are required to manully migrate schema after Hive upgrade which ensures proper metastore schema migration. (Default) False: Warn if the version information stored in metastore doesn't match with one from in Hive jars. </description> </property> <!-- 存储在hdfs上的数据路径 --> <property> <name>hive.metastore.warehouse.dir</name> <value>/user/hive/warehouse</value> <description>location of default database for the warehouse</description> </property> <!-- 本地mysql --> <property> <name>hive.metastore.local</name> <value>true</value> </property> <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.ConnectionPassword</name> <value>你的数据库密码</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> <description>Username to use against metastore database</description> </property> </configuration>
在/opt/hive/conf下执行该命令
$ cp hive-env.sh.template hive-env.sh
五、将JDBC的jar包拷贝在/opt/hive/lib目录下
六、在/opt/hive/bin目录下执行如下命令
$ ./schematool -dbType mysql -initSchema $ ./schematool -dbType mysql -info $ hive
执行完hive命令后便可使用Hive