Hadoop及相关生态组件安装配置——快速回忆

创建hadoop用户

添加用户

sudo useradd -m hadoop -s /bin/bash

设置密码

这条命令创建了可以登陆的 hadoop 用户,并使用 /bin/bash 作为 shell。接着使用如下命令设置密码,可简单设置为 hadoop,按提示输入两次密码:

sudo passwd hadoop

添加sudo权限

可为 hadoop 用户增加管理员权限,方便部署,避免一些对新手来说比较棘手的权限问题。

查找sudoers文件路径并赋予权限:

whereis sudoers                      # 查找sudoers文件路径
ls -l /etc/sudoers                     # 查看权限
sudo chmod -v u+w /etc/sudoers      # 赋予读写权限

修改sudoers文件,输入如下命令:vim /etc/sudoers修改sudoers文件,添加新用户信息:

sudo vim /etc/sudoers

在sudoers文件中找到root用户配置,在复制root用户配置,将root改为用户hadoop,如下所示:

## Allow root to run any commands anywhere

root ALL=(ALL) ALL

hadoop ALL=(ALL) ALL #这个是新用户Hadoop

然后输入命令 wq! 保存修改。

最后注销当前用户,返回登陆界面。在登陆界面中选择刚创建的hadoop用户进行登陆。

安装SSH、配置SSH无密码登陆

直接登录

集群、单节点模式都需要用到 SSH 登陆(类似于远程登陆,你可以登录某台 Linux 主机,并且在上面运行命令),一般情况下,CentOS 默认已安装了 SSH client、SSH server,打开终端执行如下命令进行检验:

rpm -qa | grep ssh

接着执行如下命令测试一下 SSH 是否可用:

ssh localhost

此时会有如下提示(SSH首次登陆提示),输入 yes 。然后按提示输入密码 hadoop,这样就登陆到本机了。

无密码登录

但这样登陆是需要每次输入密码的,我们需要配置成SSH无密码登陆比较方便。

首先输入exit退出刚才的ssh,回到了我们原先的终端窗口,然后利用 ssh-keygen 生成密钥,并将密钥加入到授权中:

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

如下图所示:
在这里插入图片描述
此时再用 ssh localhost 命令,无需输入密码就可以直接登陆了,如下图所示。
在这里插入图片描述

hadoop安装配置

安装hadoop&java

解压安装

/usr/lib/java/…

/usr/local/hadoop

配置环境变量

vim ~/.bashrc

java环境变量

# JDK Env
export JAVA_HOME=/usr/lib/java/jdk1.8.0_271
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

hadoop环境变量

# Hadoop Environment Variables
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

source ~/.bashrc

配置hadoop&java

配置文件(伪分布式)

cd $HADOOP_HOME/etc/hadoop配置以下文件

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://hadoophost: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>

mapred-site.xml

<configuration>
	<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
	</property>
</configuration>

yarn-site.xml

<configuration>
	<property>
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</value>
	</property>
</configuration>

配置完成后hdfs namenode -format

如果在这一步时提示 Error: JAVA_HOME is not set and could not be found. 的错误,则说明之前设置JAVA_HOME环境变量那边就没设置好,请按课程先设置好JAVA_HOME变量,否则后面的过程都是进行不下去的。如果已经按照前面课程在.bashrc文件中设置JAVA_HOME,还是出现 Error: JAVA_HOME is not set and could not be found. 的错误,那么,请到hadoop的安装目录修改配置文件“/usr/local/hadoop/etc/hadoop/hadoop-env.sh”,在里面找到“export JAVA_HOME=${JAVA_HOME}”这行,然后,把它修改成JAVA安装路径的具体地址,比如“export JAVA_HOME=/usr/lib/java/default-java”,然后再次启动Hadoop。

Unable to load native-hadoop问题

WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable

$HADOOP_HOME/etc/hadoop/hadoop-env.sh文件下方配置:

export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native"

关闭防火墙

cenos6.x

sudo service iptables stop   # 关闭防火墙服务
sudo chkconfig iptables off  # 禁止防火墙开机自启,就不用手动关闭了

centos7

systemctl stop firewalld.service    # 关闭firewall
systemctl disable firewalld.service # 禁止firewall开机启动

Zookeeper安装配置

Zookeeper下载安装

下载

下载zookeeper 3.6.2安装文件,官网地址如下:

https://zookeeper.apache.org/releases.html。注意不要选择Sourse的,要选择编译好的安装包

在这里插入图片描述

安装

/usr/local/zookeeper

配置环境变量

# Zookeeper Env
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin

Zookeeper配置

配置文件(伪分布式)

数据目录及日志存放目录

cd $ZOOKEEPER_HOME/conf

cp zoo_sample.cfg zoo.cfg
vim zoo.cfg

将zoo_sample.cfg重命名为zoo.cfg,然后设置其中的数据目录及日志存放目录。同时注册节点及端口号。本实验环境为伪分布式,所以节点也只有一个。

# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/usr/local/zookeeper/tmp/data
dataLogDir=/usr/local/zookeeper/tmp/logs

文件末尾

server.1=hadoophost:2888:3888

Zookeeper命令

zkServer.sh start # 启动zookeeper服务
zkServer.sh status# 查看zookeeper进程状态
zkServer.sh stop # 停止zookeeper服务

HBase安装配置

HBase下载安装

下载

访问HBase官方网址下载HBase2.3.2安装文件,网站地址如下:https://hbase.apache.org/downloads.html。
在这里插入图片描述

安装

/usr/local/hbase

配置环境变量

# HBase Env
export HBASE_HOME=/usr/local/hbase
export PATH=$PATH:$HBASE_HOME/bin

查看hbase版本

hbase version

HBase配置

配置文件(伪分布式)

cd $HBASE_HOME/conf

hbase-env.sh

export JAVA_HOME=/usr/lib/java/jdk1.8.0_271
export HBASE_CLASSPATH=/usr/local/hbase/conf
# export HBASE_MANAGES_ZK=true 默认用hbase自带的zookeeper

hbase-site.xml

<configuration>
	<property>
		<name>hbase.rootdir</name>
		<value>hdfs://hadoophost:9000/hbase</value>
	</property>
	<property>
		<name>hbase.zookeeper.quorum</name>
		<value>hadoophost</value>
		<description>The directory shared by RegionServers.
		</description>
	</property>
	<property>
		<name>hbase.cluster.distributed</name>
		<value>true</value>
	</property>
	<property>
		<name>hbase.unsafe.stream.capability.enforce</name>
		<value>false</value>
	</property>
</configuration>

HBase命令

start-dfs.sh # 先启动hdfs
zkServer.sh start # 先启动Zookeeper
start-hbase.sh # 启动hbase
hbase shell # 启动HBase shell
stop-hbase.sh # 停止hbase

MySql安装配置

Mysql下载安装

下载

wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

安装Mysql

安装Mysql驱动

sudo yum -y install mysql57-community-release-el7-10.noarch.rpm

安装Mysql服务器

sudo yum -y install mysql-community-server

Mysql配置

sudo systemctl start  mysqld.service # 启动mysql服务器
sudo systemctl status mysqld.service # 查看服务器状态

修改默认密码

此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码,通过如下命令可以在日志文件中找出密码:

sudo grep "password" /var/log/mysqld.log

在这里插入图片描述
如下命令进入数据库,输入初始密码(上面图片最后面的红色框选部分 ,#C6kuL/r#bf),此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库,登录及修改密码指令如下所示:

mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Hongyao@2020';

其中‘Hive@2020’替换成你要设置的密码,注意:密码设置必须要大小写字母数字和特殊符号(,/’;:等),不然不能配置成功。

修改弱密码

如果要修改为root这样的弱密码,需要进行以下配置,首先查看密码策略,指令如下:

show variables like '%password%';

修改密码策略,添加validate_password_policy配置,选择0(LOW),1(MEDIUM),2(STRONG)其中一种,选择2需要提供密码字典文件,相关指令:

sudo vim /etc/my.cnf

配置项如下:

#添加validate_password_policy配置
validate_password_policy=0
#关闭密码策略
validate_password = off

重启mysql

sudo systemctl restart mysqld

修改弱密码

mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'hongyaohongyao';

开启Mysql远程访问

执行以下命令开启远程访问限制(注意:下面命令开启所有的IP,如要开启某个具体IP是192.168.150.71,则将%替换成IP地址):

mysql -u root -p
grant all privileges on *.* to 'root'@'%' identified by 'Hongyao@2020' with grant option;

然后再输入下面两行命令,使权限配置生效。

flush privileges; 
exit;

修改Mysql字符编码

查看当前编码

mysql -u root -p
show variables like '%character%';

修改编码

sudo vim /etc/my.cnf
# 设置字符编码
character_set_server=utf8
init_connect='SET NAMES utf8'

重启Mysql

sudo systemctl restart mysqld

Hive安装配置

Hive下载安装

Hive下载地址: http://www.apache.org/dyn/closer.cgi/hive/

安装到/usr/local/hive

配置环境变量

#Hive Env
export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin

Hive配置

配置文件

cd $HIVE_HOME/conf

创建hive-default.xml

cp hive-default.xml.template hive-default.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://hadoophost:3306/hive?createDatabaseIfNotExist=true&amp;useUnicode=true&amp;characterEncoding=UTF-8&amp;useSSL=false</value>
		<description>
			JDBC connect string for a JDBC metastore.
			To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL.
			For example, jdbc:postgresql://myhost/db?ssl=true for postgres database.
		</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>
<property>
		<name>hive.metastore.warehouse.dir</name>
		<value>/hive/warehouse</value>
		<description>location of default database for the warehouse</description>
</property>

	<property>
		<name>hive.metastore.schema.verification</name>
		<value>false</value>
	</property>

	<property>
		 <name>datanucleus.readOnlyDatastore</name>
		 <value>false</value>
	</property>
	<property>
		 <name>datanucleus.fixedDatastore</name>
		 <value>false</value>
	</property>
	<property>
		 <name>datanucleus.autoCreateSchema</name>
		 <value>true</value>
	 </property>
	 <property>
			<name>datanucleus.schema.autoCreateAll</name>
			<value>true</value>
	 </property>
	 <property>
			<name>datanucleus.autoCreateTables</name>
			<value>true</value>
	 </property>
	 <property>
			<name>datanucleus.autoCreateColumns</name>
			<value>true</value>
	 </property>
	 <property>
			<name>hive.metastore.local</name>
			<value>true</value>
	 </property>
	 <property>
			 <name>hive.cli.print.header</name>
			 <value>true</value>
	 </property>
	 <property>
			 <name>hive.cli.print.current.db</name>
			 <value>true</value>
	 </property>
</configuration>

hive-site.xml中可能需要添加的配置,用于支持hive的部分功能

<property>
	<name>hive.aux.jars.path</name>
	<value>/usr/local/hive/lib/hive-contrib-3.1.2.jar</value>
</property>

Hive的Mysql配置

添加官方驱动到环境

进入官网下载mysql jdbc 驱动程序包,下载地址:https://dev.mysql.com/downloads/connector/j/5.1.html,如下图所示:
在这里插入图片描述
解压后,将mysql-connector-java-5.1.49-bin.jar拷贝到$HIVE_HOME/lib目录下

cd ~
sudo tar -zxvf ./Downloads/mysql-connector-java-5.1.49.tar.gz -C /usr/local   #解压
cd /usr/local/
cp mysql-connector-java-5.1.49/mysql-connector-java-5.1.49-bin.jar /usr/local/hive/lib #将mysql-connector-java-5.1.49-bin.jar拷贝到/usr/local/hive/lib目录下
配置mysql用户
mysql -u root -p  #登陆shell界面

新建hive数据库

mysql> create database hive;  
#这个hive数据库与hive-site.xml中hadoophost:3306/hive的hive对应,用来保存hive元数据
mysql> show databases; 

配置MySQL允许hive接入

mysql>create user 'hive'@'localhost' identified by 'hive';
mysql> GRANT ALL ON *.* TO 'hive'@'localhost';   
#将所有数据库的所有表的所有权限赋给hive用户
mysql> flush privileges;
#刷新mysql系统权限关系表
问题处理
guava.jar和hadoop内的版本不一致问题
  1. 查看$HADOOP_HOME/share/hadoop/common/lib内guava.jar版本
  2. 查看hive安装目录下lib内guava.jar的版本 如果两者不一致,删除版本低的,并拷贝高版本的 问题解决!

Hive命令

schematool -dbType mysql -initSchema #初始化元数据库

hive # 启动hive
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虹幺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值