1 环境配置
1.1 系统变量
vim /etc/profile
# hadoop environment
export HADOOP_HOME=/usr/local/hadoop-2.8.4
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:
1.2 hadoop-env.sh
vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh
26 export JAVA_HOME=$JAVA_HOME
34 export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop/
source $HADOOP_HOME/etc/hadoop/hadoop-env.sh
2 主节点配置 core-site.xml
vim $HADOOP_HOME/etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>4096</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/bigdata/tmp</value>
</property>
</configuration>
3 hdfs配置 hdfs-site.xml
需要注意 : 将主机域名替换为自己的域名
vim $HADOOP_HOME/etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.block.size</name>
<value>134217728</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///home/hadoopdata/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoopdata/dfs/data</value>
</property>
<property>
<name>fs.checkpoint.dir</name>
<value>/home/hadoopdata/checkpoint/dfs/charlesname</value>
</property>
<property>
<name>dfs.http.address</name>
<value>master:50070</value>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>master:50090</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions</name>
<value>true</value>
</property>
</configuration>
4 mapreduce配置 mapred-site.xml
cp $HADOOP_HOME/etc/hadoop/mapred-site.xml.template $HADOOP_HOME/etc/hadoop/mapred-site.xml
vim $HADOOP_HOME/etc/hadoop/mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<final>true</final>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
5 yarn配置 yarn-site.xml
vim $HADOOP_HOME/etc/hadoop/yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
</configuration>
6 配置节点域名
vim /usr/local/hadoop-2.8.4/etc/hadoop/slaves
master
slave1
slave2
7 完成分发任务
vim /etc/hosts
192.168.56.20 master
192.168.56.21 slave1
192.168.56.22 slave2
在两个slave里删除Hadoop目录
slave1: rm -rf /usr/local/hadoop-2.8.4/
slave2: rm -rf /usr/local/hadoop-2.8.4/
完成分发工作:
master:
scp -r /usr/local/hadoop-2.8.4/ root@slave1:/usr/local/
scp -r /usr/local/hadoop-2.8.4/ root@slave2:/usr/local/
方法2
在master机上执行下列命令,将配置好的hadoop拷贝至slaveX、client。
cat ~/data/2/machines

for x in `cat ~/data/2/machines` ; do echo $x ; scp -r /usr/cstor/hadoop/etc $x:/usr/cstor/hadoop ;
8 启动
启动之前要先在namenode服务器上格式化,只需一次(多次需要删除某个文件)
hadoop namenode –format
8.1.1 全启动(推荐)
start-all.sh
# 关闭
stop-all.sh
8.1.2 模式启动
start-dfs.sh
start-yarn.sh
8.1.3 单个进程启动
hadoop-daemon.sh start namenode
hadoop-daemons.sh start datanode
yarn-daemon.sh start namenode
yarn-daemons.sh start datanode
mr-jobhistory-daemon.sh start historyserver
9 测试
9.1 查看进程是否启动了:
jps
9.2 查看对应模块的web
http://192.168.56.20:50070

http://192.168.56.20:8088

9.3 文件操作
文件列表
hdfs dfs -ls /
创建 xx文件
hdfs dfs -mkdir xx
上传文件
hdfs dfs –put ./*** /
删除文件夹
删除文件,-rm -R 递归删除目录和文件
hadoop fs -rm 删除文件,-rm -R 递归删除目录和文件
10 跑一个程序
yarn jar /usr/local/hadoop-2.8.4/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.4.jar wordcount /input/word.txt /output/01
hdfs dfs –ls /output/01
hdfs dfs –cat /output/01/part-r-00000
11 常见错误处理
WARN ipc.Client
错误:
WARN ipc.Client: Failed to connect to server: 6059master/192.168.56.20:9000: try once and fail.
50070 端口进程 和 9000端口进程没有启动
11.1 查看 hdfs-site.xml
<property>
<name>dfs.http.address</name>
<value>6059master:50070</value>
</property>
11.2 关闭防火墙
# 查看防火墙状态
systemctl status firewalld
# 关闭防火墙
systemctl stop firewalld.service
# 禁用防火墙
systemctl disable firewalld.service
还有个防火墙是selinux: 要设置为 vim /etc/selinux/config
SELINUX=disabled
11.3 namenode节点没有启动
cd /usr/local/hadoop-2.8.4/bin/
hdfs namenode -format
<h2><a id="1__0"></a>1 环境配置</h2>
<h3><a id="11__2"></a>1.1 系统变量</h3>
<pre><div class="hljs"><code class="lang-shell">vim /etc/profile
</code></div></pre>
<pre><div class="hljs"><code class="lang-shell"><span class="hljs-meta"># </span><span class="language-bash">hadoop environment</span>
export HADOOP_HOME=/usr/local/hadoop-2.8.4
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:
</code></div></pre>
<h3><a id="12_hadoopenvsh_14"></a>1.2 hadoop-env.sh</h3>
<pre><div class="hljs"><code class="lang-shell">vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh
</code></div></pre>
<pre><div class="hljs"><code class="lang-shell">26 export JAVA_HOME=$JAVA_HOME
34 export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop/
</code></div></pre>
<pre><div class="hljs"><code class="lang-shell">source $HADOOP_HOME/etc/hadoop/hadoop-env.sh
</code></div></pre>
<h2><a id="2__coresitexml_29"></a>2 主节点配置 core-site.xml</h2>
<pre><div class="hljs"><code class="lang-shell">vim $HADOOP_HOME/etc/hadoop/core-site.xml
</code></div></pre>
<pre><div class="hljs"><code class="lang-xml"><span class="hljs-tag"><<span class="hljs-name">configuration</span>></span>
<span class="hljs-comment"><!--配置hdfs默认的命名--></span>
<span class="hljs-tag"><<span class="hljs-name">property</span>></span>
<span class="hljs-tag"><<span class="hljs-name">name</span>></span>fs.defaultFS<span class="hljs-tag"></<span class="hljs-name">name</span>></span>
<span class="hljs-tag"><<span class="hljs-name">value</span>></span>hdfs://master:9000<span class="hljs-tag"></<span class="hljs-name">value</span>></span>
<span class="hljs-tag"></<span class="hljs-name">property</span>></span>
<span class="hljs-comment"><!--配置操作hdfs缓冲区大小--></span>
<span class="hljs-tag"><<span class="hljs-name">property</span>></span>
<span class="hljs-tag"><<span class="hljs-name">name</span>></span>io.file.buffer.size<span class="hljs-tag"></<span class="hljs-name">name</span>></span>
<span class="hljs-tag"><<span class="hljs-name">value</span>></span>4096<span class="hljs-tag"></<span class="hljs-name">value</span>></span>
<span class="hljs-tag"></<span class="hljs-name">property</span>></span>
<span class="hljs-comment"><!--配置临时目录--></span>
<span class="hljs-tag"><<span class="hljs-name">property</span>></span>
<span class="hljs-tag"><<span class="hljs-name">name</span>></span>hadoop.tmp.dir<span class="hljs-tag"></<span class="hljs-name">name</span>></span>
<span class="hljs-tag"><<span class="hljs-name">value</span>></span>/home/bigdata/tmp<span class="hljs-tag"></<span class="hljs-name">value</span>></span>
<span class="hljs-tag"></<span class="hljs-name">property</span>></span>
<span class="hljs-tag"></<span class="hljs-name">configuration</span>></span>
</code></div></pre>
<h2><a id="3_hdfs_hdfssitexml_55"></a>3 hdfs配置 hdfs-site.xml</h2>
<p>需要注意 : 将主机域名替换为自己的域名</p>
<pre><div class="hljs"><code class="lang-shell">vim $HADOOP_HOME/etc/hadoop/hdfs-site.xml
</code></div></pre>
<pre><div class="hljs"><code class="lang-xml"><span class="hljs-tag"><<span class="hljs-name">configuration</span>></span>
<span class="hljs-comment"><!--配置副本因子--></span>
<span class="hljs-tag"><<span class="hljs-name">property</span>></span>
<span class="hljs-tag"><<span class="hljs-name">name</span>></span>dfs.replication<span class="hljs-tag"></<span class="hljs-name">name</span>></span>
<span class="hljs-tag"><<span class="hljs-name">value</span>></span>3<span class="hljs-tag"></<span class="hljs-name">value</span>></span>
<span class="hljs-tag"></<span class="hljs-name">property</span>></span>
<span class="hljs-comment"><!--配置块大小--></span>
<span class="hljs-tag"><<span class="hljs-name">property</span>></span>
<span class="hljs-tag"><<span class="hljs-name">name</span>></span>dfs.block.size<span class="hljs-tag"></<span class="hljs-name">name</span>></span>
<span class="hljs-tag"><<span class="hljs-name">value</span>></span>134217728<span class="hljs-tag"></<span class="hljs-name">value</span>></span>
<span class="hljs-tag"></<span class="hljs-name">property</span>></span>
<span class="hljs-comment"><!--配置元数据的存储位置--></span>
<span class="hljs-tag"><<span class="hljs-name">property</span>></span>
<span class="hljs-tag"><<span class="hljs-name">name</span>></span>dfs.namenode.name.dir<span class="hljs-tag"></<span class="hljs-name">name</span>></span>
<span class="hljs-tag"><<span class="hljs-name">value</span>></span>file:///home/hadoopdata/dfs/name<span class="hljs-tag"></<span class="hljs-name">value</span>></span>
<span class="hljs-tag"></<span class="hljs-name">property</span>></span>
<span class="hljs-comment"><!--配置datanode数据存放位置--></span>
<span class="hljs-tag"><<span class="hljs-name">property</span>></span>
<span class="hljs-tag"><<span class="hljs-name">name</span>></span>dfs.datanode.data.dir<span class="hljs-tag"></<span class="hljs-name">name</span>></span>
<span class="hljs-tag"><<span class="hljs-name">value</span>></span>/home/hadoopdata/dfs/data<span class="hljs-tag"></<span class="hljs-name">value</span>></span>
<span class="hljs-tag"></<span class="hljs-name">property</span>></span>
<span class="hljs-comment"><!--配置dfs检测目录存放位置--></span>
<span class="hljs-tag"><<span class="hljs-name">property</span>></span>
<span class="hljs-tag"><<span class="hljs-name">name</span>></span>fs.checkpoint.dir<span class="hljs-tag"></<span class="hljs-name">name</span>></span>
<span class="hljs-tag"><<span class="hljs-name">value</span>></span>/home/hadoopdata/checkpoint/dfs/charlesname<span class="hljs-tag"></<span class="hljs-name">value</span>></span>
<span class="hljs-tag"></<span class="hljs-name">property</span>></span>
<span class="hljs-comment"><!--配置hdfs的namenode的web ui地址--></span>
<span class="hljs-tag"><<span class="hljs-name">property</span>></span>
<span class="hljs-tag"><<span class="hljs-name">name</span>></span>dfs.http.address<span class="hljs-tag"></<span class="hljs-name">name</span>></span>
<span class="hljs-tag"><<span class="hljs-name">value</span>></span>master:50070<span class="hljs-tag"></<span class="hljs-name">value</span>></span>
<span class="hljs-tag"></<span class="hljs-name">property</span>></span>
<span class="hljs-comment"><!--配置dfs的SNN的web ui地址--></span>
<span class="hljs-tag"><<span class="hljs-name">property</span>></span>
<span class="hljs-tag"><<span class="hljs-name">name</span>></span>dfs.secondary.http.address<span class="hljs-tag"></<span class="hljs-name">name</span>></span>
<span class="hljs-tag"><<span class="hljs-name">value</span>></span>master:50090<span class="hljs-tag"></<span class="hljs-name">value</span>></span>
<span class="hljs-tag"></<span class="hljs-name">property</span>></span>
<span class="hljs-comment"><!--是否开启web操作dfs--></span>
<span class="hljs-tag"><<span class="hljs-name">property</span>></span>
<span class="hljs-tag"><<span class="hljs-name">name</span>></span>dfs.webhdfs.enabled<span class="hljs-tag"></<span class="hljs-name">name</span>></span>
<span class="hljs-tag"><<span class="hljs-name">value</span>></span>true<span class="hljs-tag"></<span class="hljs-name">value</span>></span>
<span class="hljs-tag"></<span class="hljs-name">property</span>></span>
<span class="hljs-comment"><!--是否启用hdfs的权限--></span>
<span class="hljs-tag"><<span class="hljs-name">property</span>></span>
<span class="hljs-tag"><<span class="hljs-name">name</span>></span>dfs.permissions<span class="hljs-tag"></<span class="hljs-name">name</span>></span>
<span class="hljs-tag"><<span class="hljs-name">value</span>></span>true<span class="hljs-tag"></<span class="hljs-name">value</span>></span>
<span class="hljs-tag"></<span class="hljs-name">property</span>></span>
<span class="hljs-tag"></<span class="hljs-name">configuration</span>></span>
</code></div></pre>
<h2><a id="4_mapreduce_mapredsitexml_112"></a>4 mapreduce配置 mapred-site.xml</h2>
<pre><div class="hljs"><code class="lang-shell">cp $HADOOP_HOME/etc/hadoop/mapred-site.xml.template $HADOOP_HOME/etc/hadoop/mapred-site.xml
</code></div></pre>
<pre><div class="hljs"><code class="lang-shell">vim $HADOOP_HOME/etc/hadoop/mapred-site.xml
</code></div></pre>
<pre><div class="hljs"><code class="lang-xml"><span class="hljs-tag"><<span class="hljs-name">configuration</span>></span>
<span class="hljs-comment"><!-- 指定mr运行在yarn商 --></span>
<span class="hljs-tag"><<span class="hljs-name">property</span>></span>
<span class="hljs-tag"><<span class="hljs-name">name</span>></span>mapreduce.framework.name<span class="hljs-tag"></<span class="hljs-name">name</span>></span>
<span class="hljs-tag"><<span class="hljs-name">value</span>></span>yarn<span class="hljs-tag"></<span class="hljs-name">value</span>></span>
<span class="hljs-tag"><<span class="hljs-name">final</span>></span>true<span class="hljs-tag"></<span class="hljs-name">final</span>></span>
<span class="hljs-tag"></<span class="hljs-name">property</span>></span>
<span class="hljs-comment"><!--历史服务的通信地址--></span>
<span class="hljs-tag"><<span class="hljs-name">property</span>></span>
<span class="hljs-tag"><<span class="hljs-name">name</span>></span>mapreduce.jobhistory.address<span class="hljs-tag"></<span class="hljs-name">name</span>></span>
<span class="hljs-tag"><<span class="hljs-name">value</span>></span>master:10020<span class="hljs-tag"></<span class="hljs-name">value</span>></span>
<span class="hljs-tag"></<span class="hljs-name">property</span>></span>
<span class="hljs-comment"><!--历史服务的web ui通信地址--></span>
<span class="hljs-tag"><<span class="hljs-name">property</span>></span>
<span class="hljs-tag"><<span class="hljs-name">name</span>></span>mapreduce.jobhistory.webapp.address<span class="hljs-tag"></<span class="hljs-name">name</span>></span>
<span class="hljs-tag"><<span class="hljs-name">value</span>></span>master:19888<span class="hljs-tag"></<span class="hljs-name">value</span>></span>
<span class="hljs-tag"></<span class="hljs-name">property</span>></span>
<span class="hljs-tag"></<span class="hljs-name">configuration</span>></span>
</code></div></pre>
<h2><a id="5_yarn_yarnsitexml_146"></a>5 yarn配置 yarn-site.xml</h2>
<pre><div class="hljs"><code class="lang-shell">vim $HADOOP_HOME/etc/hadoop/yarn-site.xml
</code></div></pre>
<pre><div class="hljs"><code class="lang-xml"><span class="hljs-tag"><<span class="hljs-name">configuration</span>></span>
<span class="hljs-comment"><!-- reducer获取数据的方式---指定mapreduce的shuffle --></span>
<span class="hljs-tag"><<span class="hljs-name">property</span>></span>
<span class="hljs-tag"><<span class="hljs-name">name</span>></span>yarn.nodemanager.aux-services<span class="hljs-tag"></<span class="hljs-name">name</span>></span>
<span class="hljs-tag"><<span class="hljs-name">value</span>></span>mapreduce_shuffle<span class="hljs-tag"></<span class="hljs-name">value</span>></span>
<span class="hljs-tag"></<span class="hljs-name">property</span>></span>
<span class="hljs-comment"><!-- 指定yarn的ResourceManager的地址---指定resourcemanager所在的主机名 --></span>
<span class="hljs-tag"><<span class="hljs-name">property</span>></span>
<span class="hljs-tag"><<span class="hljs-name">name</span>></span>yarn.resourcemanager.hostname<span class="hljs-tag"></<span class="hljs-name">name</span>></span>
<span class="hljs-tag"><<span class="hljs-name">value</span>></span>master<span class="hljs-tag"></<span class="hljs-name">value</span>></span>
<span class="hljs-tag"></<span class="hljs-name">property</span>></span>
<span class="hljs-comment"><!-- 日志聚集功能 --></span>
<span class="hljs-tag"><<span class="hljs-name">property</span>></span>
<span class="hljs-tag"><<span class="hljs-name">name</span>></span>yarn.log-aggregation-enable<span class="hljs-tag"></<span class="hljs-name">name</span>></span>
<span class="hljs-tag"><<span class="hljs-name">value</span>></span>true<span class="hljs-tag"></<span class="hljs-name">value</span>></span>
<span class="hljs-tag"></<span class="hljs-name">property</span>></span>
<span class="hljs-comment"><!-- 日志保留时间 设置7天 --></span>
<span class="hljs-tag"><<span class="hljs-name">property</span>></span>
<span class="hljs-tag"><<span class="hljs-name">name</span>></span>yarn.log-aggregation.retain-seconds<span class="hljs-tag"></<span class="hljs-name">name</span>></span>
<span class="hljs-tag"><<span class="hljs-name">value</span>></span>604800<span class="hljs-tag"></<span class="hljs-name">value</span>></span>
<span class="hljs-tag"></<span class="hljs-name">property</span>></span>
<span class="hljs-comment"><!--指定resourcemanager内部通信地址--></span>
<span class="hljs-tag"><<span class="hljs-name">property</span>></span>
<span class="hljs-tag"><<span class="hljs-name">name</span>></span>yarn.resourcemanager.address<span class="hljs-tag"></<span class="hljs-name">name</span>></span>
<span class="hljs-tag"><<span class="hljs-name">value</span>></span>master:8032<span class="hljs-tag"></<span class="hljs-name">value</span>></span>
<span class="hljs-tag"></<span class="hljs-name">property</span>></span>
<span class="hljs-comment"><!--指定scheduler的内部通信地址--></span>
<span class="hljs-tag"><<span class="hljs-name">property</span>></span>
<span class="hljs-tag"><<span class="hljs-name">name</span>></span>yarn.resourcemanager.scheduler.address<span class="hljs-tag"></<span class="hljs-name">name</span>></span>
<span class="hljs-tag"><<span class="hljs-name">value</span>></span>master:8030<span class="hljs-tag"></<span class="hljs-name">value</span>></span>
<span class="hljs-tag"></<span class="hljs-name">property</span>></span>
<span class="hljs-comment"><!--指定rm的resource-tracker的内部通信地址--></span>
<span class="hljs-tag"><<span class="hljs-name">property</span>></span>
<span class="hljs-tag"><<span class="hljs-name">name</span>></span>yarn.resourcemanager.resource-tracker.address<span class="hljs-tag"></<span class="hljs-name">name</span>></span>
<span class="hljs-tag"><<span class="hljs-name">value</span>></span>master:8031<span class="hljs-tag"></<span class="hljs-name">value</span>></span>
<span class="hljs-tag"></<span class="hljs-name">property</span>></span>
<span class="hljs-comment"><!--指定rm的admin的内部通信地址--></span>
<span class="hljs-tag"><<span class="hljs-name">property</span>></span>
<span class="hljs-tag"><<span class="hljs-name">name</span>></span>yarn.resourcemanager.admin.address<span class="hljs-tag"></<span class="hljs-name">name</span>></span>
<span class="hljs-tag"><<span class="hljs-name">value</span>></span>master:8033<span class="hljs-tag"></<span class="hljs-name">value</span>></span>
<span class="hljs-tag"></<span class="hljs-name">property</span>></span>
<span class="hljs-comment"><!--指定rm的web ui地址--></span>
<span class="hljs-tag"><<span class="hljs-name">property</span>></span>
<span class="hljs-tag"><<span class="hljs-name">name</span>></span>yarn.resourcemanager.webapp.address<span class="hljs-tag"></<span class="hljs-name">name</span>></span>
<span class="hljs-tag"><<span class="hljs-name">value</span>></span>master:8088<span class="hljs-tag"></<span class="hljs-name">value</span>></span>
<span class="hljs-tag"></<span class="hljs-name">property</span>></span>
<span class="hljs-tag"></<span class="hljs-name">configuration</span>></span>
</code></div></pre>
<h2><a id="6__205"></a>6 配置节点域名</h2>
<pre><div class="hljs"><code class="lang-shell">vim /usr/local/hadoop-2.8.4/etc/hadoop/slaves
</code></div></pre>
<pre><div class="hljs"><code class="lang-shell">master
slave1
slave2
</code></div></pre>
<h2><a id="7__217"></a>7 完成分发任务</h2>
<pre><div class="hljs"><code class="lang-shell">vim /etc/hosts
</code></div></pre>
<pre><div class="hljs"><code class="lang-shell">192.168.56.20 master
192.168.56.21 slave1
192.168.56.22 slave2
</code></div></pre>
<p>在两个slave里删除Hadoop目录</p>
<pre><div class="hljs"><code class="lang-shell">slave1: rm -rf /usr/local/hadoop-2.8.4/
slave2: rm -rf /usr/local/hadoop-2.8.4/
</code></div></pre>
<p>完成分发工作:</p>
<pre><div class="hljs"><code class="lang-shell">master:
scp -r /usr/local/hadoop-2.8.4/ root@slave1:/usr/local/
scp -r /usr/local/hadoop-2.8.4/ root@slave2:/usr/local/
</code></div></pre>
<p><strong>方法2</strong></p>
<p>在master机上执行下列命令,将配置好的hadoop拷贝至slaveX、client。</p>
<pre><div class="hljs"><code class="lang-shell">cat ~/data/2/machines
</code></div></pre>
<p><img src="https://static.couragesteak.com/article/b6493379b62eaae331876bf09310040c.png" alt="image.png" /></p>
<pre><div class="hljs"><code class="lang-shell">for x in `cat ~/data/2/machines` ; do echo $x ; scp -r /usr/cstor/hadoop/etc $x:/usr/cstor/hadoop ;
</code></div></pre>
<h2><a id="8__257"></a>8 启动</h2>
<p>启动之前要先在namenode服务器上格式化,只需一次(多次需要删除某个文件)</p>
<pre><div class="hljs"><code class="lang-shell">hadoop namenode –format
</code></div></pre>
<h3><a id="811__264"></a>8.1.1 全启动(推荐)</h3>
<pre><div class="hljs"><code class="lang-shell"> start-all.sh
</code></div></pre>
<pre><div class="hljs"><code class="lang-shell"><span class="hljs-meta"># </span><span class="language-bash">关闭</span>
stop-all.sh
</code></div></pre>
<h3><a id="812__275"></a>8.1.2 模式启动</h3>
<pre><div class="hljs"><code class="lang-shell">start-dfs.sh
start-yarn.sh
</code></div></pre>
<h3><a id="813__281"></a>8.1.3 单个进程启动</h3>
<pre><div class="hljs"><code class="lang-shell">hadoop-daemon.sh start namenode
hadoop-daemons.sh start datanode
yarn-daemon.sh start namenode
yarn-daemons.sh start datanode
mr-jobhistory-daemon.sh start historyserver
</code></div></pre>
<h2><a id="9__291"></a>9 测试</h2>
<h3><a id="91__293"></a>9.1 查看进程是否启动了:</h3>
<pre><div class="hljs"><code class="lang-shell">jps
</code></div></pre>
<h3><a id="92_web_299"></a>9.2 查看对应模块的web</h3>
<pre><div class="hljs"><code class="lang-shell">http://192.168.56.20:50070
</code></div></pre>
<p><img src="https://static.couragesteak.com/article/40cd50d837077d75f87f689bd6ff5bb4.png" alt="image.png" /></p>
<pre><code class="lang-powershell">http://192.168.56.20:8088
</code></pre>
<p><img src="https://static.couragesteak.com/article/6ea168af0b10af5583f90973f9821985.png" alt="image.png" /></p>
<h3><a id="93__312"></a>9.3 文件操作</h3>
<p>文件列表</p>
<pre><code class="lang-powershell">hdfs dfs -ls /
</code></pre>
<p>创建 xx文件</p>
<pre><code class="lang-powershell">hdfs dfs -mkdir xx
</code></pre>
<p>上传文件</p>
<pre><code class="lang-powershell">hdfs dfs –put ./*** /
</code></pre>
<p>删除文件夹</p>
<p>删除文件,-rm -R 递归删除目录和文件</p>
<pre><code>hadoop fs -rm 删除文件,-rm -R 递归删除目录和文件
</code></pre>
<h2><a id="10__340"></a>10 跑一个程序</h2>
<pre><code class="lang-powershell">yarn jar /usr/local/hadoop-2.8.4/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.4.jar wordcount /input/word.txt /output/01
</code></pre>
<pre><code class="lang-powershell">hdfs dfs –ls /output/01
hdfs dfs –cat /output/01/part-r-00000
</code></pre>
<h2><a id="11__351"></a>11 常见错误处理</h2>
<p>WARN ipc.Client</p>
<p>错误:</p>
<pre><code>WARN ipc.Client: Failed to connect to server: 6059master/192.168.56.20:9000: try once and fail.
</code></pre>
<p>50070 端口进程 和 9000端口进程没有启动</p>
<h3><a id="111__hdfssitexml_361"></a>11.1 查看 hdfs-site.xml</h3>
<pre><div class="hljs"><code class="lang-xml"><span class="hljs-comment"><!--配置hdfs的namenode的web ui地址--></span>
<span class="hljs-tag"><<span class="hljs-name">property</span>></span>
<span class="hljs-tag"><<span class="hljs-name">name</span>></span>dfs.http.address<span class="hljs-tag"></<span class="hljs-name">name</span>></span>
<span class="hljs-tag"><<span class="hljs-name">value</span>></span>6059master:50070<span class="hljs-tag"></<span class="hljs-name">value</span>></span>
<span class="hljs-tag"></<span class="hljs-name">property</span>></span>
</code></div></pre>
<h3><a id="112__371"></a>11.2 关闭防火墙</h3>
<pre><code class="lang-powershell"># 查看防火墙状态
systemctl status firewalld
# 关闭防火墙
systemctl stop firewalld.service
# 禁用防火墙
systemctl disable firewalld.service
</code></pre>
<p>还有个防火墙是selinux: 要设置为 vim /etc/selinux/config</p>
<pre><code class="lang-powershell">SELINUX=disabled
</code></pre>
<h3><a id="113_namenode_385"></a>11.3 namenode节点没有启动</h3>
<pre><code class="lang-powershell">cd /usr/local/hadoop-2.8.4/bin/
</code></pre>
<pre><code class="lang-powershell">hdfs namenode -format
</code></pre>
留言