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界面

posted @ 2022-06-11 10:10  赵钱富贵  阅读(97)  评论(0编辑  收藏  举报