hadoop安装及hive安装

Posted bjxdd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hadoop安装及hive安装相关的知识,希望对你有一定的参考价值。


1、增加hadoop账户
su # 上述提到的以 root 用户登录
useradd -m hadoop -s /bin/bash # 创建新用户hadoop
passwd hadoop 输入 口令 hadoop
为 hadoop 用户增加管理员权限
visudo
找到以下文本处,增加 hadoop 权限
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
hadoop ALL=(ALL) ALL

用刚创建的 hadoop 用户进行登陆centos

大部分情况 centos 已经安装了 ssh,测试命令 ssh localhost

exit # 退出刚才的 ssh localhost
cd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhost
ssh-keygen -t rsa # 会有提示,都按回车就可以
cat id_rsa.pub >> authorized_keys # 加入授权
chmod 600 ./authorized_keys # 修改文件权限

2、安装 java

首先卸载原有的java 版本

卸载已经安装的java
#rpm -qa|grep java 或 #rpm -qa|grep jdk 或 #rpm -qa|grep gcj
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.201-2.6.16.1.el7_6.x86_64
或 yum 方式
yum list installed |grep java
yum search java | grep -i --color JDK 检查线上已有的jdk版本
yum -y remove java-1.7.0-openjdk-1.7.0.201-2.6.16.1.el7_6.x86_64

----------------------------------------------------------

sudo yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel (javac 使用) 版本 注意一下

vi /etc/profile

将下面的三行粘贴到 /etc/profile 中:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin:/usr/local/hadoop/bin:/usr/local/hadoop/sbin
export HADOOP_HOME=/home/hadoop/hadoop-313
source /etc/profile

echo $JAVA_HOME # 检验变量值
java -version
$JAVA_HOME/bin/java -version # 与直接执行 java -version 一样

3、网络地址 host
sudo vim /etc/hostname 添加 master
sudo vim /etc/hosts

192.168.91.112 master
192.168.91.113 slave1
192.168.91.114 slave2

4、ssh 无密码登录配置

在三台机器上分别执行
cd /home/hadoop/.ssh # 如果没有该目录,先执行一次ssh localhost 或者 mkdir ~/.ssh 生成该目录
rm ./id_rsa* # 删除之前生成的公匙(如果有)
ssh-keygen -t rsa # 一直按回车就可以
cat ./id_rsa.pub >> ./authorized_keys
chmod 700 /home/hadoop/.ssh/ (不放开权限 ssh 不起作用)
chmod 600 /home/hadoop/.ssh/authorized_keys (不放开权限 ssh 不起作用)


scp ~/.ssh/id_rsa.pub hadoop@slave1:/home/hadoop/


cp /home/hadoop/.ssh/authorized_keys /home/hadoop/authorized_keys_master
slave1 上执行
scp /home/hadoop/.ssh/authorized_keys hadoop@master:/home/hadoop/authorized_keys_slave1

slave2 上执行
scp /home/hadoop/.ssh/authorized_keys hadoop@master:/home/hadoop/authorized_keys_slave2

在 master 上合并文件author

cd /home/hadoop/
cat authorized_keys_master authorized_keys_slave1 authorized_keys_slave2 > authorized_keys

cp authorized_keys /home/hadoop/.ssh/
在 slave1 、slave2 分别cd 到 /home/hadoop/.ssh/ 并 rm /home/hadoop/.ssh/authorized_keys
在master上
scp /home/hadoop/authorized_keys hadoop@slave1:/home/hadoop/.ssh/authorized_keys
scp /home/hadoop/authorized_keys hadoop@slave2:/home/hadoop/.ssh/authorized_keys

验证:
ssh hadoop@master
ssh hadoop@slave1
ssh hadoop@slave2

 

==================================================================================================
Hadoop 3.1.2 + Hive 3.1.1 实际安装的是 Hadoop 3.1.3
https://www.cnblogs.com/weavepub/p/11130869.html (基本参照这个文档)


wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-3.1.3/hadoop-3.1.3.tar.gz

##关闭防火墙 要不然节点之间可能会有端口没开放而 通信不畅,例如出现 【There are 0 datanode(s) running and no node(s) are excluded in this operation】
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service

 

###

配置这个环境变量的时候hadoop-env.sh 源文档有配置了两个 JAVA_HOME ,应该是错误, 现在把其中一个改成了 JAVA_JRE

在 /etc/profile 中 需要增加 HADOOP_HOME的配置。

##配置文档基本正确 但是 在配置mapred-site.xml的时候,需要再加上以下几个参数的配置。否则examples 跑不成功。
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
</property>


测试 程序1 :
hdfs dfs –mkdir /input #在HDFS系统的根目录下新建子目录input。
hdfs dfs -put /home/hadoop/hadoop-313/etc/hadoop/core-site.xml /input #将本地子目录conf下的xml文件复制到HDFS系统/input目录下
hadoop jar /home/hadoop/hadoop-313/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /input/output
测试 程序2 :
hadoop jar /home/hadoop/hadoop-313/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar pi 2 10 

vi /home/hadoop/hadoop-313/etc/hadoop/mapred-site.xml

===========================================================

配置hive基本步骤:

下载
cd /opt
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz
tar -zxvf apache-hive-3.1.2-bin.tar.gz
mv apache-hive-3.1.2-bin /home/hadoop/hive-312

环境变量

vim /etc/profile

export PATH=$PATH:/home/hadoop/hive-312/bin
source /etc/profile

hive需用通过jdbc连接mysql

cd /opt
wget http://mirrors.163.com/mysql/Downloads/Connector-J/mysql-connector-java-5.1.47.tar.gz
tar -zxvf mysql-connector-java-5.1.47.tar.gz
cp mysql-connector-java-5.1.47/mysql-connector-java-5.1.47-bin.jar /opt/hive-3.1.1/lib/

备注用 8版本的jdbc

mkdir /home/hadoop/hive-312/warehouse
hadoop fs -mkdir -p /home/hadoop/hive-312/warehouse
hadoop fs -chmod 777 /home/hadoop/hive-312/warehouse
hadoop fs -ls /home/hadoop/hive-312

配置hive
cd /home/hadoop/hive-312/conf/
cp hive-exec-log4j2.properties.template hive-exec-log4j2.properties
cp hive-log4j2.properties.template hive-log4j2.properties
cp hive-default.xml.template hive-default.xml
cp hive-default.xml.template hive-site.xml
cp hive-env.sh.template hive-env.sh

配置 vim hive-env.sh

HADOOP_HOME=/home/hadoop/hive-312
export HIVE_CONF_DIR=/home/hadoop/hive-312/conf
export HIVE_AUX_JARS_PATH=/home/hadoop/hive-312/lib

配置 vim hive-site.xml
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.91.112:3306/hive?allowMultiQueries=true&amp;useSSL=false&amp;verifyServerCertificate=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>hadoop</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>2019_Mysql</value>
</property>

初始化数据库 #schematool -initSchema -dbType mysql
验证hive #hive

-------------------------------------------------------------------------------------------------

安装hive 基本没问题,说明如下:、

a1、hive版本 安装的是 hive-3.1.2

a2、安装目录是 /home/hadoop/hive-312/

a3、mysql的jdbc 8版本的问题会比较少,mysql-connector-java-8.0.14.jar

a4、/home/hadoop/hive-312/lib/guava-27.0-jre.jar  这个jar 包 如果比hadoop下的 对应jar包(/home/hadoop/hadoop-313/share/hadoop/common/lib/guava-27.0-jre.jar) 版本低的话,就把 hadoop下的 对应jar包 拷贝过来。否则也可能报错。

a5、hive-site.xml配置的时候,如果启动 有 【${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D】类似错误。

考虑 创建hive的文件临时目录 /home/hadoop/hive-312/tmp

修改 hive-site.xml 以下几项配置:

<name>hive.server2.logging.operation.log.location</name>

<value>/home/hadoop/hive-312/tmp</value>

<name>hive.downloaded.resources.dir</name>

<value>/home/hadoop/hive-312/tmp</value>

 <name>hive.querylog.location</name>
<value>/home/hadoop/hive-312/tmp</value>

<name>hive.exec.local.scratchdir</name>
<value>/home/hadoop/hive-312/tmp</value>

另外:

由于hive-site.xml中没找到以下几项属性,暂时没有配置
<name>datanucleus.readOnlyDatastore</name>
<name>datanucleus.fixedDatastore</name>
<name>datanucleus.autoCreateSchema</name>
<name>datanucleus.autoCreateTables</name>
<name>datanucleus.autoCreateColumns</name>

 

 

以上是关于hadoop安装及hive安装的主要内容,如果未能解决你的问题,请参考以下文章

hive安装部署及使用

搭建hadoop+spark+hive环境(配置安装hive)

hadoop中hive原理及安装

centos7 分布式集群hadoop与hive安装

Hive部署及优化配置

Hadoop3集群搭建之——hive添加自定义函数UDTF