一、素材准备(以Mac电脑为例)
虚拟机软件:Parallels Desktop
Linux系统:Centos6.10
Hadoop安装包:http://mirrors.cnnic.cn网站 apache/hadoop/common/stable目录下hadoop-2.9.1.tar.gz
jdk的Linux版本安装包
二、准备环境
在虚拟机上安装Centos6.10后查看配置Linux机器环境:
命令行输入rpm qa | grep java 查看本机安装的java版本
卸载本机的java1.7.0 openjdk 和 java1.6.0 openjdk
命令行输入rpm -c —nodeps java-1.7.0-openjdk—————————
命令行输入rpm -c —nodeps java-1.6.0-openjdk—————————
建立安装包目录
在目录/opt下建立包 删除原来/opt下的rh
命令行输入cd /opt
rm -rf rh
建立三个文件夹 命令行输入
mkdir soft
mkdir moudle
mkdir data
本机和虚拟机启动的Linux系统之间的交互用ssh访问
本机登陆Linux:ssh root@172.20.10.10 (172.20.10.10是自己的Linux系统的IP地址,可用ifconfig命令查看)
本机的安装包文件传到Linux,将jdk和Hadoop安装文件拷贝到Linux系统里安装
本机命令行进入要上传的文件目录,输入scp jdk-8u162-linux-x64.tar.gz root@172.20.10.10:/opt/soft
进入Linux系统里对刚才上传的文件进行赋权,再解压到/opt/module目录
cd /opt/soft
chmod 777 *
tar -zxf jdk-8u162-linux-x64.tar.gz -C /opt/moudle/
设置java环境变量
vim /etc/profile
末尾添加
export JAVA_HOME=/opt/moudle/jdk1.8.0-162
export PATH=\$PATH:$JAVA_HOME/bin
使环境变量生效 source /etc/profile
查看安装后的java版本是否生效java -version
进入Hadoop目录,赋予root权限
chown root Hadoop
三、Hadoop的.sh文件和xml文件配置
参看官网 http://hadoop.apache.org
linux系统进入Hadoop目录
cd hadoop-2.5.0-cdh5.3.6/,新建data/tmp目录
mkdir data
cd data
mkdir tmp
建立软链接(以后可以用/usr/local/hadoop来访问实际的Hadoop目录)
ln -s /opt/moudle/hadoop-2.9.1 /usr/local/hadoop
(建立后用ll命令查看是否生效,如要删除输入rm -rf hadoop
进入hadoop/etc/hadoop目录
vim hadoop-env.sh
修改JAVA_HOME路径为刚才安装的jdk路径
export JAVA_HOME=/opt/moudle/jdk1.8.0_162
vim yarn-env.sh
修改JAVA_HOME路径为刚才安装的jdk路径
export JAVA_HOME=/opt/moudle/jdk1.8.0_162
vim mapred-env.sh
修改JAVA_HOME路径为刚才安装的jdk路径
export JAVA_HOME=/opt/moudle/jdk1.8.0_162
vim core-site.xml修改配置如下:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/data/tmp</value>
</property>
</configuration>
vim hdfs-site.xml修改配置如下:(伪分布式设置为1台集群就可以)
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
mv mapred-site.xml.template mapred-site.xml
vim mapred-site.xml修改配置如下:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
vim yarn-site.xml修改配置如下:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
</configuration>
四、启动集群
root用户下格式化namenode
$ hadoop namenode -format
进入hadoop的sbin目录,启动hadoop
$ start-all.sh
执行后报错如下,只能按ctrl+c结束
The authenticity of host ‘localhost (::1)’ can’t be established.
RSA key fingerprint is ac:a1:……..
Are you sure you want to continue connecting (yes/no)? no
一般的Hadoop集群动辄数百台或上千台机器,因此一般来说都会配置SSH的无密码登录。
root用户下执行
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
然后执行cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
命令行输入ssh localhost
会提示yes/no,输入yes
至此免密登陆已设置完成,下次登录将不再提示
重新格式化namenode
$ hadoop namenode -format
进入hadoop的sbin目录,启动hadoop
$ start-all.sh
仍会提示
Starting secondary namenodes [0.0.0.0]
The authenticity of host ‘0.0.0.0 (0.0.0.0)’ can’t be established.
RSA key fingerprint is ac:a1:……….
Are you sure you want to continue connecting (yes/no)? 输入yes
使用jps命令查看启动的进程,发现没有namenode和datanode,查看日志报错ulimit -a for user root,网上找了很多设置都没有解决,最后发现是因为/etc/hosts文件中没有将本虚拟机及ip的映射添加进去。
(参考https://blog.csdn.net/scuzoutao/article/details/81546269)
添加后重新格式化并启动成功。