创建普通用户登录并使用Hadoop集群遇到的若干问题
来源:互联网 发布:微博评论屏蔽淘宝链接 编辑:程序博客网 时间:2024/06/05 23:01
创建普通用户登录并使用Hadoop集群遇到的若干问题
在Hadoop与Spark集群(包括Hive、Hbase)搭建好以后,需要创建一批普通用户供其他人使用,在创建普通用户与普通用户登录后运行某个模块(如Hive),以及在Hadoop集群上执行命令时遇到若干问题,在这里予以说明,便于自己记忆,也希望对遇到同样问题的朋友有所帮助。
说明:在安装好Centos系统后,用root创建一般用户hadoop,在hadoop用户下搭建Hadoop集群,故很多文件的路径均为/home/hadoop…下面介绍一般步骤:
1.创建一批普通用户,如test01、test02…并为其设置密码,命令如下:
useradd test01 创建用户passwd test01 为test01设置密码
2.把该批普通用户加入hadoop用户组
gpasswd -a test01 hadoop 把用户test01加入hadoop用户组
注:在文件/etc/passwd中记录着系统所有的用户;在文件/etc/shadow中记录着所有用户的密码,并一一对应;在文件/etc/group中记录着所有的用户组。
3.由于在/home/hadoop/.bashrc中配置了相关的环境变量,在启动spark-shell、hive、hbase时不需要加入相关路径,为了便于普通用户test01等的操作,在test01等用户的.bashrc文件中配置相关环境变量,并用source ~./bashrc使其生效。
4.按照上述步骤设置后,可以正常启动spark-shell与hbase shell,但启动hive时出现报错:
Permission denied:user=test01,access=EXECUTE,inode="/tmp/hive":hadoop:supergroup:drwxrwx---
出现这个问题的原因是在hdfs上目录/tmp/hive的所有者为hadoop,所属用户组为supergroup,而相对于该目录用户test01属于其他用户,不具有任何权限,这里报错是不具有EXECUTE权限,要想解决这个问题,需要修改/tmp/hive的权限,命令如下:
hdfs dfs -chmod 777 /tmp 修改/tmp的权限
再次启动hive便不会再报该错误。
5.在hadoop用户上可以正常运行如下程序,但是在test01用户登录运行时抛出异常
hadoop jar hadoop jar /home/hadoop/hadoop2.7.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar wordcount /test/input /test/output
注:这里运行的是wordcount示例,/test/input为数据所在路径;/test/output为输出结果目录,运行时自动创建。
在test01用户上执行该程序时抛出如下异常:
出现这个异常的原因是:
原来mapreduce.jobhistory.address 和mapreduce.jobhistory.webapp.addres 这两个address的地址使用的是CDH默认的配置值,这里需要改成hostname,这样可能就是原来的位置不对造成的。
这里参考了(http://blog.csdn.net/wjcquking/article/details/41242625)
发现需要在hadoop的配置文件mapred.site.xml中添加如下内容:
</property> <property> <name>mapreduce.jobhistory.address</name> <value>master:10020</value> #master为hostname </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>master:19888</value> </property> <property> <name>yarn.app.mapreduce.am.staging-dir</name> <value>/user</value> #/user为hdfs上的一个目录</property>
在mapred.site.xml中添加如下内容后,把该文件发送到集群其余的机器;在hdfs上创建/user并修改其权限,使得用户test01对其有写权限。由于程序运行时要在hdfs上自动创建/test/output结果目录,则用户test01要对hdfs有写权限,这里为了便于操作,修改hdfs权限为777.
至此,wordcount示例可以正常运行。
PS:这里创建了一批用户可以供其他人使用,但这里问题考虑的并不充分,每一个用户权限的问题,如把hdfs的权限设置为777,则任何人都可以操作hdfs,安全性没有保障,后续会继续关注这个问题,也希望广大朋友给出宝贵建议。虽说解决了一些问题,但毕竟是初学,有些地方不是很准确,有不妥的地方,望指出,谢谢!
- 创建普通用户登录并使用Hadoop集群遇到的若干问题
- 大数据下Hadoop及Hbase使用中遇到的若干问题及汇总
- hadoop集群的创建
- unbuntu将普通用户赋有root权限并使用ssh登录
- js遇到的若干问题
- 创建托管的Hadoop集群
- 为Linux集群创建新账户,并配置hadoop集群
- windows上 使用msysgit的步骤及遇到的若干问题
- Hadoop--创建Hadoop集群
- 搭建Hadoop集群中遇到的坑
- Hadoop集群安装遇到的问题
- HADOOP 集群配置遇到的问题
- hadoop 集群中所遇到的问题
- hadoop集群遇到的奇怪问题
- 金山毒霸中小企业网络版5.0使用中遇到的若干问题
- R语言在C#使用DCom中遇到的若干问题
- 使用VB.NET遇到的若干问题及解决方案
- hadoop集群遇到问题
- 详解浏览器缓存机制与Apache设置缓存
- ExecutorService使用
- 阿里大于短信接口
- Ext Grid checkBox 监听事件
- 在Android开发中使用MVP模式
- 创建普通用户登录并使用Hadoop集群遇到的若干问题
- Matlab软件的矩阵和数组操作
- 创建第一个Django工程
- spring管理Struts2的action时应配置scope="prototype"
- 商业楼与写字楼的区别详解
- 对MVC模式的理解
- MAC 命令大全
- Maven - 工程文档
- tomcat9启动中提示 org.apache.catalina.webresources.Cache.getResource Unable to add the resource