hdoop、hive、hbase部署
HADOOP
wmware pro 15.5
CentOS-7-x86_64-DVD-2009.is
jdk1.8.0_191
hadoop-2.10.1
安装依赖
- 虚拟机软件
wmware pro 15.5
- 操作系统
CentOS-7-x86_64-DVD-2009.iso
1.使用ifconfig命令无效
vi /etc/sysconfig/network-scripts/ifcfg-ens33
Onboot=yes 开启自启用网卡
BOOTPROTO=static 静态获取ip地址
IPADDR=192.168.204.66 ip地址
NETMASK=255.255.255.0 掩码
GATEWAY=192.168.151.2 网关地址,在虚拟网络编辑器中找
DNS1=114.114.114.114 DNS服务器
#注释掉uuid
service network restart
yum install net-tools
再执行ifconfig验证ip
-
配置ssh免密登录,见(linux配置文件)
-
安装jdk
#1.解压 #2. /etc/profile export JAVA_HOME=/opt/java/jdk1.8.0_191 export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib export PATH=$PATH:$JAVA_HOME/bin
配置文件
配置hadoop环境变量
vi /etc/profile
export HADOOP_HOME=/opt/hdp/hadoop-2.10.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
hadoop-env.sh 设置JAVA_HOME
yarn-env.sh 设置JAVA_HOME
core-site.xml 指定nameNode地址
hdfs-site.xml 指定数据文件存放路径
mapred-site.xml 指定mapreduce使用的调度框架yarn
yarn-site.xml配置yarn
slaves 指定salves
-
hadoop-env.sh
cd /opt/hdp/hadoop-2.10.1/etc/hadoop/ # 必须使用绝对路径。不能留空格 export JAVA_HOME=/opt/java/jdk1.8.0_191
-
yarn-env.sh
# 必须使用绝对路径。不能留空格 export JAVA_HOME=/opt/java/jdk1.8.0_191
-
core-site.xml
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> </configuration>
-
hdfs-site.xml
<configuration> <!--副本个数--> <property> <name>dfs.replication</name> <value>3</value> </property> <!--保存FsImage镜像的目录,作用是存放hadoop的名称节点namenode里的metadata;--> <property> <name>dfs.namenode.name.dir</name> <value>/opt/hdp/hadoop-2.10.1/name</value> </property> <!--存放HDFS文件系统数据文件的目录,作用是存放hadoop的数据节点datanode里的多个数据块--> <property> <name>dfs.datanode.data.dir</name> <value>/opt/hdp/hadoop-2.10.1/data</value> </property> <!--Secondary NameNode用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。 --> <property> <name>dfs.namenode.secondary.http-address</name> <value>http://master:9001</value> </property> <property> <name>dfs.namenode.checkpoint.dir</name> <value>/opt/hdp/hadoop-2.10.1/secondary</value> </property> </configuration>
-
mapred-site.xml
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
-
yarn-site.xml
<property> <name>yarn.resourcemanager.address</name> <value>master:18040</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>master:18030</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>master:18088</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>master:18025</value> </property> <property> <name>yarn.resourcemanager.admin.address</name> <value>master:18141</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property>
-
slaves
slave1 slave2 slave3
将环境同步到slave
## 复制jdk和 hadooop
scp -r /opt/java slave1:/opt
scp -r /opt/hdp slave1:/opt
scp -r /opt/java slave2:/opt
scp -r /opt/hdp slave2:/opt
scp -r /opt/java slave3:/opt
scp -r /opt/hdp slave3:/opt
# 将etc/profile里的java环境变量和hdp复制到slave
初始化Hadoop
hdfs namenode -format
start-all.sh
访问 master:50070 若不通则service firewalld stop
HIVE2
apache-hive-2.3.9-bin
mysql-connector-java-5.1.17.jar
创建hive元数据库
create table hive_metadata;
grant all privileges on hive_metadata.* to 'hive'@'%' identified by 'hive'
flush privileges;
--grant all privileges on hive_metadata.* to 'hive'@'master' identified by 'hive'
配置hive
1.解压hive,将 mysql驱动包放入lib
2.配置文件
环境变量
vi /etc/profile
export HIVE_HOME=/opt/hive/apache-hive-2.3.9-bin
export PATH=$PATH:$HIVE_HOME/bin
source /etc/profile
bin/hive-config.sh 设置JAVA_HOME、HADOOP_HOME、HIVE_HOME
conf/hive-env.sh
conf/hive-site.xml 指定元数据mysql库地址
hive-config.sh
export JAVA_HOME=/opt/java/jdk1.8.0_191
export HADOOP_HOME=/opt/hdp/hadoop-2.10.1
export HIVE_HOME=/opt/hive/apache-hive-2.3.9-bin
hive-env.sh
cp hive-env-template.sh hive-env.sh
hive-site.xml
cp hive-default.xml.template hive-site.xml
<!--修改-->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://app:3306/hive_metadata</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive</value>
</property>
<!--
将所有 ${system:java.io.tmpdir} 替换成 /var/hive/tmp
将所有 ${system:user.name} 替换成 root
-->
- 初始化hive
#创建元数据表
schematool -initSchema -dbType mysql
#服务器命令行进入hive
hive
#测试-创建表
create table t(id int)
配置thrift认证hive
hive默认没有用户,使用thrift认证
1.服务端使用thrift代替认证hive,配置hive-site.xml
<property>
<name>hive.server2.authentication</name>
<value>NONE</value>
</property>
<property>
<name>hive.server2.thrift.bind.host</name>
<value>master</value>
</property>
<property>
<name>hive.server2.thrift.port</name>
<value>10000</value>
<description>TCP port number to listen on, default 10000</description>
</property>
<property>
<name>hive.server2.thrift.http.port</name>
<value>10001</value>
</property>
<property>
<name>hive.server2.thrift.client.user</name>
<value>hive</value>
<description>Username to use against thrift client</description>
</property>
<property>
<name>hive.server2.thrift.client.password</name>
<value>hive</value>
<description>Password to use against thrift client</description>
</property>
- 配置hadoop master的 core-site.xml添加如下,同时将其发送到其他slave
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
#将其发送到其他slave
scp .../hive-site.xml slave1:.../hive-site.xml
#关闭hadoop后,再重启
stop-all.sh
start-all.sh
作为服务启动hive
nohup hive --service hiveserver2 & #不占用命令行启动
hiveserver2 # 一直占用命令行
# 关闭
ps -aux| grep hiveserver2
kill [pid]
# 10000 端口 jdbc连接
# 10002 端口 UI界面
-
在服务端使用beeline连接
beeline !connect jdbc:hive2://localhost:10000/default
HBASE
前提:hadoop、zookeeper
hbase-1.7.1
解压hbase,配置HBASE_HOME并将其bin放入环境变量
配置文件
1.hbase-env.sh
export JAVA_HOME=/opt/java/jdk1.8.0_191
export HBASE_MANAGES_ZK=false
export HBASE_CLASSPATH=/opt/hbase-1.7.1/conf
2.hbase-site.xml
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!--配置为core-site.xml 中的fs.defaultFS -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
3 .regionservers
master
slave1
slave2
slave3
发送到slave并启动
#将hbase发送到其他slave上
scp 命令
#启动
start-hbase.sh
#访问16010端口 :UI界面