搭建hadoop集群,用root和普通用户有什么区别啊,建议用什么?

fish - Hadooper

赞同来自: Eric_Jiang

是啊,你的/etc/profile是不对,把它改对了啊,这个配置不是必须如此的,根据你的情况做修改。 注意,java也不是你which java看到的那个目录。
1459566656545.png
这里只是个软链,你需要顺藤摸瓜找到它真正所在的位置。

fish - Hadooper

赞同来自: Poodah

这里不是有个java-1.7.0-openjdk.x86_64这目录么?这里面的bin中应该有javac啊。把它设置为JAVA_HOME。

Eric_Jiang - 我是小象的搬运工!!!

赞同来自:

 熟悉linux 随便 ,不熟悉用root吧  

fish - Hadooper

赞同来自:

这个问题更确切的应该解释为,hadoop集群的那些service,“用root用户和普通用户执行有什么区别”。 因为,即使用root搭建,cdh rpm方式安装的服务,在启动时会su到其他账号(比如namenode会su到hdfs账号,nodemanager会su到yarn账号)执行。当然,apache版本,直接解压缩包的方法,安装跟执行用户是一致的。   Linux上,当一个服务以root账号执行时,它就具备了操作这台机器上所有命令、目录的权利。而一个hadoop的服务,尤其是mapreduce这样允许普通用户提交任务的服务,如果yarn采用simple模式进行认证管理的话,所有的mapreduce task在集群的机器中启动时,会以root身份启动这些任务子进程,既然是root,就可以干“任何”事情。于是,用root启动的hadoop服务,如果认证模式使用的是simple,可以说是及其不安全的。提交的mapreduce任务“一个不小心”,可能就将集群干趴下了。 普通用户,权限就肯定没那么高了。当然,用普通用户搭建集群,需要对Linux权限管理更为熟悉些,因为不能像root那样,在搭建时可以为所欲为。    

Poodah

赞同来自:

嗯,明白,老师,我的机器还没装jdk,但Java命令有输出,which java 显示/usr/bin/java ,这是怎么回事啊,是我以前安装好的?,我用DX2上的oracle  jdk 安装之后,java  -version还是OpenJDK,这样有影响吗?还有which java和which javac是应该出现相同的目录吧

fish - Hadooper

赞同来自:

“java”是java虚拟机的执行环境。 “javac”是java的编译器。   正常情况下,如果jdk安装正常,两个工具在一个目录当中。   jdk安装请使用yum install java-1.7.0-openjdk-devel.x86_64 这样的命令(请一定注意,这个包名中是有devel的,这个developer包才有javac)。

Poodah

赞同来自:

老师,我用您的方法安装jdk之后命令都可用,which java和javac也在相同目录下,但是我的etc/profile/  配置的路径都不对呀?

Poodah

赞同来自:

老师,我用yum install java-1.7.0-openjdk-devel.x86_64 这种方式安装之后,可以不配置、/etc/profile ? 并且不配置 也是可以使用的?

fish - Hadooper

赞同来自:

某些Java应用在执行时需要通过JAVA_HOME确认执行环境的位置,不一定所有Java应用都需要。 因为java/javac的路径已经在PATH中,可以直接执行,所有有些应用是可以用的。

Poodah

赞同来自:

老师,yum install java-1.7.0-openjdk-devel.x86_64 这种方式安装之后我怎么配路径啊,usr/lib下面有好多版本,不知道该怎么配置路径

fish - Hadooper

赞同来自:

我在最前面已经提到过/usr/bin/java是指向/etc/alternatives/java的软链,你是否能继续往下追查,/etc/alternatives/java又是个什么?是软链还是个普通文件?

Poodah

赞同来自:

往下查是文件:/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java,我配置环境变量就写/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/就可以了吧

fish - Hadooper

赞同来自:

只是jre啊????? bin下面没有javac吧?你的jdk没装java-1.7.0-openjdk-devel.x86_64这个么? 请到/usr/lib/jvm下面,ls看看找到一个带有javac的。

Poodah

赞同来自:

老师,目录下面就这些

Poodah

赞同来自:

好的  

要回复问题请先登录注册