hadoop伪集群模式安装

hadoop可以在单个节点上,用伪分布的模式来运行hadoop的各个组件。

当前机器环境

操作系统:64 位 CentOS  

Jdk版本:1.7.0_79,64位jvm。

准备工作

1、 修改hosts

为了不需要记住冗长的ip地址,便于识别那个节点,我们修改下hosts,把当前内网ip地址对应成data-1,

用root用户修改 /etc/hosts文件,把内网ip地址和域名对应关系放进去,操作如下:

vim /etc/hosts
10.116.111.110 data-1

2、创建用户

到目前为止都用的root用户,root用户具有最高权限,不安全,因此需要单独创建一个用户来运行hadoop,这里就使用hadoop用户名吧,名字随便起,

操作如下:

useradd hadoop
passwd hadoop
 需要输入两次密码。
3、创建目录
个人喜欢把软件安装到/usr/local目录下,系统目录是需要root操作权限的,如果把hadoop软件放到/usr/local目录下会出现一个问题,
就是在多个节点上部署hadoop集群的时候需要复制文件,hadoop用户使用scp命令时,会出现权限问题,所以单独创建一个目录给hadoop用户来使用,
这个步骤不是必须的操作,因个人习惯来使用,操作如下:
chown -R hadoop:hadoop /data
mkdir software
cp /home/hadoop/hadoop-2.6.0-cdh5.5.1/hadoop-dist/target/hadoop-2.6.0-cdh5.5.1.tar.gz /data/software/
cd /data/software/
chown -R hadoop:hadoop hadoop-2.6.0-cdh5.5.1.tar.gz 
su hadoop
tar zxvf hadoop:hadoop hadoop-2.6.0-cdh5.5.1.tar.gz
接下来,再创建两个目录分别用来存放nameNode,dataNode的数据,操作如下:
mkdir -p /data/datastore/hadoop/namenode
mkdir -p /data/datastore/hadoop/datanode
 注意的是,后面如果没有特殊说明,将会一直使用hadoop用户来操作
4、ssh免密码登录
虽然是在一个节点上部署伪集群方式,启动hadoop的时候还是会使用ssh调用其他节点(这里是自己)命令,所以需要配置免登录,操作如下:
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
cd ~
chmod 700 .ssh
cd .ssh
chmod 644 authorized_keys
 执行 ssh localhost,不需要输入密码了。

到此,前期的准备工作都已经完成,下面来配置hadoop相关的文件

配置文件

操作如下:

1、vim etc/hadoop/hadoop-env.sh
# The java implementation to use.
export JAVA_HOME=/usr/local/jdk1.7.0_7
2、vim etc/hadoop/core-site.xml
<configuration>
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://localhost:9000</value>
</property>
</configuration>
 3、vim etc/hadoop/mapred-site.xml
<configuration>
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>
</configuration>
 4、vim vim etc/hadoop/hdfs-site.xml
<configuration>
<property>
  <name>dfs.namenode.name.dir</name>
  <value>file:////data/datastore/hadoop/namenode</value>
</property>
<property>
  <name>dfs.datanode.data.dir</name>
  <value>file:////data/datastore/hadoop/datanode</value>
</property>
<property>
  <name>dfs.replication</name>
  <value>1</value>
</property>
</configuration>
 5、 vim etc/hadoop/yarn-site.xml
<configuration>
<property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
</property>
</configuration>
 
执行启动命令
接下来,我们来启动hadoop的各个组件
1、格式化文件系统
bin/hdfs namenode -format
格式化文件系统,只是第一次运行,类似硬盘格式化
2、启动NameNode 和 DataNode
sbin/start-dfs.sh
3、启动ResourceManager 和 NodeManager
sbin/start-yarn.sh
4、启动JobHistoryServer
sbin/mr-jobhistory-daemon.sh start historyserver
在控制台输入jps查看进程都是否启动,
[hadoop@data-1 data]$ jps
24242 ResourceManager
23940 DataNode
23819 NameNode
24333 NodeManager
24097 SecondaryNameNode
24686 JobHistoryServer
可以在浏览器里输入地址,查看hadoop各个组件的运行情况,
http://localhost:8088,查看ResourceManager信息
http://localhost:50070,查看NameNode信息

http://localhost:19888,查看JobHistoryServer信息

测试使用

到目前为止,hadoop已成功运行,下面来测试下。在测试之前,在/etc/profile中加入变量HADOOP_HOME,方便使用hadoop命令,

export HADOOP_HOME=/data/software/hadoop-2.6.0-cdh5.5.1
export PATH=${PATH}:${HADOOP_HOME}/bin
sudo source /etc/profile
 
echo "This is a test." >> test.txt
hadoop fs -ls /
hadoop fs -copyFromLocal test.txt  /
hadoop fs -cat /test.txt

启动顺序

sbin/start-dfs.sh
sbin/start-yarn.sh
sbin/mr-jobhistory-daemon.sh start historyserver
 

关闭顺序

sbin/mr-jobhistory-daemon.sh stop historyserver
sbin/stop-yarn.sh
sbin/stop-dfs.sh
 

相关推荐