配置运行hadoop

前面的。hadoop版本依然是2.4.1.

选择一个节点做主节点,运行hdfs的namenode、yarn的resourcemanager,以及jobhistoryserver。主节点的节点名称定为hadoop-master。
剩下的作为从节点,运行hdfs的datanode、yarn的nodemanager。每个从节点的节点名称定位hadoop-slave+编号。
“节点名称”这个词,好像是我发明的……

为每个节点创建hadoop用户。配置主节点的hadoop用户可以免密码登录到各个节点(包含自身)。

su – hadoop //切换到hadoop用户
sudo mkdir /opt/hadoop //创建hadoop主目录
cd /opt/hadoop //切换到hadoop主目录
tar xzvf */hadoop-2.4.1.tar.gz //解压缩hadoop包到当前目录,即hadoop主目录
ln -s hadoop-2.4.1 current //创建current符号链接到当前版本的hadoop目录

echo “export PATH=$PATH:/opt/hadoop/current/bin” | sudo tee /etc/profile.d/hadoop.sh //添加hadoop bin目录到PATH
sudo source /etc/profile //使刚才的修改立即生效

修改每个从节点的/etc/hostname,每个从节点的hostname改为hadoop-slave*。从节点的节点名称,就是主机名。

修改每个节点的/etc/hosts,将集群中所有节点的IP地址到主机名的映射添加到hosts,包含自身。

修改主节点的etc/hadoop/slaves,删除原始的localhost,将所有从节点的主机名添加进去,一行一个。

关闭每个节点的防火墙。实际运行环境不建议这么做。但在弄清楚hadoop各个程序监听的端口前,先这么做。

每个节点创建数据目录:
sudo mkdir /data //创建/data目录
sudo chmod o+wx /data //修改/data目录为其它目录可写可执行
sudo mkdir -p /data/hadoop //创建hadoop数据目录
sudo chown hadoop:hadoop /data/hadoop //修改hadoop数据目录为hadoop用户所有

每个节点创建日志目录:
sudo mkdir /var/log/hadoop
sudo mkown hadoop:hadoop /var/log/hadoop

修改每个节点的hadoop配置文件。配置文件都位于hadoop主目录的etc/hadoop下。

hadoop-env.sh:
export HADOOP_HOME=/opt/hadoop/current
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_LOG_DIR=/var/log/hadoop //大部分程序的日志目录
export JAVA_HOME=/usr/lib/jvm/default-java

mapred-env.sh:
export HADOOP_MAPRED_LOG_DIR=/var/log/hadoop //jobhistoryserver的日志目录

yarn-env.sh:
export YARN_LOG_DIR=/var/log/hadoop //yarn的日志目录

core-sites.xml:
fs.defaultFS: hdfs://hadoop-master:9000

hdfs-site.xml:
dfs.replication: 1 //数据副本数目。通常为3
dfs.namenode.name.dir: /data/hadoop/hdfs/name //namenode的数据存放目录(真实的本地目录)
dfs.datanode.data.dir: /data/hadoop/hdfs/data //datanode的数据存放目录(真实的本地目录)

mapred-site.xml:
mapreduce.framework.name: yarn

yarn-site.xml:
yarn.resourcemanager.hostname: hadoop-master
从节点yarn-site.xml:
yarn.nodemanager.aux-services: mapreduce_shuffle
yarn.nodemanager.hostname: hadoop-slave*
yarn.nodemanager.address: hadoop-slave*:19000

在默认配置中,很多主机地址为0.0.0.0,即监听所有地址。但程序也会把这个“0.0.0.0“发送给其它节点,然后其它节点向0.0.0.0发起连接……。所以,指定监听的主机地址为主机名/节点名称。
在默认配置中,部分监听端口为0,即随机取一个。但为了方便后面开防火墙端口,端口号0都改为指定的一个端口号。上面的19000就是我瞎取的。

主节点/etc/ssh/ssh_config中StrictHostKeyChecking建议设为no,免除每次连接到一个新的节点时,ssh都询问是否确认key fingerprint。

格式化名称空间:
hdfs namenode -format
开始hdfs和yarn:
sbin/start-sll.sh
开始jobhistoryserver:
sbin/mr-jobhistory-daemon.sh start historyserver

不知道有没有遗漏的地方……

This entry was posted in Uncategorized and tagged . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *