配置Linux环境

配置Linux环境

一、配置虚拟机网络环境

首先进入到网络配置目录下

#进入目录
cd /etc/sysconfig/network-scripts/
#查看文件
ll
#打开ifcfg-eno 后缀的文件
vi ifcfg-eno

然后调整自己的ip地址、子网掩码、以及网关

BOOTPROTO=static
ONBOOT = yes
#ip地址
IPADDR=192.168.147.11
#子网掩码
NETMASK=255.255.255.0
#网关
GATEWAY=192.168.147.2
#dns配置
DNS1=10.1.26.188

编写完后 wq 保存退出,并且重启网卡

service network restart

为了方便做集群管理,在配置虚拟机的时候需要做主机名配置

#在vi /etc/hostname
#直接输入主机名即可
node1

配置/etc/hosts文件

#打开host文件按后,将下面四行信息粘贴进去
vim /etc/hosts

192.168.147.11 node1
192.168.147.12 node2
192.168.147.13 node3
192.168.147.14 node4

配置时间同步的环境

#安装包
yum -y install ntp ntpdate
#同步网络时间
ntpdate cn.pool.ntp.org
#查看虚拟机时间
date

二、配置nginx环境

首先官网下载Nginx软件http://nginx.org,下载后上传到Linux中

先在/opt下创建apps目录,用于存放源文件以及解压后的文件

#创建文件夹
mkdir /opt/apps
#进入到目录中
cd /opt/apps/
#对文件进行解压
tar -zxvf nginx-1.16.1.tar.gz 
#进入到解压目录中
 cd nginx-1.16.1

对命令中权限进行安装

#安装nginx依赖的包
yum install gcc gcc-c++ pcre  pcre-devel openssl openssl-devel zlib  zlib-devel vim -y

#对nginx进行环境编译配置
./configure --prefix=/opt/nginx --with-http_ssl_module --with-http_gzip_static_module --error-log-path=/var/log/nginx/nginx.log --pid-path=/var/log/nginx/pid

#编译以及安装
make && make install

#安装完成后需要配置nginx的环境
#首先创建文件夹
mkdir /opt/nginx/mnt

#将下列信心填入配置文件中
server {
        listen      80;
        server_name www.sxthenhao.com;

        location / {
            root /mnt;
            autoindex on;
        }
    }
    server {
        listen       80;
        server_name  www.123.com;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }

添加安装的nginx到服务列表,将以下内容添加到/etc/init.d/nginx脚本中。并且添加nginx的可执行权限

vim /etc/init.d/nginx

将下列内容编写到上述nginx文件中去

#!/bin/sh
#
# nginx - this script starts and stops the nginx daemon
#
# chkconfig:   - 85 15 
# description:  Nginx is an HTTP(S) server, HTTP(S) reverse \
#               proxy and IMAP/POP3 proxy server
# processname: nginx
# config:      /etc/nginx/nginx.conf
# config:      /etc/sysconfig/nginx
# pidfile:     /var/run/nginx.pid
 
# Source function library.
. /etc/rc.d/init.d/functions
 
# Source networking configuration.
. /etc/sysconfig/network
 
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
 
nginx="/opt/nginx/sbin/nginx"
prog=$(basename $nginx)
 
NGINX_CONF_FILE="/opt/nginx/conf/nginx.conf"
 
[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
 
lockfile=/var/lock/subsys/nginx
 
make_dirs() {
   # make required directories
   user=`nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
   options=`$nginx -V 2>&1 | grep 'configure arguments:'`
   for opt in $options; do
       if [ `echo $opt | grep '.*-temp-path'` ]; then
           value=`echo $opt | cut -d "=" -f 2`
           if [ ! -d "$value" ]; then
               # echo "creating" $value
               mkdir -p $value && chown -R $user $value
           fi
       fi
   done
}
 
start() {
    [ -x $nginx ] || exit 5
    [ -f $NGINX_CONF_FILE ] || exit 6
    make_dirs
    echo -n $"Starting $prog: "
    daemon $nginx -c $NGINX_CONF_FILE
    retval=$?
    echo
    [ $retval -eq 0 ] && touch $lockfile
    return $retval
}
 
stop() {
    echo -n $"Stopping $prog: "
    killproc $prog -QUIT
    retval=$?
    echo
    [ $retval -eq 0 ] && rm -f $lockfile
    return $retval
}
 
restart() {
    configtest || return $?
    stop
    sleep 1
    start
}
 
reload() {
    configtest || return $?
    echo -n $"Reloading $prog: "
    killproc $nginx -HUP
    RETVAL=$?
    echo
}
 
force_reload() {
    restart
}
 
configtest() {
  $nginx -t -c $NGINX_CONF_FILE
}
 
rh_status() {
    status $prog
}
 
rh_status_q() {
    rh_status >/dev/null 2>&1
}
 
case "$1" in
    start)
        rh_status_q && exit 0
        $1
        ;;
    stop)
        rh_status_q || exit 0
        $1
        ;;
    restart|configtest)
        $1
        ;;
    reload)
        rh_status_q || exit 7
        $1
        ;;
    force-reload)
        force_reload
        ;;
    status)
        rh_status
        ;;
    condrestart|try-restart)
        rh_status_q || exit 0
            ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
        exit 2
esac

 #进入到编写文件目录设置权限
 cd /etc/init.d
 #添加文件权限
chmod +x nginx
#添加该文件到系统服务中去
chkconfig --add nginx
#查看是否添加成功
chkconfig --list nginx
下面则这一段不需要运行
{
#启动,停止,重新装载
service nginx start|stop|reload 
}
设置开机启动
chkconfig nginx on
#查看nginx进程
chkconfig

#关闭防火墙
systemctl stop firewalld.service

特别注意,配置完nginx程序后,需要关闭防火墙,不然访问不到nginx中去

下面设置开机自动关闭防火墙

yum install iptables-services -y
#设置防火墙开机自禁用
systemctl disable firewalld.service

#设置防火墙开机自启动
systemctl enable firewalld.service

#开启防火墙
systemctl start firewalld.service
#关闭防火墙
systemctl stop firewalld.service

三、配置免密登录

#进入到对应的文件夹
vim /etc/ssh/ssh_config


#将信息修改成下列
StrictHostKeyChecking no
#将配置文件发送到其他服务器上
scp /etc/ssh/ssh_config node2:/etc/ssh/

首先安装ssh密钥

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 

会在/root/.ssh/文件夹中生成id_dsa(私钥)和id_dsa.pub(公钥)两个文件

#在node1上将node1的公钥拷贝到authorized_keys中
cat id_dsa.pub >> authorized_keys 
#将本地的authorized_keys文件远程拷贝到node2上
scp authorized_keys 192.168.147.12:`pwd`

依次将所有公钥进行编写并且发送给所有主机

#完成后可以用ssh连接电脑
ssh node1

四、配置Java环境

首先上传Java1.8 .rpm的文件

#解压并且安装
rpm -ivh jdk-8u221-linux-x64.rpm
#进入到/usr/java 目录下
cd /usr/java
#编写java环境变量
vim /etc/profile
#编写完后执行脚本
source /etc/profile

在/etc/profile文件中将下列配置信息粘贴到最下面

export JAVA_HOME=/usr/java/default
export PATH=$PATH:$JAVA_HOME/bin

另外还有一种安装jdk1.8的方式,他会下载后自动安装

#查看所有jdk的包
yum -y list java*
#安装jdk1.8
yun install java-1.8.0-openjdk-devel.x86_64

五、配置zookeeper环境

在配置zookeeper之前需要将其他主机用ssh连接,确保能够正常访问。

先将zookeeper-3.4.6解压到 /opt目录下

#解压文件
tar -zxvf zookeeper-3.4.6
#进入目录
cd /opt/zookeeper-3.4.6/conf
#首先复制标准文件
cp zoo_sample.cfg zoo.cfg
#创建日志文件夹
mkdir -p /var/bjsxt/zookeeper/datalog
#创建身份信息文件夹
mkdir -p /opt/zookeeper-3.4.6/data
cd /opt/zookeeper-3.4.6/data
#在每一个服务器中编写一个对应的身份信息
echo 1 > myid    #写入的序号对应着配置文件中的主机
#编写zoo.cfg文件
vim /opt/zookeeper-3.4.6/conf/zoo.cfg

将zoo.cfg文件中添加以下信息

#身份信息
dataDir=/opt/zookeeper-3.4.6/data
#zk log dir  日志信息位置
dataLogDir=/var/bjsxt/zookeeper/datalog

#服务端口信息
server.1=node2:2888:3888
server.2=node3:2888:3888
server.3=node4:2888:3888

配置zookeeper的环境变量

#进入电脑环境变量
vim /etc/profile
#将下列信息粘贴到文件中  其中ZOOKEEPER_HOME对应着软件的路径
export ZOOKEEPER_HOME=/opt/zookeeper-3.4.6
export PATH=$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin

#配置结束后保存退出,并且更新文件
:wq
source /etc/profile

zookeeper的启用介绍

#将zookeeper进行启动
zkServe.sh start
#查看状态
zkServe.sh status
#进入zookeeper
zkCli.sh
#停用zookeeper
zkServe.sh stop

六、配置Hadoop环境

官方下载网址:https://archive.apache.org/dist/hadoop/common/hadoop-2.6.5/

下载hadoop-2.6.5.tar.gz 的文件

一、普通Hadoop配置

#解压文件
tar -zxvf hadoop-2.6.5 -C /opt
#配置环境变量
vim /etc/profilt
#刷新
source /etc/profile

将下列环境变量配置信息粘贴到文件中

export HADOOP_HOME=/opt/hadoop-2.6.5
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

需要在Hadoop中的etc/hadoop目录下配置hadoop-env.sh文件

将Java的环境变量配置到里面

#进入到当前目录
cd /opt/hadoop-2.6.0/etc/hadoop
#添加Java的环境变量
vim hadoop-env.sh

将下列环境变量信息粘贴到hadoop-env.sh文件中

export JAVA_HOME=/usr/java/default

将下列信息粘贴到core-site.xml文件中


<configuration>
  <!-- 指定访问HDFS的时候路径的默认前缀  /  hdfs://node1:9000/ -->
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://node1:9000</value>
  </property>
  <!-- 指定hadoop的临时目录位置,它会给namenode、secondarynamenode以及datanode的存储目录指定前缀 -->
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/var/bjsxt/hadoop/pseudo</value>
  </property>
</configuration>

#如何在粘贴的过程中出现乱序的情况,按照以下操作方式可调整顺序
2.	Esc->Ctrl+V (下箭头选择要格式化的代码)
:!xmllint -format -
dd:再删除多没有<?xml ....>

将下列信息粘贴到hdfs-site.xml文件中

<configuration>
  <!-- 指定block副本数 -->
  <property>
<name>dfs.replication</name>
<value>1</value>
  </property>
  <!-- 指定secondarynamenode所在的位置 -->
  <property>
<name>dfs.namenode.secondary.http-address</name>
<value>node1:50090</value>
  </property>
</configuration>

#如何在粘贴的过程中出现乱序的情况,按照以下操作方式可调整顺序
2.	Esc->Ctrl+V (下箭头选择要格式化的代码)
:!xmllint -format -
dd:再删除多没有<?xml ....>

在 slaves 文件中写入主机的名称

vim slaves   #将localhost 改为node1

开始格式化操作

hdfs  namenode  -format
#启动Hadoop
start-dfs.sh
#文件上传     dfs.blocksize=1048576为每个大小的内存
hdfs dfs -D dfs.blocksize=1048576 -put hadoop-2.6.0.tar.gz /
#创建Hadoop的文件夹
hdfs dfs -mkdir -p /user/root
#关闭Hadoop
stop-dfs.sh

二、Hadoop HA集群的配置

配置如下如所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aWya01aW-1668929037511)(https://i0.hdslb.com/bfs/album/4fcc6370900a244473592fc7b43da71a633c613c.png)]

hadoop-env.sh配置JDK

export JAVA_HOME=/usr/java/default

core-site.xml文件

<configuration>
  <property>
	<name>fs.defaultFS</name>
	<value>hdfs://mycluster</value>   
  </property>
  <property>
	<name>hadoop.tmp.dir</name>
	<value>/var/bjsxt/hadoop/ha</value>
  </property>
  <!-- 指定每个zookeeper服务器的位置和客户端端口号 -->
  <property>
	 <name>ha.zookeeper.quorum</name>
	 <value>node2:2181,node3:2181,node4:2181</value>
   </property>
</configuration>

hdfs-site.xml文件信息

<configuration>
  <!-- 指定副本的数量 -->
  <property>
    <name>dfs.replication</name>
    <value>2</value>
  </property>
  <!-- 解析参数dfs.nameservices值hdfs://mycluster的地址 -->
  <property>
    <name>dfs.nameservices</name>
    <value>mycluster</value>
  </property>
  <!-- mycluster由以下两个namenode支撑 -->
  <property>
    <name>dfs.ha.namenodes.mycluster</name>
    <value>nn1,nn2</value>
  </property>
  <!-- 指定nn1地址和端口号  -->
  <property>
    <name>dfs.namenode.rpc-address.mycluster.nn1</name>
    <value>node1:8020</value>
  </property>
  <!-- 指定nn2地址和端口号  -->
  <property>
    <name>dfs.namenode.rpc-address.mycluster.nn2</name>
    <value>node2:8020</value>
  </property>
  <!-- 指定客户端查找active的namenode的策略:
       	       	  会给所有namenode发请求,以决定哪个是active的 -->
  <property>
    <name>dfs.client.failover.proxy.provider.mycluster</name>
    <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
  </property>
  <!-- 指定三台journal node服务器的地址 -->
  <property>
    <name>dfs.namenode.shared.edits.dir</name>
    <value>qjournal://node1:8485;node2:8485;node3:8485/mycluster</value>
  </property>
  <property>
    <name>dfs.journalnode.edits.dir</name>
    <value>/var/bjsxt/hadoop/ha/jnn</value>
  </property>
  <!-- 当active nn出现故障时,ssh到对应的服务器,将namenode进程kill掉  -->
  <property>
    <name>dfs.ha.fencing.methods</name>
    <value>sshfence</value>
  </property>
  <property>
    <name>dfs.ha.fencing.ssh.private-key-files</name>
    <value>/root/.ssh/id_dsa</value>
  </property>
  <!--启动NN故障自动切换 -->
  <property>
    <name>dfs.ha.automatic-failover.enabled</name>
    <value>true</value>
  </property>
</configuration>

在将文件修改完成后,需要将文件拷贝到其他服务器中

scp -r hadoop-2.6.5/ node2:/opt/

#配置完信息后需要在node1、node2中输入下面这条命令
hdfs namenode -format -clusterId myviewfs

三、Hadoop的启动

#启动zookeeper集群, node2、node3、node4分别执行
zkServer.sh start
#	在node1\node2\node3上启动三台journalnode
hadoop-daemon.sh start journalnode
#c)	选择node1,格式化HDFS
hdfs namenode -format
#格式化后,启动namenode进程
hadoop-daemon.sh start namenode
#d)	在另一台node2上同步元数据
hdfs namenode -bootstrapStandby
#接下来在node1上执行:
hdfs zkfc -formatZK
#启动zkfc node1和node2上
hadoop-daemon.sh start zkfc
#启动hadoop集群,可在node1到node4这四台服务器上任意位置执行
start-dfs.sh

#关闭resourcemanager进程
yarn-daemon.sh stop resourcemanager

#当Hadoop的block出现问题,无法显示时,需要关闭安全模式即可
hdfs dfsadmin -safemode leave

node1上编写zk、hdfs启动和关闭脚本

vim /root/bin/startha.sh
vim /root/bin/starthdfs.sh
vim /root/bin/stopha.sh
vim /root/bin/allJps.sh

给文件添加权限

chmod +x startha.sh starthdfs.sh stopha.sh allJps.sh
startha.sh文件
#!/bin/bash
#启动zk集群
for node in node2 node3 node4
do
    ssh $node "source /etc/profile;zkServer.sh start"
done
#休眠1秒
sleep 1
#启动hdfs
start-dfs.sh
#启动yarn
ssh node3 "source /etc/profile;start-yarn.sh"
ssh node4 "source /etc/profile;yarn-daemon.sh start resourcemanager"

#打印四个节点上的Java进程
allJps.sh
starthdfs.sh文件
#!bin/bash
#启动zk集群
for node in node2 node3 node4
do
    ssh $node "source /etc/profile;zkServer.sh start"
done

sleep 1
start-dfs.sh

#打印四个节点上的Java进程
allJps.sh
allJps.sh文件
#!/bin/bash
#
#输出node1上的java进程
echo "----------node1-jps-----------"
jps
#输出node2,node3,node4上的Java进程
for node in node2 node3 node4
do
  echo "----------$node-jps--------------"
  ssh $node "/etc/profile; jps"
done
stopha.sh文件
#!/bin/bash
#先关闭node4上的resourcemanager
ssh node4 "source /etc/profile;yarn-daemon.sh stop resourcemanage"
#关闭node3上的resource manager和node234上的nodemanager
ssh node3 "source /etc/profile;stop-yarn.sh"

#关闭hdfs
stop-dfs.sh

#关闭zk集群
for node in node2 node3 node4
do
    ssh $node "source /etc/profile;zkServer.sh stop"
done

#打印四个节点上的Java进程
allJps.sh

当Hadoop的日志出现报错时,需要在Hadoop中添加一条日志权限,并且将配置好的文件发送到其他服务器上

#首先进入到对应的文件中
cd /opt/hadoop-2.6.5/etc/hadoop
#开始编辑文件
vim log4j.properties

#添加一条信息
log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR

#将添加后的信息发送到 node2、node3、node4中
scp log4j.properties node2:`pwd`

四、RM的搭建

手动启动RM

yarn-daemon.sh  start  resourcemanager

编写mapred-site.xml文件

#进入到Hadoop的目录
cd /opt/hadoop-2.6.5/etc/hadoop
#复制模板
cp mapred-site.xml.template mapred-site.xml

#配置完成后,需要发送给node2、node3、node4上
scp mapred-site.xml node2:`pwd` 
#关闭resourcemanager进程
yarn-daemon.sh stop resourcemanager

#将下列配置粘贴到mapred-site.xml文件中
#指定mr作业运行的框架:要么本地运行,要么使用MRv1,要么使用yarn
 <property>
   <name>mapreduce.framework.name</name>
   <value>yarn</value>
 </property>

编写yarn-site.xml

#进入到Hadoop的目录
cd /opt/hadoop-2.6.5/etc/hadoop
#编写yarn-site.xml
vim yarn-site.xml
#配置完成后,需要发送给node2、node3、node4上
scpyarn-site.xml node2:`pwd` 


<!-- 让yarn的容器支持mapreduce的洗牌,开启shuffle服务 -->
<property>
   <name>yarn.nodemanager.aux-services</name>
   <value>mapreduce_shuffle</value>
</property>
<!-- 启用resourcemanager的HA -->
<property>
   <name>yarn.resourcemanager.ha.enabled</name>
   <value>true</value>
 </property>
<!-- 指定zookeeper集群的各个节点地址和端口号 -->
 <property>
   <name>yarn.resourcemanager.zk-address</name>
   <value>node2:2181,node3:2181,node4:2181</value>
 </property>

<!-- 标识集群,以确保 RM 不会接管另一个集群的活动。 -->
 <property>
   <name>yarn.resourcemanager.cluster-id</name>
   <value>cluster1</value>
 </property>
<!-- RM HA的两个resourcemanager的名字 -->
 <property>
   <name>yarn.resourcemanager.ha.rm-ids</name>
   <value>rm1,rm2</value>
 </property>

<!-- 指定rm1的reourcemanager进程所在的主机名称 -->
 <property>
   <name>yarn.resourcemanager.hostname.rm1</name>
   <value>node3</value>
 </property>
<!-- 指定rm2的reourcemanager进程所在的主机名称 -->
 <property>
   <name>yarn.resourcemanager.hostname.rm2</name>
   <value>node4</value>
 </property>

五、window配置Hadoop 参考百度

七、配置MySQL环境

一、检查电脑是否安装MySQL

#1、首先检查自己Linux是否安装过MySQL
rpm -qa | grep mysql
#如果有的话,就可以删除
rpm -e --nodeps mysql-xxxx
#2、查询所有MySQL对应的文件夹
whereis mysqlm
find / -name mysql
#如果有的话,删除相关目录或者文件
rm -rf /usr/bin/mysql /usr/include/mysql /data/mysql /data/mysql/mysql

#检查一下 是否删除干净
whereis mysqlm
find / -name mysql

#检查MySQL用户组喝用户是否创建(如果没有就开始创建)
cat /etc/group | grep mysql
cat /etc/passwd |grep mysql
groupadd mysql
useradd -r -g mysql mysql

二、开始安装

首先从官网下载

MySQL :: Download MySQL Community Server下载后解压到虚拟机上,网速支持的话,可以用wget下载。

#上传文件后对文件进行解压 后面是文件包名
tar -zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
#将解压后的文件移动到对应文件中
mv mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/mysql
#创建一个data目录
mkdir /usr/local/mysql/data
#修改mysql目录的下所有的目录及文件夹的用户组和用户的权限。
chown -R mysql:mysql /usr/local/mysql
chmod -R 755 /usr/local/mysql
#进入到mysql的/bin目录中
cd  /usr/local/mysql/bin
#执行编译和初始化代码  在初始化的时候最后一行会出现临时密码,要记录下来
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

#需要在/etc下创建一个my.cnf文件  配置信息见下列
vim /etc/my.cnf
#启动MySQL服务
/usr/local/mysql/support-files/mysql.server start

#添加软连接
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql 
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
service mysql restart

my.cnf 配置信息

[mysql]
#设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
datadir=/usr/local/mysql/data
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=400
innodb_file_per_table=1
lower_case_table_names=1
character_set_server=utf8

三、登录mysql

#登录MySQL并且修改初始密码 密码是初始化后的临时密码
mysql -uroot -p
#修改密码
set password for root@localhost = password('root');
#开启远程访问权限
grant all privileges on *.* to '用户名'@'%' identified by '密码'

or

#开启远程访问权限
use mysql;
update user set user.Host='%' where user.User='root';
flush privileges;

八、安装hive环境

一、准备工作

首先需要准备hive的安装包,点击下列连接即可下载

Index of /dist/hive/hive-1.2.1 (apache.org)

然后需要准备MySQL的连接包,需要自己下载(mysql-connector-java-5.1.34-bin.jar)

在安装hive之前,需要检查一下电脑是否安装MySQL以及电脑中安装了Hadoop

二、配置环境

在启动hive之前需要用startha.sh命令,将程序全部开启

#首先解压hive安装包
tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /opt/
#将解压后的hive包改名hive-1.2.1
mv /opt/apache-hive-1.2.1-bin ./hive-1.2.1
#将MySQL的连接包放入/opt/hive-1.2.1/lib/目录下
cp /opt/apps/mysql-connector-java-5.1.34-bin.jar /opt/hive-1.2.1/lib/

#配置hive的环境配置信息
cd /opt/hive-1.2.1/conf
cp hive-default.xml.template hive-site.xml
vim hive-site.xml  #配置信息在下列信息中
vim /etc/profile

#hive 环境配置信息如下
export HIVE_HOME=/opt/hive-1.2.1
export PATH=$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin


#删除Hadoop中的jline包,将hive中的jline包进行替换,解决hive的冲突问题
cd /opt/hadoop-2.6.5/share/hadoop/yarn/lib/
rm -f jline-0.9.94.jar
cp /opt/hive-1.2.1/lib/jline-2.12.jar  ./

#启动hive
hive

hive-site.xml的信息配置

<configuration>
  <property>
    <name>hive.metastore.warehouse.dirname>
    <value>/user/hive/warehousevalue>
  property>
  <property>
    <name>javax.jdo.option.ConnectionURLname>
    <value>jdbc:mysql://192.168.147.11:3306/hive?createDatabaseIfNotExist=truevalue>
  property>
  <property>
    <name>javax.jdo.option.ConnectionDriverNamename>
    <value>com.mysql.jdbc.Drivervalue>
  property>
  <property>
    <name>javax.jdo.option.ConnectionUserNamename>
    <value>rootvalue>
  property>
  <property>
    <name>javax.jdo.option.ConnectionPasswordname>
    <value>rootvalue>
  property>
configuration>

三、hive_remote安装环境

#将node2中的hive安装包发给node3和node4中 并且配置好相关的环境变量
scp -r hive-1.2.1/ node3:`pwd`
scp -r hive-1.2.1/ node4:`pwd`

#将hive客户端放后台执行  放在node3上执行
nohup hive --service metastore &       #通过输入jobs 查看后台运行情况

#fg 1 可以将后台程序放前台运行
kill -15 进程数

在node4中运行hive
hive        or       hiveserver2
or
beeline -u jdbc:hive2://node3:10000/default -n 用户名 -p 密码
#在node4中运行hive会出现报错
cd /opt/hadoop-2.6.5/share/hadoop/yarn/lib/
rm -f jline-0.9.94.jar
cp /opt/hive-1.2.1/lib/jline-2.12.jar  ./

九、分布式hbase hive 配置ha 搭建

一、配置信息

在node2上需要将/opt/hive-1.2.1/conf 目录下的hive-site.xml文件添加下列信息

下列文件需要同时发送到 node3中

<configuration>
  <property>
    <name>hive.metastore.warehouse.dirname>
    <value>/user/hive_ha/warehousevalue>
  property>
  <property>
    <name>javax.jdo.option.ConnectionURLname>
    <value>jdbc:mysql://192.168.147.11:3306/hive_ha?createDatabaseIfNotExist=truevalue>
  property>
  <property>
    <name>javax.jdo.option.ConnectionDriverNamename>
    <value>com.mysql.jdbc.Drivervalue>
  property>
  <property>
    <name>javax.jdo.option.ConnectionUserNamename>
    <value>rootvalue>
  property>
  <property>
    <name>javax.jdo.option.ConnectionPasswordname>
    <value>rootvalue>
  property>
  <property>
    <name>javax.jdo.option.ConnectionPasswordname>
    <value>rootvalue>
  property>
  <property>
    <name>hive.server2.support.dynamic.service.discoveryname>
    <value>truevalue>
  property>
  <property>
    <name>hive.server2.zookeeper.namespacename>
    <value>hiveserver2_zkvalue>
  property>
  <property>
    <name>hive.zookeeper.quorumname>
    <value>node2:2181,node3:2181,node4:2181value>
  property>
  <property>
    <name>hive.zookeeper.client.portname>
    <value>2181value>
  property>
  <property>
    <name>hive.server2.thrift.bind.hostname>
      
    <value>node2value>
  property>
  <property>
    <name>hive.server2.thrift.portname>
    <value>10001value> 
  property>
configuration>

二、环境启动

#首先需要开启Hadoop集群
startha.sh
#然后再node2和node3中开始hive的启动
nohup hiveserver2 &
#在node4中连接hive数据库
beeline 
!connect jdbc:hive2://node2,node3,node4/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2_zk root 123

三、配置hbase的配置内容

#先解压hbase-0.98.12 压缩包
tar -zxvf hbase-0.98.12.1-hadoop2-bin.tar.gz   -C /opt/
#将解压后的文件进行改名
mv hbase-0.98.12.1-hadoop2  hbase-0.98

#配置环境变量
export HBASE_HOME=/opt/hbase-0.98
:$HBASE_HOME/bin
source /etc/profile

#在conf目录中配置regionservers文件,将内容换成下列信息
node2
node3
node4
#在conf中添加一个文件backup-masters,并配置如下
echo "node2" >> backup-masters

修改hbase-env.sh文件

vim hbase-env.sh

export HBASE_PID_DIR=/opt/hbase-0.98/pids
export JAVA_HOME=/usr/java/default
export HBASE_MANAGES_ZK=false

修改hbase-site.xml文件

#打开配置文件
vim hbase-site.xml
<property>
    <name>hbase.cluster.distributedname>
    <value>truevalue>
property>
<property>
    <name>hbase.rootdirname>
    <value>hdfs://mycluster/hbase_havalue>
property>

<property>
    <name>hbase.zookeeper.quorumname>
    <value>node2,node3,node4value>
property>

<property>
    <name>hbase.zookeeper.property.dataDirname>
    <value>/var/bjsxt/zookeeper/datavalue>
property>
#在/opt/hbase-0.98/conf目录中将hadoop的hdfs-site.xml配置信息和hbase目录中连接起来
ln /opt/hadoop-2.6.5/etc/hadoop/hdfs-site.xml  hdfs-site.xml

#配置完后需要将配置信息发送到node2   node3  node4上  
scp -r hbase-0.98/ node2:/opt/
#发送完成后,需要在机器上配置环境变量
vim /etc/profile
export HBASE_HOME=/opt/hbase-0.98
:$HBASE_HOME/bin
source /etc/profile

#启动hbase之前需要保证Hadoop集群已经启动
start-hbase.sh
stop-hbase.sh  #hbase的关闭


#hbase的master启用
hbase-daemon.sh start master
#hbase的master关闭
hbase-daemon.sh stop master

#regionserver 主要分布在node3和node4上
#hbase的regionserver启用
hbase-daemon.sh start regionserver
#hbase的regionserver关闭
hbase-daemon.sh stop regionserver

启动完成后可以在http://node1:60010/ 访问hbase的web页面

#开启进程
startha.sh  && start-hbase.sh

#在node3中输入即可进入hbase中查看数据
hbase shell

value>true


hbase.rootdir
hdfs://mycluster/hbase_ha

hbase.zookeeper.quorum node2,node3,node4 hbase.zookeeper.property.dataDir /var/bjsxt/zookeeper/data ```
#在/opt/hbase-0.98/conf目录中将hadoop的hdfs-site.xml配置信息和hbase目录中连接起来
ln /opt/hadoop-2.6.5/etc/hadoop/hdfs-site.xml  hdfs-site.xml

#配置完后需要将配置信息发送到node2   node3  node4上  
scp -r hbase-0.98/ node2:/opt/
#发送完成后,需要在机器上配置环境变量
vim /etc/profile
export HBASE_HOME=/opt/hbase-0.98
:$HBASE_HOME/bin
source /etc/profile

#启动hbase之前需要保证Hadoop集群已经启动
start-hbase.sh
stop-hbase.sh  #hbase的关闭


#hbase的master启用
hbase-daemon.sh start master
#hbase的master关闭
hbase-daemon.sh stop master

#regionserver 主要分布在node3和node4上
#hbase的regionserver启用
hbase-daemon.sh start regionserver
#hbase的regionserver关闭
hbase-daemon.sh stop regionserver

启动完成后可以在http://node1:60010/ 访问hbase的web页面

#开启进程
startha.sh  && start-hbase.sh

#在node3中输入即可进入hbase中查看数据
hbase shell

你可能感兴趣的:(linux,运维,网络,nginx,hadoop)