67 lines
1.8 KiB
Bash
67 lines
1.8 KiB
Bash
#!/bin/bash
|
|
|
|
hdfs_dirs="/user /var/log /tmp"
|
|
mapred_dirs="/tmp/hadoop-yarn/staging /tmp/hadoop-yarn/staging/history /tmp/hadoop-yarn/staging/history/done /tmp/hadoop-yarn/staging/history/done_intermediate"
|
|
yarn_dirs="/tmp/hadoop-yarn /var/log/hadoop-yarn"
|
|
|
|
# Must be run as root
|
|
if [[ $EUID -ne 0 ]]
|
|
then
|
|
echo "This must be run as root" 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
# Start the namenode if it isn't running
|
|
started=0
|
|
systemctl status hadoop-namenode > /dev/null 2>&1
|
|
rc=$?
|
|
if [[ $rc -gt 0 ]]
|
|
then
|
|
# Format the namenode if it hasn't been formatted
|
|
runuser hdfs -s /bin/bash /bin/bash -c "hdfs namenode -format -nonInteractive" > /dev/null 2>&1
|
|
if [[ $? -eq 0 ]]
|
|
then
|
|
echo "Formatted the Hadoop namenode"
|
|
fi
|
|
|
|
echo "Starting the Hadoop namenode"
|
|
systemctl start hadoop-namenode > /dev/null 2>&1
|
|
rc=$?
|
|
started=1
|
|
fi
|
|
|
|
if [[ $rc -ne 0 ]]
|
|
then
|
|
echo "The Hadoop namenode failed to start"
|
|
exit 1
|
|
fi
|
|
|
|
for dir in $hdfs_dirs $yarn_dirs $mapred_dirs
|
|
do
|
|
echo "Creating directory $dir"
|
|
runuser hdfs -s /bin/bash /bin/bash -c "hadoop fs -mkdir -p $dir" > /dev/null 2>&1
|
|
done
|
|
|
|
echo "Setting permissions on /tmp"
|
|
runuser hdfs -s /bin/bash /bin/bash -c "hadoop fs -chmod 1777 /tmp" > /dev/null 2>&1
|
|
|
|
for dir in $mapred_dirs
|
|
do
|
|
echo "Setting permissions and ownership for $dir"
|
|
runuser hdfs -s /bin/bash /bin/bash -c "hadoop fs -chown mapred:mapred $dir" > /dev/null 2>&1
|
|
runuser hdfs -s /bin/bash /bin/bash -c "hadoop fs -chmod 1777 $dir" > /dev/null 2>&1
|
|
done
|
|
|
|
for dir in $yarn_dirs
|
|
do
|
|
echo "Setting permissions and ownership for $dir"
|
|
runuser hdfs -s /bin/bash /bin/bash -c "hadoop fs -chown yarn:mapred $dir" > /dev/null 2>&1
|
|
done
|
|
|
|
# Stop the namenode if we started it
|
|
if [[ $started -gt 0 ]]
|
|
then
|
|
echo "Stopping the Hadoop namenode"
|
|
systemctl stop hadoop-namenode > /dev/null 2>&1
|
|
fi
|