HADOOP-7804. Enable hadoop config generator to set configurations to enable short circuit read. Contributed by Arpit Gupta.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1208144 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
0398a9e88d
commit
65681d5716
@ -126,6 +126,9 @@ Release 0.23.1 - Unreleased
|
|||||||
HADOOP-7424. Log an error if the topology script doesn't handle multiple args.
|
HADOOP-7424. Log an error if the topology script doesn't handle multiple args.
|
||||||
(Uma Maheswara Rao G via eli)
|
(Uma Maheswara Rao G via eli)
|
||||||
|
|
||||||
|
HADOOP-7804. Enable hadoop config generator to set configurations to enable
|
||||||
|
short circuit read. (Arpit Gupta via jitendra)
|
||||||
|
|
||||||
OPTIMIZATIONS
|
OPTIMIZATIONS
|
||||||
|
|
||||||
BUG FIXES
|
BUG FIXES
|
||||||
|
@ -67,6 +67,10 @@ usage: $0 <parameters>
|
|||||||
This value should be <= mapred.cluster.max.map.memory.mb
|
This value should be <= mapred.cluster.max.map.memory.mb
|
||||||
--mapreduce-reduce-memory-mb=memory Virtual memory, of a single reduce slot for a job. Defaults to -1
|
--mapreduce-reduce-memory-mb=memory Virtual memory, of a single reduce slot for a job. Defaults to -1
|
||||||
This value should be <= mapred.cluster.max.reduce.memory.mb
|
This value should be <= mapred.cluster.max.reduce.memory.mb
|
||||||
|
--dfs-datanode-dir-perm=700 Set the permission for the datanode data directories. Defaults to 700
|
||||||
|
--dfs-block-local-path-access-user=user User for which you want to enable shortcircuit read.
|
||||||
|
--dfs-client-read-shortcircuit=true/false Enable shortcircuit read for the client. Will default to true if the shortcircuit user is set.
|
||||||
|
--dfs-client-read-shortcircuit-skip-checksum=false/true Disable checking of checksum when shortcircuit read is taking place. Defaults to false.
|
||||||
"
|
"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
@ -124,7 +128,7 @@ function addPropertyToXMLConf
|
|||||||
local finalVal=$5
|
local finalVal=$5
|
||||||
|
|
||||||
#create the property text, make sure the / are escaped
|
#create the property text, make sure the / are escaped
|
||||||
propText="<property>\n<name>$property<\/name>\n<value>$propValue<\/value>"
|
propText="<property>\n<name>$property<\/name>\n<value>$propValue<\/value>\n"
|
||||||
#if description is not empty add it
|
#if description is not empty add it
|
||||||
if [ ! -z $desc ]
|
if [ ! -z $desc ]
|
||||||
then
|
then
|
||||||
@ -146,6 +150,28 @@ function addPropertyToXMLConf
|
|||||||
sed -i "s|$endText|$propText$endText|" $file
|
sed -i "s|$endText|$propText$endText|" $file
|
||||||
}
|
}
|
||||||
|
|
||||||
|
##########################################
|
||||||
|
# Function to setup up the short circuit read settings
|
||||||
|
#########################################
|
||||||
|
function setupShortCircuitRead
|
||||||
|
{
|
||||||
|
local conf_file="${HADOOP_CONF_DIR}/hdfs-site.xml"
|
||||||
|
#if the shortcircuit user is not set then return
|
||||||
|
if [ -z $DFS_BLOCK_LOCAL_PATH_ACCESS_USER ]
|
||||||
|
then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
#set the defaults if values not present
|
||||||
|
DFS_CLIENT_READ_SHORTCIRCUIT=${DFS_CLIENT_READ_SHORTCIRCUIT:-false}
|
||||||
|
DFS_CLIENT_READ_SHORTCIRCUIT_SKIP_CHECKSUM=${DFS_CLIENT_READ_SHORTCIRCUIT_SKIP_CHECKSUM:-false}
|
||||||
|
|
||||||
|
#add the user to the conf file
|
||||||
|
addPropertyToXMLConf "$conf_file" "dfs.block.local-path-access.user" "$DFS_BLOCK_LOCAL_PATH_ACCESS_USER"
|
||||||
|
addPropertyToXMLConf "$conf_file" "dfs.client.read.shortcircuit" "$DFS_CLIENT_READ_SHORTCIRCUIT"
|
||||||
|
addPropertyToXMLConf "$conf_file" "dfs.client.read.shortcircuit.skip.checksum" "$DFS_CLIENT_READ_SHORTCIRCUIT_SKIP_CHECKSUM"
|
||||||
|
}
|
||||||
|
|
||||||
##########################################
|
##########################################
|
||||||
# Function to setup up the proxy user settings
|
# Function to setup up the proxy user settings
|
||||||
#########################################
|
#########################################
|
||||||
@ -217,6 +243,10 @@ OPTS=$(getopt \
|
|||||||
-l 'mapreduce-jobtracker-maxreducememory-mb:' \
|
-l 'mapreduce-jobtracker-maxreducememory-mb:' \
|
||||||
-l 'mapreduce-map-memory-mb:' \
|
-l 'mapreduce-map-memory-mb:' \
|
||||||
-l 'mapreduce-reduce-memory-mb:' \
|
-l 'mapreduce-reduce-memory-mb:' \
|
||||||
|
-l 'dfs-datanode-dir-perm:' \
|
||||||
|
-l 'dfs-block-local-path-access-user:' \
|
||||||
|
-l 'dfs-client-read-shortcircuit:' \
|
||||||
|
-l 'dfs-client-read-shortcircuit-skip-checksum:' \
|
||||||
-o 'h' \
|
-o 'h' \
|
||||||
-- "$@")
|
-- "$@")
|
||||||
|
|
||||||
@ -376,6 +406,22 @@ while true ; do
|
|||||||
MAPREDUCE_REDUCE_MEMORY_MB=$2; shift 2
|
MAPREDUCE_REDUCE_MEMORY_MB=$2; shift 2
|
||||||
AUTOMATED=1
|
AUTOMATED=1
|
||||||
;;
|
;;
|
||||||
|
--dfs-datanode-dir-perm)
|
||||||
|
DFS_DATANODE_DIR_PERM=$2; shift 2
|
||||||
|
AUTOMATED=1
|
||||||
|
;;
|
||||||
|
--dfs-block-local-path-access-user)
|
||||||
|
DFS_BLOCK_LOCAL_PATH_ACCESS_USER=$2; shift 2
|
||||||
|
AUTOMATED=1
|
||||||
|
;;
|
||||||
|
--dfs-client-read-shortcircuit)
|
||||||
|
DFS_CLIENT_READ_SHORTCIRCUIT=$2; shift 2
|
||||||
|
AUTOMATED=1
|
||||||
|
;;
|
||||||
|
--dfs-client-read-shortcircuit-skip-checksum)
|
||||||
|
DFS_CLIENT_READ_SHORTCIRCUIT_SKIP_CHECKSUM=$2; shift 2
|
||||||
|
AUTOMATED=1
|
||||||
|
;;
|
||||||
--)
|
--)
|
||||||
shift ; break
|
shift ; break
|
||||||
;;
|
;;
|
||||||
@ -421,6 +467,8 @@ DFS_SUPPORT_APPEND=${DFS_SUPPORT_APPEND:-false}
|
|||||||
KERBEROS_REALM=${KERBEROS_REALM:-KERBEROS.EXAMPLE.COM}
|
KERBEROS_REALM=${KERBEROS_REALM:-KERBEROS.EXAMPLE.COM}
|
||||||
SECURITY_TYPE=${SECURITY_TYPE:-simple}
|
SECURITY_TYPE=${SECURITY_TYPE:-simple}
|
||||||
KINIT=${KINIT:-/usr/kerberos/bin/kinit}
|
KINIT=${KINIT:-/usr/kerberos/bin/kinit}
|
||||||
|
#deault the data dir perm to 700
|
||||||
|
DFS_DATANODE_DIR_PERM=${DFS_DATANODE_DIR_PERM:-700}
|
||||||
if [ "${SECURITY_TYPE}" = "kerberos" ]; then
|
if [ "${SECURITY_TYPE}" = "kerberos" ]; then
|
||||||
TASK_CONTROLLER="org.apache.hadoop.mapred.LinuxTaskController"
|
TASK_CONTROLLER="org.apache.hadoop.mapred.LinuxTaskController"
|
||||||
HADOOP_DN_ADDR="0.0.0.0:1019"
|
HADOOP_DN_ADDR="0.0.0.0:1019"
|
||||||
@ -562,6 +610,9 @@ if [ "${AUTOSETUP}" == "1" -o "${AUTOSETUP}" == "y" ]; then
|
|||||||
#setup up the proxy users
|
#setup up the proxy users
|
||||||
setupProxyUsers
|
setupProxyUsers
|
||||||
|
|
||||||
|
#setup short circuit read
|
||||||
|
setupShortCircuitRead
|
||||||
|
|
||||||
#set the owner of the hadoop dir to root
|
#set the owner of the hadoop dir to root
|
||||||
chown root ${HADOOP_PREFIX}
|
chown root ${HADOOP_PREFIX}
|
||||||
chown root:${HADOOP_GROUP} ${HADOOP_CONF_DIR}/hadoop-env.sh
|
chown root:${HADOOP_GROUP} ${HADOOP_CONF_DIR}/hadoop-env.sh
|
||||||
@ -611,6 +662,9 @@ else
|
|||||||
#setup up the proxy users
|
#setup up the proxy users
|
||||||
setupProxyUsers
|
setupProxyUsers
|
||||||
|
|
||||||
|
#setup short circuit read
|
||||||
|
setupShortCircuitRead
|
||||||
|
|
||||||
chown root:${HADOOP_GROUP} ${HADOOP_CONF_DIR}/hadoop-env.sh
|
chown root:${HADOOP_GROUP} ${HADOOP_CONF_DIR}/hadoop-env.sh
|
||||||
chmod 755 ${HADOOP_CONF_DIR}/hadoop-env.sh
|
chmod 755 ${HADOOP_CONF_DIR}/hadoop-env.sh
|
||||||
#set taskcontroller
|
#set taskcontroller
|
||||||
|
@ -202,7 +202,7 @@
|
|||||||
|
|
||||||
<property>
|
<property>
|
||||||
<name>dfs.datanode.data.dir.perm</name>
|
<name>dfs.datanode.data.dir.perm</name>
|
||||||
<value>700</value>
|
<value>${DFS_DATANODE_DIR_PERM}</value>
|
||||||
<description>The permissions that should be there on dfs.data.dir
|
<description>The permissions that should be there on dfs.data.dir
|
||||||
directories. The datanode will not come up if the permissions are
|
directories. The datanode will not come up if the permissions are
|
||||||
different on existing dfs.data.dir directories. If the directories
|
different on existing dfs.data.dir directories. If the directories
|
||||||
|
Loading…
Reference in New Issue
Block a user