① 问题描述:HBase只能启动HRegionServer,HMaster启动后瞬间又停止
② 日志
java.net.UnknownHostException: Invalid host name: local host is: (unknown); destination host is: "namenode":9000; java.net.UnknownHostException;
③ 解决:
修改Hbase-site.xml文件,将Rootdir地址改为IP形式。
① 问题描述:Hiveserver2无法启动元数据服务
② 日志:
Exception in thread "main" org.apache.thrift.transport.TTransportException: Kerberos principal should have 3 parts: hadoop
③ 解决
所有节点(包括thrift节点)在core-site.xml中加入:<property> <name>hadoop.security.authorization</name> <value>true</value> </property> <property> <name>hadoop.security.authentication</name> <value>kerberos</value> </property>
① 问题描述: hive集成kerberos后通过
./hive –service metastore & 启动元数据服务
./schematool -initSchema -dbType mysql 启动元数据库
此时报错:
Error: Duplicate key name ‘PCS_STATS_IDX’ (state=42000,code=1061)
②解决
在hive主机拷贝文件到thrift:scp /home/hadoop/hive/scripts/metastore/upgrade/mysql /hive-schema-1.2.0.mysql.sql hadoop@etl:/usr/local/mysql
进入mysql:
mysql -u hive -p hive > use metastore; > source /usr/local/mysql/hive-schema-1.2.0.mysql.sql;
启动hive服务:
./hive
① 问题描述:无法进入hive命令行
② 日志java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient MetaException(message:Could not connect to meta store using any of the URIs provided. Most recent failure:org.apache.thrift.transport.TTransportException: java.net.ConnectException: Connection refused
③ 解决
造成此问题的原因在于设置了元数据来自:thrift://etl:9083该配置用于spark sql与hive的整合,一旦配置了这个属性,hive将不能进入命令行。
① 描述:Hbase产生大量错误日志
② 日志java.io.IOException: error or interrupt while splitting logs in [hdfs://inc-dp-hbase-01.hst.bjc.kfc.alidc.NET:9000/hbase/.logs/inc-dp-hbase-02,60020,1335429401869-splitting
③ 解决
解读:hmaster一直在做log的分布式spit,但是都无法成功:
修改Hbase-site.xml<property> <name>hbase.master.distributed.log.splitting</name> <value>false</value> </property>
① 描述:spark-shell,spark-sql均无法启动,不断重试。
② 日志:ERROR netty.NettyTransport: failed to bind to /192.168.6.187:0, shutting down Netty transport
③ 解决
查看HRegionServer是否宕机
①日志:
java.lang.IllegalArgumentException: KeyValue size too large
② 解决:
conf.set("hbase.client.keyvalue.maxsize","524288000");
① 描述:Hbase shell中list无效:
② 日志:ServerNotRunningYetException: Server is not running yet
③ 解决:
查看HDFS是否处于安全模式。关闭安全模式之后重启zookeeper,再重启hbase
① 描述:hive进行select(*)时,出现以下异常:
Shuffle Error: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-out Answer
② 解决:
增大系统文件描述符数量,修改2个文件: vi /etc/security/limits.conf 加上: * soft nofile 102400 * hard nofile 409600 vi /etc/pam.d/login 加上: session required /lib/security/pam_limits.so
① 描述:spark启动出错
NoClassDefFoundError: org/apache/hadoop/conf/Configuration
② 解决:
在spark-env.sh中加入: export SPARK_DIST_CLASSPATH=$(/home/hadoop/bin/hadoop classpath)
① 描述:hive JDBC无法连接,报错如下:
Hive JDBC : Could not open client transport with JDBC Uri
② 解决:
is your hive Server is running in HTTP mode? When HiveServer2 Is Running in HTTP Mode:Default port for HTTP transport mode is 10001.
①描述:hbase shell下通过list查看表信息,speech_hbase不存在。scan “speech_hbase”报错如下:
ERROR: Unknown table speech_hbase
② 解决:
修复.META.表:hbase hbck -fixMeta
如果依然失败:
hbase hbck -fixAssignments(重新分区)
① 描述:hive启动时,报错如下:
"com.mysql.jdbc.Driver") was not found in the CLASSPATH.
② 解决:
在hive/lib/目录下导入jar包:mysql-connector-java-5.1.34.jar
若jar包版本不符,将在删除表时报以下错误:
For direct MetaStore DB connections, we don’t support retries at the
client level端口被占用
Java.net.BindException:Address already in use
①通过netstat -apn | grep port查看该端口号是否被占用,对用无用进程,可将其kill后重新执行命令
②修改配置文件,修改绑定端口磁盘没有剩余空间
java.io.IOException:No space left on device
清理磁盘,清理无用日志Datanode节点无法启动,且无datanode.log输出
jsvc日志:Cannot start secure datanode with unprivileged RPC ports
Cannot start secure datanode with unprivileged HTTP ports
分析:
JSVC是一组让java在UNIX上更容易运行的库和应用程序,JSVC允许应用程序(如Tomcat)以root权限执行一些特权操作(如绑定到一个端口<1024),然后切换到一个非特权用户的身份。
集成kerberos后的HDFS需要以root身份启动datanode进程,由此需要用到jsvc。
日志提示无法使用一个非特权RPC和HTTP端口启动datanode,特权端口为1024以下的端口,因此编辑hdfs-site.xml手动设置端口号:
dfs.datanode.address
192.168.6.229:900
dfs.datanode.http.address
192.168.6.229:901
应注意:900、901端口未被占用启动datanode时,其中一个节点未启动,通过daemon.sh单独启动时也无法启动,查看datanode.log无记录。查看jsvc.err发现如下信息:
Still running according to PID file /home/hadoop/pids/hadoop_secure_dn.pid, PID is 1829 Service exit with a return value of 122
分析:
由于之前掉电停机,导致datanode下线前未注销hadoop_secure_dn.pid,重启datanode时datanode将检查该文件,如果没有值则注册新的id。解决办法:将该文件中的id值清空,重启该datanode。HA,启动后只有一个namenode,即两个namenode间的协调出现问题。日志显示:
journalnode storage directory ...... is not formatted
解决方案:
sbin/start-dfs.sh
启动集群(暂时只有一个namenode启动)
hdfs namenode -initializeSharedEdits
从已启动的namenode同步初始edits文件到备用主节点
sbin/hadoop-daemon.sh start namenode (在备用主节点执行)
Hadoop运维问题
最新推荐文章于 2021-07-07 22:34:21 发布