1.hadoop、hive、hbase之间有版本对应关系,三者之间的版本可能存在不匹配的关系,且下面的搭建过程也与版本有关系
hadoop | hive | hbase |
2.9.2 | 2.3.4 | 1.2.12 |
2.下载二进制的安装包,使用wget时,后加--no-check-certificate(具体原因待研究)
下载hadoop 2.9.2
wget https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.9.2/hadoop-2.9.2.tar.gz --no-check-certificate
下载hive 2.3.4
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-2.3.4/apache-hive-2.3.4-bin.tar.gz --no-check-certificate
下载hbase 1.2.12
wget http://mirrors.tuna.tsinghua.edu.cn/apache/hbase/hbase-1.2.12/hbase-1.2.12-bin.tar.gz --no-check-certificate
3.安装hadoop
第一步,解压,将目标文件夹名称改为hadoop,移动到/opt/software(hive、hbase的第一步与此相同,不再赘述)
tar -zxvf hadoop-2.9.2.tar.gz
mv hadoop-2.9.2 hadoop
mv hadoop /opt/software
第二步,hadoop安装之前,需安装好java,设置java的环境变量
export JAVA_HOME=/opt/software/java/[java-version]
第三步,配置hadoop
编辑etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
编辑etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
第四步,确保能够不使用密码,可以直接通过ssh协议连接localhost
ssh localhost
如果不能连接,执行下面的命令
# ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
# chmod 0600 ~/.ssh/authorized_keys
这三条命令在本机生成一对公、私钥,将公钥放置在authorized_keys中,ssh localhost时,相当于ssh root@localhost,root是远程主机的用户名、localhost是远程主机的ip、将id_rsa中的私钥发送给远程主机请求连接
第四步,格式化文件系统
bin/hdfs namenode -format
第五步,启动namenode和datanode
配置mapreduce on YARN,可以参考https://hadoop.apache.org/docs/r2.9.2/hadoop-project-dist/hadoop-common/SingleCluster.html
4.安装hive
第一步,解压,将目标文件夹名称改为hive,移动到/opt/software
第二步,将mysql驱动包导入
将mysql的驱动包放置到$HIVE_HOME\lib目录
第三步,创建hdfs目录,并赋予权限
hdfs dfs -mkdir -p /usr/hive/warehouse
hdfs dfs -mkdir -p /usr/hive/tmp
hdfs dfs -mkdir -p /usr/hive/log
hdfs dfs -chmod g+w /usr/hive/warehouse
hdfs dfs -chmod g+w /usr/hive/tmp
hdfs dfs -chmod g+w /usr/hive/log
第四步,配置hive
第一步,配置环境变量
cp -r hive-env.sh.template hive-env.sh
修改hive-env.sh
export JAVA_HOME=
export HADOOP_HOME=
export HIVE_HOME=
export HIVE_CONF_DIR=$HIVE_HOME/conf
export HIVE_AUX_JARS_PATH=$HIVE_HOME/lib/*
第二步,配置hive的参数
cp -r hive-default.xml.template hive-site.xml
修改hive-site.xml,这里使用mysql存储hive的元数据,需要指定mysql的连接字符串、mysql的用户名、密码
<configuration>
<property>
<name>hive.exec.scratchdir</name>
<value>/usr/hive/tmp</value>
<description>HDFS root scratch dir for Hive jobs which gets created with write all (733) permission. For each connecting user, an HDFS scratch dir: ${hive.exec.scratchdir}/<username> is created, with ${hive.scratch.dir.permission}.</description>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/usr/hive/warehouse</value>
<description>location of default database for the warehouse</description>
</property>
<property>
<name>hive.querylog.location</name>
<value>/usr/hive/log</value>
<description>Location of Hive run time structured log file</description>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.32.128:3306/hive?createDatabaseIfNotExist=true&characterEncoding=UTF-8&useSSL=false</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
</property>
</configuration>
第三步,使用schematool 命令来执行初始化操作
schematool -dbType mysql -initSchema
第四步,启动hive