Linux上Hadoop从部署环境到启动的详解及其遇到的问题集合

一、软件下载

Hadoop-2.7.2稳定版 下载地址

jdk1.8 下载地址

FileZila(传文件到linux虚拟机里面) 下载地址

SecureCrt(linux模拟终端) 下载地址

二、环境配置

1.解压刚才下载的文件 命令分别为(在/home/app目录下)

tar -xvf Hadoop-2.7.2

tar -xvf jdk1.8

2.jdk环境配置

sudo vi /etc/profile;

export JAVA_HOME=/home/app/jdk1.8

export HADOOP_HOME=/home/app/Hadoop-2.7.2

export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

保存退出:按ESC,输入 :wq!

环境生效source /etc/profile

如果以后环境失效的话 也可以使用该命令是环境生效

3.HADOOP环境配置

切换到Hadoop配置文件的路径下 cd /home/app/hadoop-2.7.2/ect/hadoop

需要配置的文件如下

hadoop-env.sh

sudo vi hadoop-env.sh ,找到export JAVA_HOME={JAVA_HOME} 修改为export JAVA_HOME=/home/app/jdk1.8

 

core-site.xml

<!-- 指定HADOOP所使用的文件系统schemaURI),NameNode的地址 -->

<property>

<name>fs.defaultFS</name>

<value>hdfs://主机名:9000</value>

</property>

<!-- 指定hadoop运行时产生文件的存储目录 -->

<property>

<name>hadoop.tmp.dir</name>

<value>/home/app/hadoop-2.7.2/tmp</value>

</property>

hdfs-site.xml

<!-- 指定HDFS副本的数量 -->

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

mapred-site.xml(目录下是 mapred-site.xml.template,重命名就行了 mvmapred-site.xml.templatemapred-site.xml)

<!-- 制定mr运行在yarn上面-->

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

 

yarn-site.xml

<!-- 指定YARNResourceManager的地址 -->

<property>

<name>yarn.resourcemanager.hostname</name>

<value>主机名</value>

</property>

<!-- reducer获取数据的方式 -->

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

三、环境验证及启动

jdk验证java -version

java version "1.8.0_111"

Java(TM) SE Runtime Environment (build 1.8.0_111-b14)

Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)

hadoop文件系统的格式化

hadoop namenode -format

启动进程

start-all.sh

查看进程是否启动jps

3635 SecondaryNameNode

4039 NodeManager

3145 NameNode

4363 Jps

3820 ResourceManager

3359 DataNode启动成功

四、如果你们很幸运的话,应该就不会看到这一步的,所以这里是结合我遇到的问题解决你遇到的所有问题的

异常

SHUTDOWN_MSG: Shutting down NameNode at java.net.UnknownHostException: BigData: BigData: No address associated with hostname

翻译过来就是没有找到地址与主机名映射,以为我们之前配置文件的时候使用的是主机名而不是地址,所以需要配置下hosts

sudo vi /etc/hosts 配置如下

127.0.0.1 localhost

192.168.23.129 BigDataIP与主机映射)

异常

16/11/18 19:27:09 WARN namenode.NameNode: Encountered exception during format:

java.io.IOException: Cannot create directory /home/app/hadoop-2.7.2/tmp/dfs/name/current

没有权限创建目录,因为如果你之前应该是在root权限下创建其父目录的,解决办法,修改文件目录的访问权限

sudo chmod 777 /home/app/hadoop-2.7.2 ,再次格式化,如果出现16/11/18 19:30:23 INFO util.ExitUtil: Exiting with status 0,则格式化成功,完美解决

异常

如果出现启动Hadoop没有权限,则也可以使用上面的方法,修改hadoop主目录下的权限sudo chmod 777 /home/app/hadoop-2.7.2 或者 sudo chown 777/home/app/hadoop-2.7.2

异常

java.io.IOException: Cannot remove current directory: /home/app/hadoop-2.7.2/tmp/dfs/name/current

这个异常是由于,你之前有可能使用root已经格式化一次了,文件目录是在root权限下创建的,你可以使用root权限强制删除该文件

sudo rm -rf /home/app/hadoop-2.7.2/tmp,sudo rm -rf /home/app/hadoop-2.7.2/log,或者使用上面的方式修改该目录的权限

异常

每次切换用户或者重新打开一个窗口,环境失效的问题,

可以将 /etc/profile,配置的环境变量移到~/.bashrc里面。就可以了,重启一下或者使用source ~/.bashrc

五、实现无密码登录

进入到主目录下 cd ~ 使用ls -a,将会看到.ssh的隐藏文件夹,前提是你安装了ssh 安装方法,sudo apt-get install ssh

cd .ssh

ssh-keygen -t rsa (四个回车),生成公私秘钥

会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)

将公钥拷贝到要登陆的机器上,因为在本阶段,你是在本地启动的,则把公钥拷贝到本地就行了,方法

在当前目录下(/home/yl: sudo touch authorized_keys(创建授权列表文件)

将公钥内容追加到该文件下 catid_rsa.pub>>authorized_keys

更改该文件的访问权限:sudo chmod 700authorized_keys

完成,再次启动hadoop进程就可以实现无密码登录了

注意:如果你是两台机器,你如果把公钥考到另外一台机器上,你就需要scpid_rsa.pubHadoop:/home/yl命令,将文件拷贝到另一台机器上

如果此时出现什么拒绝或权限不足的情况,多半是另一台机器上的用户不对该目录没有访问权限,使用chmod 777 /home/yl进行修改就行了

 

 

 

以上就是LinuxHadoop从部署环境到启动的详解及其遇到的问题集合的全文介绍,希望对您学习和使用linux系统开发有所帮助.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值