大数据我爱编程

centos7 安装 CDH 5.14.3 cloudera

2018-05-09  本文已影响0人  Helen_Cat
image.png

硬件信息
四台 高配商业主机
其中三台 8 核 cpu 124G内存 10.5TB ,
一台 24核心 cpu 124G 内存 16TB 磁盘
先期 1master 2 slave ,之后 扩容一台 slave

cdh 已经安装过四五遍 了 ,多次采坑 经历 发现 主要问题是
文件 目录 修改 读写 执行权限不足 ,没有创建对用用户 ,缺失部分 依赖包 ,端口冲突 文件和hash值不符 等等,所以 cdh 一定要看各个组件的完整日志 ,从日志中发现问题,当然一定要知道日志 的准确位置


image.png image.png image.png image.png image.png image.png

设置 yarn-site.xml yarn.nodemanager.resource.memory-mb
输入 hadoop classpath 把得到的内容粘贴到 yarn-site.xml
application.classpath 属性 ,不然会报错

 <property>
           <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
   </property>
 <property>
    <name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  </property>

学习使用awk 自动化完成一些命令
https://www.cnblogs.com/Berryxiong/p/6240488.html

https://blog.csdn.net/system1190/article/details/53671520

https://blog.csdn.net/xuplus/article/details/51668878

后记:发现上面修改会造成一些问题。以后在解决
CDH 5.1.3-1.cdh5.1.3.p0.12 1 个错误
parcel CDH-5.1.3-1.cdh5.1.3.p0.12-unknown 的本地 parcel 错误:一个或多个主机没有报告其操作系统分配。这可能是由于运行已过期的 Cloudera Manager Agent 版本造成的。请运行 Host Inspector 检查 Agent 版本。。

https://blog.csdn.net/xuheng8600/article/details/79983927
http://www.360doc.com/content/14/0610/18/203871_385471759.shtml
说句实话 我认为 安装 cdh 比安装 apache hadoop 要繁琐一些。
一是 要安装的文件众多 ,七七八八有差不多快十个文件,缺少一个文件 都不太可能 安装成功。
二是 安装 坑也不少,cdh 只认 openJdk 7+,普通jdk 即使设置了 JAVA_HOME ,cdh 也视而不见,对系统也有要求,最好 是centos 7,centos 6.9 就有大问题。安装顺序也是不可以颠倒,各种配置也是一个大问题。
三是 安装方式 多样,至少常规有 三种,每一种 都有各种坑,我是先离线下载好了所有的文件,才开始整,有的 安装攻略也不提 用了哪些文件,上来就整,迷迷糊糊
四是 安装文件 下载 要么不好找下载地址,要么 就是下载贼慢,严重影响安装进度
五是 安装后的目录众多,不熟悉的话 可能根本找不到。
六 一定 要 在 /opt/目录下 安装 cloudera ,否则未来很多不方便

好了
首先先给大家 下载的官网 ftp 地址
http://archive.cloudera.com/cdh5/parcels/5.14.2.3/
CDH-5.14.2-1.cdh5.14.2.p0.3-el7.parcel
CDH-5.14.2-1.cdh5.14.2.p0.3-el7.parcel.sha1
http://archive.cloudera.com/cdh5/parcels/5.14.2.3/manifest.json

http://archive.cloudera.com/cdh5/parcels/5.14.4.3/

https://blog.csdn.net/eason_oracle/article/details/51818423

补充几点:
如果直接新建个.sha的文件,把manifest.json最后一行的hash值拷贝进去,直接验证验证失败,这样cm会直接从远程下载parcel包,而不是使用本地下载好的parcel。
解决办法直接把.sh1文件复制一份,再加入manifest.json的hash值,这样才能hash验证通过,使用本地下载好的parcel包。
注意,
.sh1文件也要在下载parcel包时下载好。
mysql数据库最好跟cm主节点在一个节点上,否则会出现无远程权限的问题。

有时候识别不了 本地的 parcel
发现重启master的cloudera-scm-server 就可以了
不过我看日志

2018-07-15 21:39:30,531 WARN ParcelUpdateService:com.cloudera.cmf.persist.ReadWriteDatabaseTaskCallable: Error while executing CmfEntityManager task
java.lang.IllegalArgumentException: Unknown Distro suffix: 1.cdh5.14.2.p0.3
    at com.cloudera.cmf.CDHResources$Distro.valueOfSuffix(CDHResources.java:117)
    at com.cloudera.parcel.ParcelIdentity.filenameInternal(ParcelIdentity.java:112)
    at com.cloudera.parcel.ParcelIdentity.filename(ParcelIdentity.java:133)
    at com.cloudera.parcel.ParcelIdentity$1.compare(ParcelIdentity.java:38)
    at com.cloudera.parcel.ParcelIdentity$1.compare(ParcelIdentity.java:34)
    at java.util.TimSort.countRunAndMakeAscending(TimSort.java:355)

也可能是文件名 也有问题

http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.14.3/RPMS/x86_64/

image.png
https://archive.cloudera.com/cm5/cm/5/cloudera-manager-centos7-cm5.14.3_x86_64.tar.gz

还有 mysql openjdk ,这个 在 centos7 建议使用 yum install,如果 原装的openjdk 你没有卸载 只要 7+ 都可以直接用

//永久性的修改主机名称,重启后能保持修改后的。
hostnamectl set-hostname xxx

//删除hostname
hostnamectl set-hostname ""
hostnamectl set-hostname "" --static

集群 机器全部节点 配置ssh 免登陆 ,并在所有节点 配置 主机名 和 主机名映射 这次全部用root用户 暂时
注意 所有节点 的 /etc/hosts 文件 内的 默认 127.0.0.1 localname1 localname2 ::1 啥的默认都注释掉先,否则会报错

hostname   cdhmaster
hostname   cdhnode1
hostname   cdhnode2

vi  /etc/hosts


101.111.32.178  cdhmaster
101.111.32.17   cdhnode3
101.111.32.18   cdhnode1
101.111.32.19   cdhnode2
127.0.0.1  localhost  #这个最好就是放在后面
ssh-keygen -t rsa
cd  ~/.ssh

ssh-copy-id  -i id_rsa.pub   root@cdhnode1  
ssh-copy-id  -i id_rsa.pub   root@cdhnode2
yum -y install httpd

yum -y install mod_ssl


yum install lrzsz  ##方便使用 rz  sz  命令
sudo yum install java-1.8.0-openjdk  java-1.8.0-openjdk-devel
rpm -qa | grep mariadb
rpm -e --nodeps  mariadb-libs-5.5.56-2.el7.x86_64
sudo rpm -Uvh [http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm](http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm)

sudo yum install mysql-server  # 安装 mysql 这里也有坑 建议大家看我之前写的 mysql 安装教程
yum install  mysql-connector-java  #centos 7 安装 mysql-connector-java.noarch 1:5.1.25-3.el7 
#默认 mysql-connector-java 会再次 安装 jdk6 ,一定要卸载 jdk 6 否则未来启动会报错  【Caused by: java.lang.UnsupportedClassVersionError: com/mysql/jdbc/Driver : Unsupported major.minor version 51.0】 
yum list  jdk #   jdk.x86_64 2000:1.6.0_31-fcs
yum  remove  jdk  #删除jdk6

yum install nc
yum install  telnet

材料准备好了 之后 可以大干一场了
把你 下载的 cdh 相关的 rpm 包 放在一个目录里,然后使用 yum localinstall *.rpm 安装

 yum  localinstall *.rpm 

mysql 安装在cdh 的 master 角色 机器上,创建 scm 库稍微出现了点问题 ,不大 ,主要 权限 密码等,mysql 主要操作是创建用户scm 和 一些数据库 scm hive hue,并把操作权给scm用户

/usr/bin/mysqladmin -u root password 'mypwd'

mysql -u root -p  mypwd
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database monitor DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database scm DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

GRANT ALL PRIVILEGES ON *.* TO 'scm'@'cdhmaster' IDENTIFIED BY 'scm' WITH GRANT OPTION;
FLUSH PRIVILEGES;   ##  注意 主机名  最好使用 主机名 不要使用  localhost,否则  集群节点 连接时候会出问题

解压 cloudera-manager-centos7-cm5.14.3_x86_64.tar.gz
tar -zxvf cloudera-manager-centos7-cm5.14.3_x86_64.tar.gz -C /usr/local/app/
解压后会有两个生成目录 ,一个 clouderamanager 一个 cmf ,cmf 里放着 cdh 的主要运行文件
chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/

然后 要修改 master 角色上的 db 配置文件

注意把最后一行 com.cloudera.cmf.db.setupType=INIT 注释掉 !!!!

否则 cdh 百分之一万启动不来 ,会报错的!!!!

cd /etc/cloudera-scm-server
vi  db.properties

com.cloudera.cmf.db.type=mysql
com.cloudera.cmf.db.host=master
com.cloudera.cmf.db.name=scm
com.cloudera.cmf.db.user=scm
com.cloudera.cmf.db.setupType=EXTERNAL
com.cloudera.cmf.db.password=scm

# 注意把最后一行 com.cloudera.cmf.db.setupType=INIT 注释掉

我参考的文章如下
https://www.jianshu.com/p/90c209e6c22e
https://www.jianshu.com/p/a5086ae9090f
https://zhuanlan.zhihu.com/p/25847794
这篇写的 很全面

有几个安装 cdh rpm 创建的一些文件目录 默认的有几个

/etc/cloudera-scm-server/db.
/var/log/cloudera-scm-server/cloudera-scm-server.log ##查看 输出 日志

剩下的 agent 角色
Step2:配置cloudera agent
修改/etc/cloudera-scm-agent/config.ini文件的以下选项:
server_host=master #这样 master 角色 才可以 监听到agent的心跳
server_port=7182 #若改端口被占用,改为其它端口

在 /opt/cloudera/parcel-repo 下 放置以下文件

image.png

默认端口 http:localhost:7180,首次启动 需要等三分钟 ,时间稍微有点长,没耐心的还以为安装失败了
查看确定输出 日志 并在另一个窗口 启动

tail -f  /var/log/cloudera-scm-server/cloudera-scm-server.log
tail  -f   /var/log/cloudera-scm-agent/cloudera-scm-agent.log
service mysql  start
service cloudera-scm-server start
service cloudera-scm-agent start  

如果访问不了 也可能是防火墙的问题


CentOS7中若使用同样的命令会报错,

stop  iptables.service
Failed to stop iptables.service: Unit iptables.service not loaded.

需要这样
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
init 6  #重启虚拟机,然后再输入第一条命令查看防火墙状态

//临时关闭
systemctl stop firewalld
//禁止开机启动
systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

#当然,如果安装了iptables-service,也可以使用下面的命令,

yum install -y iptables-services
//关闭防火墙
service iptables stop
Redirecting to /bin/systemctl stop  iptables.service
//检查防火墙状态
service iptables status
Redirecting to /bin/systemctl status  iptables.service
鈼iptables.service - IPv4 firewall with iptables
   Loaded: loaded (/usr/lib/systemd/system/iptables.service; disabled; vendor preset: disabled)
   Active: inactive (dead)

然后 登录 master 的 web ui

http://cdhmaster:7180

注意:如果创建失败,根据报错日志,可能需删去数据库与用户,进行排错。相关命令如下:

进入 cdh cloudera manager 登录界面,默认账号密码都是 admin

首次就是安装 cdh,这个步骤可以参考
https://www.cnblogs.com/mycodingworld/p/cdh_installation_instructions.html
https://blog.csdn.net/a921122/article/details/51939692

首次启动 时出现 问题 # Starting cloudera-scm-server: * Couldn't start cloudera-scm-server的解决办法(图文详解)
参考这个 其实 看日志就知道就是 openjdk 的事儿

http://www.cnblogs.com/zlslch/p/7077979.html
基本就这些 祝福大家安装顺利

碰到这个问题 单机部署cloudera 安装失败。 无法接收 Agent 发出的检测信号

先单独开一个 Terminal 监测 agent的日志
tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log

保证 agent 是在运行的状态中
一般就是修改 /etc/cloudera-scm-agent/config.ini
中的 server_ip 和 主机名要一致,
如:server_host=172.16.1.249
不要是 localhost
另外 修改 主机名配置文件 /etc/hosts

##::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
# 101.161.82.17  master  master
#127.0.0.1  master   master
#127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

运行安装过程要从头再开始来一遍,不行就重启 server 和agent
另外还要安装 ntp ,并启动 ntp 服务
yum –y install ntp
service ntpd restart

https://www.google.com.hk/search?newwindow=1&safe=strict&hl=zh-CN&source=hp&ei=tg70WrbIFcO_0wLYwZCIBA&q=hostname+master+differs+from+the+canonical+name+localhost&oq=hostname+master+differs+from+the+canonical+name+localhost&gs_l=psy-ab.3...4445.4445.0.4821.1.1.0.0.0.0.250.250.2-1.1.0....0...1c.2.64.psy-ab..0.0.0....0.e-Tt_sqSiG4

有个一个 很关键 ,parcel 文件 1.8G ,如果本地已经 下载过了 ,就直接使用本地路径的文件,默认
cloudera的 parcel 路径是 这个/opt/cloudera/parcel-repo ,倒是 我的不是默认的 /usr/local/app/cloudera/parcel-repo,否则 错误 ,则会下载网上的,老慢了

image.png

chown cloudera-scm.cloudera-scm /opt -R
chown cloudera-scm.cloudera-scm /var/log/cloudera-scm-agent -R

重要的!!!! 一定要创建 /opt/cloudera/parcel-repo 目录 ,并把 parcel 文件相关的,都放这里,
其他位置 真心不好使。,另外建议 吧CDH-5.14.2-1.cdh5.14.2.p0.3-el7.parcel cp 一下 为 CDH-5.14.2-1.cdh5.14.2.p0.3.parcel ,

配置 cloudera-manager的仓库文件
https://www.cloudera.com/documentation/enterprise/release-notes/topics/cm_vd.html

[cloudera-manager]
# Packages for Cloudera Manager, Version 5, on RedHat or CentOS 7 x86_64              
name=Cloudera Manager
baseurl=https://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.14.3/
gpgkey =https://archive.cloudera.com/cm5/redhat/7/x86_64/cm/RPM-GPG-KEY-cloudera    
gpgcheck = 1

cd /etc/yum.repos.d/
vi cloudera-manager.repo


image.png
image.png

cloudera 安装失败了,重新不能选主机
这个 问题 ,千万不要听网上的瞎逼逼 卸载 cdh 重新 安装 ,最简单的 是在cm 控制面板 删除原来的集群,再走一遍安装 就可以了


image.png

另外我最后一台 扩容的机器之前 安装过 cdh ,需要先把之前的 chd 的rpm 都卸载掉 ,建议吧cloudera tar.gz的包重新解压
还有就是 ,虽然 rpm删除掉了,但是之前的文件目录没有 清掉,尤其要注意
代理节点启动报错(主机状况不良):
错误信息:Error, CM server guid updated, expected df16790a-2e44-44ec-9db2-8731cc635c61, received b6fecabc-8e32-46be-8a43-5f261064b2c7
解决方法:删除/var/lib/cloudera-scm-agent下cm_guid文件
另外 就是
扩容slave 机器
Step2:配置cloudera agent
修改/etc/cloudera-scm-agent/config.ini文件的以下选项:
server_host=master
server_port=7182 #若改端口被占用,改为其它端口

如果主机 发现添加有问题 要及时删掉,选择 英文 的 remove 才可以真的 删除 ,重新运行 安装向导,

image.png

扩容的机器要给他分配角色 ,其实就是 要安装哪些内容 组件,有时候 在分配角色时候 并不能正常 分配 ,不怕,所有执行后 然后在 单独分配角色 ,刚分配的角色组件是没有启动的,然后可以单独 一个个 启动,出现 的问题 一个是 java_home
还有之前的 文件目录有权限问题, rm -rf /data/
chmod -R root:root /data*
启动如果出现问题, 看完整的 角色日志 ,可以透过日志,查看到 错误的信息,扩容后 建议重启 cdh ,在管理界面就可以 ,一般三四分钟就可以了。

image.png image.png

常见问题 安装
容易出现的问题就是 ,

https://blog.csdn.net/qq_31215163/article/details/78214744?locationNum=8&fps=1
https://blog.csdn.net/ZhouyuanLinli/article/details/78013193

HDFS-副本不足的块
副本不足的块 ( Cluster 1 HDFS ) 2016年11月29日, 下午4点02 CST
测试 HDFS 是否具有过多副本不足块。
不良 : 群集中有 707 个 副本不足的块 块。群集中共有 710 个块。百分比 副本不足的块: 99.58%。 临界阈值:40.00%。
操作
为此服务更改“副本不足的块监控阈值”。
建议
这是 HDFS 服务级运行状况测试,用于检查副本不足的块数是否未超过群集块总数的某一百分比。
该运行状况测试失败可能表示 DataNode 丢失。使用 HDFS fsck 命令可确定哪些文件含有副本不足的块。
可使用 副本不足的块监控阈值 HDFS 服务范围内的监控设置配置该测试。修改 复制因子 就可以了

https://blog.csdn.net/qq_31215163/article/details/78214744?locationNum=8&fps=1
https://blog.csdn.net/zzq900503/article/details/53393721
https://blog.csdn.net/lhy66/article/details/44588143

image.png

http://www.aboutyun.com/thread-9087-1-1.html

https://stackoverflow.com/questions/8579105/cloudera-manager-fails-to-add-hosts?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa

CentOS7离线安装Cloudera Manager 5.14.1 !!!!!
https://blog.csdn.net/chenhai201/article/details/78856007

https://www.jianshu.com/p/57179e03795f

mysql-connector-java 这个一定要 加到classpath 建议这样安装

yum install mysql-connector-java
最后 HBASE SQOOP2 OOZIE HIVE ZOOKEEPER HUE YARN HDFS hadoop spark 都顺利安装了

image.png image.png image.png
image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png
image.png image.png image.png

参考 https://blog.csdn.net/freedomboy319/article/details/44804721
https://zhuanlan.zhihu.com/p/25847794

cloudera manager install zookeeper Error found before invoking supervisord:'getpwnam(): name not found: zookeeper'

创建 zookeeper 用户就可以了,类似这个


image.png

Huyu 7/3 18:30

Web

Kukai 7/4 am 10:00

Fenghuang 7/4 pm 2:30

Kuaiji 6:30

awk '{cmd="pip3 install " $1;system(cmd)}' ./piplist

jdbc4.MySQLSyntaxErrorException: Table 'oozie.VALIDATE_CONN' doesn't exist

CM界面重启Load Balancer,会生成新的目录/opt/cm-5.14.1/run/cloudera-scm-agent/process/114-hue-HUE_LOAD_BALANCER/。提示同样的错误。

原因:服务器环境没有预先安装httpd,mod_ssl服务

解决方法:

yum -y install httpd

yum -y install mod_ssl

Thu

Chexiao Am 10:30

Yunxiao pm 2:30

org.apache.hadoop.service.ServiceStateException: org.fusesource.leveldbjni.internal.NativeDB$DBException: IO error: /var/lib/hadoop-yarn/yarn-nm-recovery/yarn-nm-state/LOCK: 权限不够

<dd data-bind="text: params().path">/var/log/hadoop-yarn/hadoop-cmf-yarn-RESOURCEMANAGER-cdhcode.log.out</dd>

<dd data-bind="text: params().path">ativeDB$DBException: IO error: /var/lib/hadoop-yarn/yarn-nm-recovery/yarn-nm-state/LOCK: 权限不够</dd>

<dd data-bind="text: params().path">该用户是否有操作上面目录的权限呢? 用chmod -R 755 /var/lib/hadoop-yarn/ 赋予目录权限</dd>

得知这个错误是因为没有配置/etc/resolv.conf。

如何让CDH 使用指定JDK

1.自定义安装JDK,并配置环境变量。
2.在安装Cloudera Manager时,必须有指定的JDK,一般版本是在http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.10.1/RPMS/x86_64/目录下。
3.在图形化界面安装CDH时,不选择安装JDK。
4.安装成功之后,修改所有主机配置中的Java Home Directory。【可以修改Cloudera Manager之外的所有节点JDK版本】

5.Cloudera Manager节点JDK,修改/etc/default/cloudera-scm-agent /etc/default/cloudera-scm-server 文件,添加Java Home Directory,

export JAVA_HOME=/opt/jdk1.8.0_111

grant all on scm.*to ‘hive’@‘localhost' with MAX_USER_CONNECTIONS 4 MAX_CONNECTIONS_PER_HOUR 1000;

select concat('kill ' ,id,';') kill_process from information_schema.

processlist ;

Fri

Yixin pm 2:00 7/6

注意查看日志爆出的真实错误

/etc/resolv.conf

Nameserver 8.8.8.8

Service network restart

/etc/sysconfig/network-scripts/

<pre style="color: rgb(0, 0, 0); font-family: PingFangSC-Regular, sans-serif; font-size: 14px; font-variant-ligatures: normal; word-wrap: break-word; white-space: pre-wrap;">/run/cloudera-scm-agent/process/</pre>

<pre>还有一种方法就是改变环境变量LANG #export LANG="en_US.UTF-8”</pre>

<pre>

| 进入到hive_home然后执行下面命令
/opt/cloudera/parcels/CDH-5.14.2-1.cdh5.14.2.p0.3/lib/hive/bin

bin/schematool -dbType mysql -initSchema |

</pre>

<pre style="color: rgb(82, 82, 82); font-family: PingFangSC-Regular, sans-serif; font-size: 14px;">

启动hive时出现:Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

<article>

网上汇总方案:

1.hive的版本过高导致的问题,所以其他伙伴有类似错误请考虑版本

2.需要hive元数据库初始化,执行 schematool -dbType mysql -initSchema

3.HIVE_HOME/lib 下的derby-10.11.1.1.jar问题,,把derby-10.11.1.1.jar 换成derby-10.10.2.0.jar问题成功解决

我的问题是hive-site.xml里面的hive.metastore.uris的value写错了,更改回来就解决了

解决方案:

原因:因为没有正常启动Hive 的 Metastore Server服务进程。
解决方法:启动Hive 的 Metastore Server服务进程,执行如下命令:

</article>

</pre>

<pre style="color: rgb(82, 82, 82); font-family: PingFangSC-Regular, sans-serif; font-size: 14px;">./hive --service metastore &</pre>

<pre>

Cloudera 安装parcel hang的问题

可能是 openjdk 的原因

为主机指定 oricle 的jdk 1.8

吧 parcel-repo 的文件权限 都改成777

Cdh 指定jdk 版本

在 ui 选择主机 配置

java_home_directory ,restart

CDH5之Exhausted available authentication methods

service sshd restart

javax.jdo.JDODataStoreException: Required table missing : "VERSION" in Catalog "" Schema "". DataNucleus requires this table to perform its persistence operations. Either your MetaData is incorrect, or you need to enable “datanucleus.schema.autoCreateTables"

一修改 配置文件

二 可能是 没有变成 mysql

https://blog.csdn.net/qq_26479655/article/details/52252335

lib 目录放入 myql 的驱动包

<property>
<name>hive.metastore.local</name>
<value>true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?characterEncoding=UTF-8</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>scm</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>scm</value>
</property>

show OPEN TABLES where In_use > 0; 这个语句记录当前锁表状态

查看表的状态
SHOW STATUS LIKE 'table%';
SHOW STATUS LIKE 'innodb_row_lock%';

Hive 元数据“waiting for table metadata lock”

http://blog.sina.com.cn/s/blog_4112736d0101fhhx.html

Hive meta alter 造成 mysql 被锁表

1.首先关闭所有的ssh shell

  1. 杀掉 mysql-connect-java 的进程

  2. 重启mysql

  3. 删掉 mysql 的hive数据库

  4. show full processlist;

  5. <pre style="color: rgb(82, 82, 82); font-family: PingFangSC-Regular, sans-serif;">./hive --service metastore &</pre>

    <pre style="color: rgb(82, 82, 82); font-family: PingFangSC-Regular, sans-serif;">5. schematool -dbType mysql -initSchema</pre>

</pre>

上一篇下一篇

猜你喜欢

热点阅读