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&useSSL=false&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安装的主要内容,如果未能解决你的问题,请参考以下文章