一、需要的文件
- Centos系统镜像
- jdk-1.8.0
- hadoop
二、搭建过程
- 安装解压hadoop镜像和jdk-1.8.0
- 配置java环境变量(文件:
/etc/profile
)
export JAVA_HOME=你的jdk路径(进入jdk目录,pwd命令查看路径)
export PATH=$PATH:$JAVA_HOME/bin
- 修改
hadoop
目录下的相关文件
a.hadoop根目录/etc/hadoop/hadoop-env.sh
# The java implementation to use.
export JAVA_HOME=你的jdk路径
b. hadoop根目录/etc/hadoop/core-site.xml
<configuration>
//指定了namenode是谁,端口是多少
<property>
<name>fs.defaultFS</name>
<value>hdfs://你的hostname(hostname命令查看):9000</value>
</property>
//指定集群中每台机器上的进程的工作目录
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hdpdata</value>
</property>
</configuration>
c. hadoop根目录/etc/hadoop/hdfs-site.xml
<configuration>
//备份数
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>你的hostname:50090</value>
</property>
</configuration>
d. 将hadoop根目录/etc/hadoop/
下的mapred-site.xml.template
文件拷贝一份,然后将这个文件重命名(mv)为mapred-site.xml
,并做如下配置:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
e. hadoop根目录/etc/hadoop/yarn-site.xml
文件配置:
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>你的hostname</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
f. 做好以上文件的配置,将hadoop
文件分发到其他主机上。
scp -r hadoop username@ip:hadoop文件夹路径
# 比如我想分发到其他主机的/home目录下
scp -r hadoop root@192.168.100.131:/home
g. 配置hadoop环境变量(/etc/profile
)
export HADOOP_HOME=你的hadoop路径
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
注意每次配完环境变量/etc/profile要执行命令source /etc/profile(常识算我多嘴吧_)
h. 将环境变量拷贝到其他主机上
scp /etc/profile user@ip:/etc/profile
i. 初始化HDFS(就需要格式化HDFS)
hadoop namenode -format
如果成功的话,最后的状态码会显示0,并且上面有successfully。成功具体显示自行百度,不是重点。
也可以进入路径/home/hadoop/data/name/current
下查看是否成功
j. 启动namenode hadoop-daemon.sh start namenode
k. jps
命令查看守护进程,应该能够看到namenode进程了,成功!可以进host:50070
查看了。
三、免密登录
写到后面,主要感觉这个不配每次直接使用ip登录,输入密码也是可以用的,不过在最后还是说明一下。
- 把默认主机名修改一下,默认的真的不舒服
vim /etc/sysconfig/network
- 修改下ip和主机名的映射
vim /etc/hosts
,把你所有使用的主机的ip和你为其设定的主机名做个映射
ip1 hostname1
ip2 hostname2
- ssh免密配置
a. 进入cd ~
,执行ssh-keygen -t rsa
,一路回车。
b. 把当前主机的id_rsa.pub文件(在~/.ssh/目录下)分发到其他主机上scp id_rsa.pub user@ip:/home/id_rsa.pub_master
c. 切换到另一个主机上,将id_rsa.pub_master文件内容追加到.ssh/authorized_keys文件中cat id_rsa.pub_master >> ~/.ssh/authorized_keys
d. 切换回原主机,执行ssh slave(另一个主机名)
测试,主机登录成功!(想slave免密登录master原主机就把逻辑顺序反过来就行了,这个自己应该能想明白)
四、声明
以上过程完全记录自己的配置过程,如果按步骤应该都能成功吧!祝好运!另有问题请留言评论或自行百度!
网友评论