首页 > 其他分享 >hadoop基础----hadoop实战(十三)-----hadoop管理工具---断电后重启CDH集群步骤

hadoop基础----hadoop实战(十三)-----hadoop管理工具---断电后重启CDH集群步骤

时间:2023-08-08 12:35:04浏览次数:41  
标签:jdbc java CDH hadoop --- hibernate mysql org com


我们在CDH集群运维过程中,偶尔会遇到机房突然断电的情况,我们来梳理下遇到机房断电之后的CDH集群恢复步骤,以免无从下手。

在调试CDH集群之前,肯定需要先重启好服务器,以及确保他们的网络畅通。

下面记录恢复CDH集群的步骤:

首先需要启动CDH的server服务,并查看状态

sudo /etc/init.d/cloudera-scm-server start
sudo /etc/init.d/cloudera-scm-server status

可能遇到的问题
cloudera-scm-server dead but pid file exists

解决方法
使用命令

service cloudera-scm-server stop
service cloudera-scm-server status
#删除cloudera-scm-server.pid
rm /var/run/cloudera-scm-server.pid

再次访问CDH控制后台,看看是否访问成功。

有一种情况是启动起来之后过几秒又挂了。

这种情况需要查看日志

tail -f -n 400 /var/log/cloudera-scm-server/cloudera-scm-server.log

可能遇到的问题

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
	at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
	at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:989)
	at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:341)
	at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2189)
	at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2222)
	at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2017)
	at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:779)
	at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
	at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
	at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:389)
	at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:330)
	at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:135)
	at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)
	at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)
	at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)
	at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
	at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
	at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
	at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
Caused by: java.net.ConnectException: Connection refused (Connection refused)
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:580)
	at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:211)
	at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:300)
	... 20 more


Caused by: org.hibernate.exception.GenericJDBCException: Could not open connection
	at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:54)
	at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:125)
	at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:110)
	at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:221)
	at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.getConnection(LogicalConnectionImpl.java:157)
	at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.doBegin(JdbcTransaction.java:67)
	at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.begin(AbstractTransactionImpl.java:160)
	at org.hibernate.internal.SessionImpl.beginTransaction(SessionImpl.java:1426)
	at org.hibernate.ejb.TransactionImpl.begin(TransactionImpl.java:59)
	... 28 more
Caused by: java.sql.SQLException: Connections could not be acquired from the underlying database!
	at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:106)
	at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:529)
	at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:128)
	at org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider.getConnection(C3P0ConnectionProvider.java:84)
	at org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:292)
	at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:214)
	... 33 more
Caused by: com.mchange.v2.resourcepool.CannotAcquireResourceException: A ResourcePool could not acquire a resource from its primary factory or source.
	at com.mchange.v2.resourcepool.BasicResourcePool.awaitAvailable(BasicResourcePool.java:1319)
	at com.mchange.v2.resourcepool.BasicResourcePool.prelimCheckoutResource(BasicResourcePool.java:557)
	at com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:477)
	at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:525)
	... 37 more

解决方法
根据以上报错判断是连接不上依赖的数据库mysql,继续查看日志中的输出,连接的mysql如下:

2018-05-02 13:19:12,931 INFO main:org.hibernate.cfg.Configuration: HHH000221: Reading mappings from resource: cmf.hbm.xml
2018-05-02 13:19:13,163 INFO main:org.hibernate.service.jdbc.connections.internal.ConnectionProviderInitiator: HHH000130: Instantiating explicit connection provider: org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider
2018-05-02 13:19:13,164 INFO main:org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider: HHH010002: C3P0 using driver: com.mysql.jdbc.Driver at URL: jdbc:mysql://localhost/cdh?useUnicode=true&characterEncoding=UTF-8
2018-05-02 13:19:13,164 INFO main:org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider: HHH000046: Connection properties: {user=cdhuser, password=****, autocommit=true, release_mode=auto}
2018-05-02 13:19:13,164 INFO main:org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider: HHH000006: Autocommit mode: true

启动mysql
使用

service mysql start 
或者
sudo service mysqld start

启动mysql
使用

netstat -ntlp  | grep 3306

查找3306端口确认是否已经启动成功。

mysql启动成功,再启动scm-server成功。

然后每台节点都启动一下scm-agent服务。

sudo /etc/init.d/cloudera-scm-agent start
sudo /etc/init.d/cloudera-scm-agent status

这时我们就能通过CDH控制后台来操作了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T8F0ppJ3-1579230816707)(http://image.525.life/FuLf7asOMr0i4SY6lLnyB74_vEAw)]

重启后等待集群启动,如果有个别起不来的节点再查看日志分析解决。

最后需要启动一下配套的服务,比如presto或者hbase的thrift2等等。

presto

cd /home/zzq/presto/presto-server-0.195
bin/launcher start

另外,也可以在前台运行, 日志和相关输出将会写入stdout/stderr(可以使用类似daemontools的工具捕捉这两个数据流):

cd /home/zzq/presto/presto-server-0.195
bin/launcher run

presto提供了Web的管理界面,可以查看多节点的情况。
根据端口来访问,比如8080,则访问
http://192.168.30.252:8080/

thrift2

启动命令

nohup hbase thrift2 start &

参考链接:
hadoop基础----hadoop实战(七)-----hadoop管理工具—使用Cloudera Manager安装Hadoop—Cloudera Manager和CDH5.8离线安装

hadoop基础----hadoop实战(十一)-----hadoop管理工具—CDH的目录结构了解

数据仓库(十)—分布式SQL查询引擎—presto安装部署和连接hive使用

hadoop组件—面向列的开源数据库(三)—hbase的接口thrift

标签:jdbc,java,CDH,hadoop,---,hibernate,mysql,org,com
From: https://blog.51cto.com/u_16218512/7007104

相关文章

  • Bootstrap框架----多条记录双文本(List)添加
    有时候我们需要实现双文本的多条记录录入,传给后台保存成List的结构。界面交互设计如图:可动态添加行数,每行固定两个文本录入。我们在之前的文章中已经在SpringMVC基础框架的基础上应用了BootStrap的后台框架,在此基础上记录多条文本录入用法。应用bootstrap模板基础项目源码下载......
  • kettle案例九-----linux使用kettle
    我们之前学习的kettle操作都是在windows中进行可视化的操作,但是在使用过程中发现一些问题。比如我们的数据文件是放在linux服务器中的,如果要清洗则需要把它们下载到本地,这样需要耗费一些时间,尤其是数据文件比较大时。解决方案就是我们直接在linux服务器中运行kettle进行抽取。......
  • hadoop组件---数据仓库(五)---通过JDBC连接hive的thrift或者hiveserver2
    我们在上一篇文章中已经学习了Hive的常用命令,但是如果使用其他的语言如何跟Hive进行交互呢。Thrift简介Hive拥有HiveServer(Thrift)或者Hiveserver2组件,提供了JDBC驱动服务,使得我们可以用Java代码或者Python来连接Hive并进行一些关系型数据库的sql语句查询等操作。HiveServer或者Hi......
  • java多线程编程基础4--正确使用 Volatile 变量
    记住一点就是:对数据的操作是分三步:1.从内存从拿过来2.更改数据3.写入内存 还需要记住一点就是:我们在存储数据的时候,不一定是将数据存放在内存中的,有时放在寄存器中的。所以多线程操作的时候,共有变量A如果被一个线程操作,并且存放在寄存器中并没写入到内存中,而另一个线程操作这个......
  • 2023第七场牛客多校-We Love Strings
    I-WeLoveStrings_2023牛客暑期多校训练营7题意 做法:根号分治+容斥原理将字符串分为两类:len<=20直接位运算枚举出可能的所有答案,看是否存在符合的len>20采用容斥原理,计算出所有长度为i的字符串中(假设为n个),1个字符串可以表示的(1个元素的交集) ,2个字符串可以表示的......
  • 博弈论:台阶-Nim游戏
    现在,有一个 nn 级台阶的楼梯,每级台阶上都有若干个石子,其中第i 级台阶上有 ai 个石子(i≥1)。两位玩家轮流操作,每次操作可以从任意一级台阶上拿若干个石子放到下一级台阶中(不能不拿)。已经拿到地面上的石子不能再拿,最后无法进行操作的人视为失败。问如果两人都采用最优策略,......
  • python3 apscheduler 任务池 异常错误 /opt/www/taskPools1/venv/lib/python3.8/site-
    报错信息:(venv)root@VM-8-7-ubuntu:/opt/www/taskPools1#pythonmain.pyTraceback(mostrecentcalllast):File"/opt/www/taskPools1/venv/lib/python3.8/site-packages/apscheduler/jobstores/mongodb.py",line86,inadd_jobself.collection.insert_on......
  • 20天 hot 100 速通计划-day04
    普通数组238.除自身以外数组的乘积给你一个整数数组nums,返回数组answer,其中answer[i]等于nums中除nums[i]之外其余各元素的乘积。题目数据保证数组nums之中任意元素的全部前缀元素和后缀的乘积都在32位整数范围内。请不要使用除法,且在O(*n*)时间复杂度内......
  • 分布式链路跟踪springcloud-Sleuth和springcloud-Zipkin
    分布式链路跟踪springcloud-Sleuth和springcloud-Zipkin前言各大厂分布式链路跟踪系统架构对比随着互联网架构的扩张,分布式系统变得日趋复杂,越来越多的组件开始走向分布式化,如微服务、消息收发、分布式数据库、分布式缓存、分布式对象存储、跨域调用,这些组件共同构成了繁杂的分......
  • Siemens 西门子S7-1200PLC与组态王TCP通讯
    1.0首先打开组态王软件,这里测试用的是6.6版本的2.0点击菜单栏的新建项目,然后下一步 3.0这一步是选择项目存放的目录,找到存放位置就下一步 4.0接下来就是设置工程名称了,自己根据项目定义 5.0完成以上步骤,你就会看到如下图的项目,然后我们选择菜单栏点击开发 6.0......