升级Hadoop后无法启动namenode

namenode 默认在/tmp下建立临时文件,但关机后,/tmp下文档自动删除,再次启动Master造成文件不匹配,所以namenode启动失败。
在core-site.xml中指定临时文件位置,然后清空该目录,再运行hadoop namenode -format重新格式化

1
2
3
4
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/hadooptemp</value>
<property>

value中的路径只要不是/tmp 就行。

hadoop宽松的权限

1
2
3
4
5
6
7
8
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>

hive和hbase整合后可以通过cli查询和插入数据但无法从beeline查询数据的问题

错误日志如下:

Error: java.io.IOException: org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after attempts=36, exceptions:
Fri May 19 17:23:55 CST 2017, null, java.net.SocketTimeoutException: callTimeout=60000, callDuration=68822: Call to master/192.168.70.128:16020 failed on local exception: org.apache.hadoop.hbase.exceptions.ConnectionClosingException: Connection to master/192.168.70.128:16020 is closing. Call id=11, waitTime=10 row ‘hive_hbase,,00000000000000’ on table ‘hbase:meta’ at region=hbase:meta,,1.1588230740, hostname=master,16020,1495183947488, seqNum=0 (state=,code=0)

原因是权限的问题
修改Hadoop的core-site.xml

1
2
3
4
5
6
7
8
9
<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hadoop.hosts</name>
<value>*</value>
</property>

修改hive的hive-site.xml,增加配置

1
2
3
4
<property>
<name>hive.server2.enable.doAs</name>
<value>false</value>
</property>

java客户端连接HBase报SocketTimeout master xxx的错误

原因是master,slave等配置在Linux的hosts文件中,通常我们在idea中调试运行的Windows环境的hosts中并没有master等地址映射。把Linux上hosts的相关配置同样配置在Windows中的hosts文件中。上线后同样需要配置在Java程序运行的服务器环境中